krona-staff/tests/unit/portal-ui.test.ts
Ochenstarik 513cdff702 style: establish repository formatting baseline
Run the configured formatter across the repository before audit remediation so later security fixes produce reviewable, conflict-resistant diffs.
2026-09-26 15:36:20 +07:00

46 lines
2.1 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import {
portalCssEnhanced,
portalHtml,
portalJsEnhanced,
portalManifest,
} from '../../src/portal-ui.js';
describe('Krona Staff workspace shell', () => {
it('exposes the operational workspace sections with deep routes', () => {
expect(portalHtml).toContain('data-route="/staff/dashboard"');
expect(portalHtml).toContain('data-route="/staff/employees"');
expect(portalHtml).toContain('data-route="/staff/finance"');
expect(portalHtml).toContain('data-route="/staff/schedules"');
expect(portalHtml).toContain('data-route="/staff/payroll"');
expect(portalHtml).toContain('data-route="/staff/attendance">');
expect(portalHtml).toContain('data-route="/staff/shifts">');
expect(portalHtml).toContain('data-route="/staff/rules">');
expect(portalHtml).toContain('data-route="/staff/terminal">');
expect(portalHtml).toContain('id="employee-inspector"');
expect(portalHtml).toContain('id="finance-entries"');
expect(portalHtml).toContain('id="calendar-grid"');
expect(portalHtml).not.toContain('<aside class="sidebar"');
});
it('uses the Krona Library semantic theme vocabulary', () => {
expect(portalCssEnhanced).toContain('--omni-bg-workspace');
expect(portalCssEnhanced).toContain('[data-omni-theme="noble-green"]');
expect(portalCssEnhanced).toContain('[data-omni-theme="parchment-light"]');
expect(portalCssEnhanced).toContain('[data-omni-theme="graphite-forest-dark"]');
expect(portalCssEnhanced).toContain('var(--omni-primary)');
expect(portalCssEnhanced).toContain('[hidden]{display:none!important}');
});
it('keeps navigation addressable and starts the PWA on the dashboard', () => {
expect(portalJsEnhanced).toContain("'/staff/employees':'employees-view'");
expect(portalJsEnhanced).toContain("'/staff/attendance':'attendance-view'");
expect(portalJsEnhanced).toContain("'/staff/reports':'reports-view'");
expect(portalJsEnhanced).toContain("window.addEventListener('popstate'");
expect(JSON.parse(portalManifest)).toMatchObject({
start_url: '/staff/dashboard',
scope: '/staff',
});
});
});