44 lines
1.4 KiB
TypeScript
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);
|
|
});
|
|
});
|