summaryrefslogtreecommitdiff
path: root/packages/astro/test/0-css.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/astro/test/0-css.test.js')
-rw-r--r--packages/astro/test/0-css.test.js57
1 files changed, 34 insertions, 23 deletions
diff --git a/packages/astro/test/0-css.test.js b/packages/astro/test/0-css.test.js
index 054cef86a..573bec842 100644
--- a/packages/astro/test/0-css.test.js
+++ b/packages/astro/test/0-css.test.js
@@ -297,53 +297,64 @@ describe('CSS', function () {
expect((await fixture.fetch(href)).status).to.equal(200);
});
+ it('resolves ESM style imports', async () => {
+ const allInjectedStyles = $('style[data-astro-injected]').text().replace(/\s*/g,"");
+
+ expect(allInjectedStyles, 'styles/imported-url.css').to.contain('.imported{');
+ expect(allInjectedStyles, 'styles/imported-url.sass').to.contain('.imported-sass{');
+ expect(allInjectedStyles, 'styles/imported-url.scss').to.contain('.imported-scss{');
+ });
+
it('resolves Astro styles', async () => {
- const astroPageCss = $('link[rel=stylesheet][href^=/src/pages/index.astro?astro&type=style]');
- expect(astroPageCss.length).to.equal(
- 4,
- 'The index.astro page should generate 4 stylesheets, 1 for each <style> tag on the page.'
- );
+ const allInjectedStyles = $('style[data-astro-injected]').text();
+
+ expect(allInjectedStyles).to.contain('.linked-css.astro-');
+ expect(allInjectedStyles).to.contain('.linked-sass.astro-');
+ expect(allInjectedStyles).to.contain('.linked-scss.astro-');
+ expect(allInjectedStyles).to.contain('.wrapper.astro-');
});
it('resolves Styles from React', async () => {
const styles = [
- 'ReactCSS.css',
'ReactModules.module.css',
'ReactModules.module.scss',
- 'ReactModules.module.sass',
- 'ReactSass.sass',
- 'ReactScss.scss',
+ 'ReactModules.module.sass'
];
for (const style of styles) {
const href = $(`link[href$="${style}"]`).attr('href');
expect((await fixture.fetch(href)).status, style).to.equal(200);
}
+
+ const allInjectedStyles = $('style[data-astro-injected]').text().replace(/\s*/g,"");
+
+ expect(allInjectedStyles).to.contain('.react-title{');
+ expect(allInjectedStyles).to.contain('.react-sass-title{');
+ expect(allInjectedStyles).to.contain('.react-scss-title{');
});
it('resolves CSS from Svelte', async () => {
- const scripts = [
- 'SvelteCSS.svelte?svelte&type=style&lang.css',
- 'SvelteSass.svelte?svelte&type=style&lang.css',
- 'SvelteScss.svelte?svelte&type=style&lang.css',
- ];
- for (const script of scripts) {
- const src = $(`script[src$="${script}"]`).attr('src');
- expect((await fixture.fetch(src)).status, script).to.equal(200);
- }
+ const allInjectedStyles = $('style[data-astro-injected]').text();
+
+ expect(allInjectedStyles).to.contain('.svelte-css');
+ expect(allInjectedStyles).to.contain('.svelte-sass');
+ expect(allInjectedStyles).to.contain('.svelte-scss');
});
it('resolves CSS from Vue', async () => {
const styles = [
- 'VueCSS.vue?vue&type=style&index=0&lang.css',
- 'VueModules.vue?vue&type=style&index=0&lang.module.scss',
- 'VueSass.vue?vue&type=style&index=0&lang.sass',
- 'VueScoped.vue?vue&type=style&index=0&scoped=true&lang.css',
- 'VueScss.vue?vue&type=style&index=0&lang.scss',
+ 'VueModules.vue?vue&type=style&index=0&lang.module.scss'
];
for (const style of styles) {
const href = $(`link[href$="${style}"]`).attr('href');
expect((await fixture.fetch(href)).status, style).to.equal(200);
}
+
+ const allInjectedStyles = $('style[data-astro-injected]').text().replace(/\s*/g,"");
+
+ expect(allInjectedStyles).to.contain('.vue-css{');
+ expect(allInjectedStyles).to.contain('.vue-sass{');
+ expect(allInjectedStyles).to.contain('.vue-scss{');
+ expect(allInjectedStyles).to.contain('.vue-scoped[data-v-');
});
});
});