Run the configured formatter across the repository before audit remediation so later security fixes produce reviewable, conflict-resistant diffs.
46 lines
2.1 KiB
TypeScript
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',
|
|
});
|
|
});
|
|
});
|