12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import { loadFixture } from './test-utils.js';
- import * as assert from 'node:assert/strict';
- import { describe, it, before, after } from 'node:test';
- import { load as cheerioLoad } from 'cheerio';
- describe('App Entrypoint CSS', () => {
- /** @type {import('./test-utils').Fixture} */
- let fixture;
- before(async () => {
- fixture = await loadFixture({
- root: './fixtures/app-entrypoint-css/',
- });
- });
- describe('build', () => {
- before(async () => {
- await fixture.build();
- });
- it('injects styles referenced in appEntrypoint', async () => {
- const html = await fixture.readFile('/index.html');
- const $ = cheerioLoad(html);
- // test 1: basic component renders
- assert.equal($('#foo > #bar').text(), 'works');
- // test 2: injects the global style on the page
- assert.equal($('style').first().text().trim(), ':root{background-color:red}');
- });
- it('does not inject styles to pages without a Vue component', async () => {
- const html = await fixture.readFile('/unrelated/index.html');
- const $ = cheerioLoad(html);
- assert.equal($('style').length, 0);
- assert.equal($('link[rel="stylesheet"]').length, 0);
- });
- });
- describe('dev', () => {
- let devServer;
- before(async () => {
- devServer = await fixture.startDevServer();
- });
- after(async () => {
- await devServer.stop();
- });
- it('loads during SSR', async () => {
- const html = await fixture.fetch('/').then((res) => res.text());
- const $ = cheerioLoad(html);
- // test 1: basic component renders
- assert.equal($('#foo > #bar').text(), 'works');
- // test 2: injects the global style on the page
- assert.equal($('style').first().text().replace(/\s+/g, ''), ':root{background-color:red;}');
- });
- it('does not inject styles to pages without a Vue component', async () => {
- const html = await fixture.fetch('/unrelated').then((res) => res.text());
- const $ = cheerioLoad(html);
- assert.equal($('style').length, 0);
- assert.equal($('link[rel="stylesheet"]').length, 0);
- });
- });
- });
|