diff --git a/src/main/account-check.ts b/src/main/account-check.ts index 51b2fe7..b191dc6 100644 --- a/src/main/account-check.ts +++ b/src/main/account-check.ts @@ -103,7 +103,8 @@ export async function checkRealDebridAccount( valid: true, isPremium: Boolean(result.isPremium), premiumUntilMs, - email: String(result.email || result.username || "").trim() || undefined, + username: String(result.username || "").trim() || undefined, + email: String(result.email || "").trim() || undefined, message: result.message || (result.isPremium ? formatRemaining(premiumUntilMs, now) : "Kein Premium (Free)") }; } catch (error) { @@ -142,7 +143,8 @@ export async function checkRealDebridAccount( valid: true, isPremium, premiumUntilMs, - email: String(payload.email || payload.username || "").trim() || undefined, + username: String(payload.username || "").trim() || undefined, + email: String(payload.email || "").trim() || undefined, message: isPremium ? formatRemaining(premiumUntilMs, now) : "Kein Premium (Free)" }; } catch (error) { diff --git a/tests/account-check.test.ts b/tests/account-check.test.ts index 6a76537..74e26f3 100644 --- a/tests/account-check.test.ts +++ b/tests/account-check.test.ts @@ -122,13 +122,14 @@ describe("checkDebridLinkKey", () => { }); describe("checkRealDebridAccount", () => { - it("uses the browser-session probe and returns a stable service status", async () => { + it("keeps browser-session username and email in separate status fields", async () => { const premiumUntilMs = NOW + 30 * 24 * 60 * 60 * 1000; const probe = vi.fn(async () => ({ valid: true, isPremium: true, premiumUntilMs, - username: "web-user" + username: "web-user", + email: "web-user@example.test" })); const status = await checkRealDebridAccount({ @@ -143,7 +144,30 @@ describe("checkRealDebridAccount", () => { valid: true, isPremium: true, premiumUntilMs, - email: "web-user" + username: "web-user", + email: "web-user@example.test" + }); + }); + + it("keeps API username and email in separate status fields", async () => { + mockFetchOnce(200, { + username: "api-user", + email: "api-user@example.test", + type: "premium", + expiration: new Date(NOW + 30 * 24 * 60 * 60 * 1000).toISOString() + }); + + const status = await checkRealDebridAccount({ + token: "rd-api-token", + realDebridUseWebLogin: false + } as AppSettings, undefined, NOW); + + expect(status).toMatchObject({ + accountId: REAL_DEBRID_STATUS_ID, + provider: "realdebrid", + valid: true, + username: "api-user", + email: "api-user@example.test" }); }); });