Files
pleno-vue/tests/unit/table-header-preferences.spec.js
T

35 lines
1.2 KiB
JavaScript

// @vitest-environment jsdom
import { beforeEach, describe, expect, it } from "vitest";
import {
LARGE_TABLE_HEADERS_BODY_CLASS,
LARGE_TABLE_HEADERS_STORAGE_KEY,
setUseLargeTableHeaders,
useLargeTableHeaders,
} from "@/services/tableHeaderPreferences.js";
describe("table header preferences", () => {
beforeEach(() => {
window.localStorage.removeItem(LARGE_TABLE_HEADERS_STORAGE_KEY);
setUseLargeTableHeaders(false);
});
it("uses compact table headers by default", () => {
expect(useLargeTableHeaders.value).toBe(false);
expect(document.body.classList.contains(LARGE_TABLE_HEADERS_BODY_CLASS)).toBe(false);
});
it("toggles the document class for large table headers", () => {
setUseLargeTableHeaders(true);
expect(window.localStorage.getItem(LARGE_TABLE_HEADERS_STORAGE_KEY)).toBe("true");
expect(useLargeTableHeaders.value).toBe(true);
expect(document.body.classList.contains(LARGE_TABLE_HEADERS_BODY_CLASS)).toBe(true);
setUseLargeTableHeaders(false);
expect(window.localStorage.getItem(LARGE_TABLE_HEADERS_STORAGE_KEY)).toBe("false");
expect(useLargeTableHeaders.value).toBe(false);
expect(document.body.classList.contains(LARGE_TABLE_HEADERS_BODY_CLASS)).toBe(false);
});
});