fix(accounts): preserve Real-Debrid usernames
This commit is contained in:
@@ -103,7 +103,8 @@ export async function checkRealDebridAccount(
|
|||||||
valid: true,
|
valid: true,
|
||||||
isPremium: Boolean(result.isPremium),
|
isPremium: Boolean(result.isPremium),
|
||||||
premiumUntilMs,
|
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)")
|
message: result.message || (result.isPremium ? formatRemaining(premiumUntilMs, now) : "Kein Premium (Free)")
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -142,7 +143,8 @@ export async function checkRealDebridAccount(
|
|||||||
valid: true,
|
valid: true,
|
||||||
isPremium,
|
isPremium,
|
||||||
premiumUntilMs,
|
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)"
|
message: isPremium ? formatRemaining(premiumUntilMs, now) : "Kein Premium (Free)"
|
||||||
};
|
};
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -122,13 +122,14 @@ describe("checkDebridLinkKey", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe("checkRealDebridAccount", () => {
|
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 premiumUntilMs = NOW + 30 * 24 * 60 * 60 * 1000;
|
||||||
const probe = vi.fn(async () => ({
|
const probe = vi.fn(async () => ({
|
||||||
valid: true,
|
valid: true,
|
||||||
isPremium: true,
|
isPremium: true,
|
||||||
premiumUntilMs,
|
premiumUntilMs,
|
||||||
username: "web-user"
|
username: "web-user",
|
||||||
|
email: "web-user@example.test"
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const status = await checkRealDebridAccount({
|
const status = await checkRealDebridAccount({
|
||||||
@@ -143,7 +144,30 @@ describe("checkRealDebridAccount", () => {
|
|||||||
valid: true,
|
valid: true,
|
||||||
isPremium: true,
|
isPremium: true,
|
||||||
premiumUntilMs,
|
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"
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user