feat: introduce Vue Bootstrap interface and scoped router network status
This commit is contained in:
+6
-7
@@ -3,7 +3,7 @@ const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const css = fs.readFileSync(path.join(__dirname, 'web/chinese-theme.css'), 'utf8');
|
||||
const html = fs.readFileSync(path.join(__dirname, 'web/index.html'), 'utf8');
|
||||
const html = require('./test-support/ui-source')();
|
||||
const root = css.match(/:root\s*\{([^}]+)\}/)[1];
|
||||
const token = name => root.match(new RegExp('--' + name + ':\\s*(#[0-9a-f]{6})'))[1];
|
||||
function luminance(hex) {
|
||||
@@ -15,12 +15,11 @@ function contrast(a, b) {
|
||||
const x = luminance(a), y = luminance(b);
|
||||
return (Math.max(x, y) + .05) / (Math.min(x, y) + .05);
|
||||
}
|
||||
test('paper theme is loaded last, versioned and uses only local fonts', () => {
|
||||
const styles = [...html.matchAll(/<link rel="stylesheet" href="([^"]+)"/g)].map(x => x[1]);
|
||||
assert.equal(styles.at(-1), '/chinese-theme.css?v=__ASSET_VERSION__');
|
||||
assert.doesNotMatch(css, /@import|https?:|@font-face/i);
|
||||
assert.match(html, /name="theme-color" content="#213d34"/);
|
||||
assert.match(html, /class="courtyard-landscape"[^>]+aria-hidden="true"/);
|
||||
test('Vue theme builds locally after Bootstrap without remote fonts', () => {
|
||||
const main=fs.readFileSync('frontend/src/main.js','utf8');
|
||||
assert.ok(main.indexOf('bootstrap/dist/css/bootstrap.min.css')<main.indexOf('./theme.css'));
|
||||
assert.doesNotMatch(fs.readFileSync('frontend/src/theme.css','utf8'), /@import|https?:|@font-face/i);
|
||||
assert.match(fs.readFileSync('frontend/index.html','utf8'), /name="viewport"/);
|
||||
});
|
||||
test('primary text, muted text and actions have at least 4.5:1 contrast', () => {
|
||||
for (const [fg, bg] of [
|
||||
|
||||
Reference in New Issue
Block a user