Assessor_2.0/tests/features/work-header-layout.test.ts

26 lines
1.4 KiB
TypeScript

import { readFileSync } from 'node:fs';
import { describe, expect, it } from 'vitest';
const styles = readFileSync(new URL('../../src/styles/layout.css', import.meta.url), 'utf8');
const app = readFileSync(new URL('../../src/app/App.tsx', import.meta.url), 'utf8');
describe('Work header layout', () => {
it('haelt Werkzeug- und Ansichtsaktionen vollstaendig sichtbar', () => {
expect(styles).toMatch(/\.reader-toolbar\s*\{[^}]*overflow-x:\s*auto;[^}]*overflow-y:\s*hidden;/s);
expect(styles).toMatch(/\.workspace-btn\s*\{[^}]*flex:\s*0 0 auto;[^}]*min-width:\s*112px;[^}]*white-space:\s*nowrap;/s);
expect(styles).toMatch(/\.view-tabs\s*\{[^}]*flex:\s*0 0 auto;[^}]*overflow:\s*visible;/s);
expect(styles).toMatch(/\.tab-btn\s*\{[^}]*flex:\s*0 0 auto;[^}]*white-space:\s*nowrap;/s);
expect(styles).toMatch(/\.header-export-row\s*\{[^}]*flex:\s*0 0 auto;[^}]*overflow:\s*visible;/s);
expect(styles).toMatch(/\.work-timeslot-select\s*\{[^}]*flex:\s*0 0 180px;[^}]*width:\s*180px;/s);
});
it('laesst die toolabhaengige Filterableitung unveraendert', () => {
expect(app).toContain('<div className="workbar"><SearchFilterBar/></div>');
expect(app).toContain('<button className={`btn workspace-btn');
expect(app).toContain("['records', 'Reports']");
expect(app).toContain("['raw', 'Raw Data']");
expect(app).toContain('<SheetAndSearchControls/>');
expect(app).toContain('<WorkTimeslotControl/>');
});
});