als-layout
Version:
HTML layout constructor with dynamic meta, styles, and scripts
35 lines (29 loc) • 1.26 kB
JavaScript
const assert = require('assert');
const { describe, it, beforeEach } = require('node:test')
const Layout = require('../src/layout.js');
describe('Styles', () => {
let layout;
beforeEach(() => layout = new Layout());
it('should not add style if styles are invalid', () => {
assert.throws(() => layout.style(123))
// layout.style(123);
// assert.strictEqual(layout.root.$('style'), null, 'Style should not be added when styles are invalid');
});
it('should add style correctly', () => {
const styles = 'body { background-color: black; }';
layout.style(styles);
assert(layout.root.$('style').innerHTML.includes(styles), 'Styles not set correctly');
});
it('should add styles to existing style tag', () => {
assert(layout.root.$$('style').length === 0)
const styles1 = 'body { background-color: black; }';
const styles2 = 'body { margin: 0; }';
layout.style(styles1);
assert(layout.root.$$('style').length === 1)
layout.style(styles2);
assert(layout.root.$$('style').length === 1)
const inner = layout.root.$('style').innerHTML
assert(inner.includes(styles1));
assert(inner.includes(styles2));
});
})