36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
/*
|
|||
|
|
Copyright 2026 Lotus Guild
|
||
|
|
|
||
|
|
SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
|
||
|
|
Please see LICENSE in the repository root for full details.
|
||
|
|
*/
|
||
|
|
|
||
|
|
import { describe, expect, it } from "vitest";
|
||
|
|
|
||
|
|
import { parseLayoutPayload, parseSettingsPayload } from "./lotusControls";
|
||
|
|
|
||
|
|
describe("parseLayoutPayload", () => {
|
||
|
|
it("accepts grid and spotlight", () => {
|
||
|
|
expect(parseLayoutPayload({ layout: "grid" })).toBe("grid");
|
||
|
|
expect(parseLayoutPayload({ layout: "spotlight" })).toBe("spotlight");
|
||
|
|
});
|
||
|
|
it("rejects anything else", () => {
|
||
|
|
expect(parseLayoutPayload({ layout: "pip" })).toBeUndefined();
|
||
|
|
expect(parseLayoutPayload({})).toBeUndefined();
|
||
|
|
expect(parseLayoutPayload(null)).toBeUndefined();
|
||
|
|
expect(parseLayoutPayload("grid")).toBeUndefined();
|
||
|
|
});
|
||
|
|
});
|
||
|
|
|
||
|
|
describe("parseSettingsPayload", () => {
|
||
|
|
it("uses an explicit open flag", () => {
|
||
|
|
expect(parseSettingsPayload({ open: true }, true)).toBe(true);
|
||
|
|
expect(parseSettingsPayload({ open: false }, false)).toBe(false);
|
||
|
|
});
|
||
|
|
it("toggles when open is missing or not a boolean", () => {
|
||
|
|
expect(parseSettingsPayload({}, false)).toBe(true);
|
||
|
|
expect(parseSettingsPayload(undefined, true)).toBe(false);
|
||
|
|
expect(parseSettingsPayload({ open: "yes" }, true)).toBe(false);
|
||
|
|
});
|
||
|
|
});
|