Files
Multi-Debrid-Downloader/tests/renderer-settings.test.ts
T

44 lines
1.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { defaultSettings } from "../src/main/constants";
import { validateRendererSettingsUpdate } from "../src/main/renderer-settings";
import { createRendererSettings } from "../src/main/renderer-state";
describe("renderer settings validation", () => {
it("ignores undefined optional fields from a stale renderer draft", () => {
const result = validateRendererSettingsUpdate({
columnOrderVersion: undefined,
megaDebridApiEnabled: false,
megaDebridWebEnabled: false,
debridLinkDisabledKeyIds: []
}, defaultSettings());
expect(result).toEqual({
megaDebridApiEnabled: false,
megaDebridWebEnabled: false,
debridLinkDisabledKeyIds: []
});
});
it("accepts a complete renderer draft with an optional nested account status field omitted", () => {
const current = defaultSettings();
current.debridAccountStatuses = {
"debridlink-key": {
accountId: "debridlink-key",
provider: "debridlink",
label: "Debrid-Link",
maskedLogin: "abc***xyz",
valid: true,
isPremium: true,
premiumUntilMs: null,
message: "Premium",
checkedAt: 1
}
};
const rendererDraft = createRendererSettings(current);
const result = validateRendererSettingsUpdate(rendererDraft, current);
expect(result.debridAccountStatuses).toEqual(rendererDraft.debridAccountStatuses);
});
});