1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
/* eslint-env browser */
import {
compile,
getCompiler,
getEntryByInjectType,
getErrors,
getWarnings,
runInJsDom,
} from "./helpers/index";
describe("lazyStyleTag options", () => {
it(`should pass "options" to "insert" function`, async () => {
expect.assertions(3);
const entry = getEntryByInjectType("options.js", "lazyStyleTag");
const compiler = getCompiler(entry, {
injectType: "lazyStyleTag",
insert: (styleTag, options) => {
options.insertInto.appendChild(styleTag);
},
});
const stats = await compile(compiler);
runInJsDom("main.bundle.js", compiler, stats, (dom) => {
expect(dom.serialize()).toMatchSnapshot("DOM");
});
expect(getWarnings(stats)).toMatchSnapshot("warnings");
expect(getErrors(stats)).toMatchSnapshot("errors");
});
it(`should pass "options" to "insert" function and unuse`, async () => {
expect.assertions(3);
const entry = getEntryByInjectType("options-use-unuse.js", "lazyStyleTag");
const compiler = getCompiler(entry, {
injectType: "lazyStyleTag",
insert: (styleTag, options) => {
options.insertInto.appendChild(styleTag);
},
});
const stats = await compile(compiler);
runInJsDom("main.bundle.js", compiler, stats, (dom) => {
expect(dom.serialize()).toMatchSnapshot("DOM");
});
expect(getWarnings(stats)).toMatchSnapshot("warnings");
expect(getErrors(stats)).toMatchSnapshot("errors");
});
it(`should pass "options" to "styleTagTransform" function`, async () => {
expect.assertions(3);
const entry = getEntryByInjectType("options.js", "lazyStyleTag");
const compiler = getCompiler(entry, {
injectType: "lazyStyleTag",
styleTagTransform: (css, styleTag, options) => {
// eslint-disable-next-line no-param-reassign
styleTag.innerHTML = `${css}\n${options.additionalStyles}\n`;
},
});
const stats = await compile(compiler);
runInJsDom("main.bundle.js", compiler, stats, (dom) => {
expect(dom.serialize()).toMatchSnapshot("DOM");
});
expect(getWarnings(stats)).toMatchSnapshot("warnings");
expect(getErrors(stats)).toMatchSnapshot("errors");
});
});
|