chore(core): monorepo, esm targeting, improved management (#8707)

This commit is contained in:
Nathan Walker
2020-08-25 20:00:59 -07:00
committed by GitHub
parent 6f15334934
commit 020ad4da37
4271 changed files with 148599 additions and 149734 deletions

View File

@ -0,0 +1,66 @@
import css2jsonLoader from './css2json-loader';
const importTestCases = [`@import url("custom.css");`, `@import url('custom.css');`, `@import url('custom.css') print;`, `@import url("custom.css") print;`, `@import url('custom.css') screen and (orientation:landscape);`, `@import url("custom.css") screen and (orientation:landscape);`, `@import 'custom.css';`, `@import "custom.css";`, `@import 'custom.css' screen;`, `@import "custom.css" screen;`, `@import url(custom.css);`];
const someCSS = `
.btn {
background-color: #7f9
}
`;
describe('css2jsonLoader', () => {
it('converts CSS to JSON', (done) => {
const loaderContext = {
callback: (error, source: string, map) => {
expect(source).toContain(`{"type":"declaration","property":"background-color","value":"#7f9"}`);
done();
},
};
css2jsonLoader.call(loaderContext, someCSS);
});
importTestCases.forEach((importTestCase) => {
it(`handles: ${importTestCase}`, (done) => {
const loaderContext = {
callback: (error, source: string, map) => {
expect(source).toContain(`global.registerModule("./custom.css", () => require("./custom.css"))`);
expect(source).toContain(`{"type":"declaration","property":"background-color","value":"#7f9"}`);
done();
},
};
css2jsonLoader.call(loaderContext, importTestCase + someCSS);
});
});
it('inlines css2json loader in imports if option is provided', (done) => {
const loaderContext = {
callback: (error, source: string, map) => {
expect(source).toContain(`global.registerModule("./custom.css", () => require("!@nativescript/webpack/helpers/css2json-loader?useForImports!./custom.css"))`);
expect(source).toContain(`{"type":"declaration","property":"background-color","value":"#7f9"}`);
done();
},
query: { useForImports: true },
};
css2jsonLoader.call(loaderContext, `@import url("custom.css");` + someCSS);
});
it('registers modules for paths starting with ~', (done) => {
const loaderContext = {
callback: (error, source: string, map) => {
expect(source).toContain(`global.registerModule("~custom.css", () => require("custom.css"))`);
expect(source).toContain(`global.registerModule("custom.css", () => require("custom.css"))`);
expect(source).toContain(`{"type":"declaration","property":"background-color","value":"#7f9"}`);
done();
},
};
css2jsonLoader.call(loaderContext, `@import url("~custom.css");` + someCSS);
});
});