admin-responsive-style.test.js 1.0 KB

123456789101112131415161718
  1. import assert from 'node:assert/strict';
  2. import { readFileSync } from 'node:fs';
  3. import test from 'node:test';
  4. const styles = readFileSync(new URL('../src/frontend/styles.css', import.meta.url), 'utf8');
  5. test('admin layout uses component constraints instead of hiding page overflow', () => {
  6. const bodyRule = styles.match(/(?:^|\n)body\s*\{([^}]*)\}/)?.[1] || '';
  7. assert.doesNotMatch(bodyRule, /overflow-x\s*:\s*(?:hidden|clip)/);
  8. assert.match(styles, /\.admin-main-layout\s*\{[^}]*max-width:\s*100%[^}]*min-width:\s*0/s);
  9. assert.match(styles, /\.admin-center-tabs[^{}]*\{[^}]*max-width:\s*100%[^}]*min-width:\s*0/s);
  10. });
  11. test('admin route focus and tablet header states remain visible and bounded', () => {
  12. assert.match(styles, /\.admin-content:focus\s*\{[^}]*outline:\s*3px\s+solid/s);
  13. assert.match(styles, /@media\s*\(max-width:\s*900px\)[\s\S]*?\.environment-status__label\s*\{\s*display:\s*none;/);
  14. assert.match(styles, /\.user-button__name\s*\{[^}]*text-overflow:\s*ellipsis[^}]*white-space:\s*nowrap/s);
  15. });