diff options
Diffstat (limited to 'packages/integrations/tailwind/test')
5 files changed, 79 insertions, 0 deletions
diff --git a/packages/integrations/tailwind/test/basic.test.js b/packages/integrations/tailwind/test/basic.test.js new file mode 100644 index 000000000..5cac5c949 --- /dev/null +++ b/packages/integrations/tailwind/test/basic.test.js @@ -0,0 +1,37 @@ +import * as assert from 'node:assert/strict'; +import { before, describe, it } from 'node:test'; +import { loadFixture } from '../../../astro/test/test-utils.js'; + +describe('Basic', () => { + let fixture; + + before(async () => { + fixture = await loadFixture({ + root: new URL('./fixtures/basic/', import.meta.url), + }); + }); + + describe('build', () => { + before(async () => { + await fixture.build(); + }); + + it('works', async () => { + const astroChunkDir = await fixture.readdir('/_astro'); + + let css = ''; + for (const file of astroChunkDir) { + if (file.endsWith('.css')) { + css += await fixture.readFile(`/_astro/${file}`); + } + } + + assert.equal(css.includes('box-sizing:border-box;'), true); // base css + assert.equal(css.includes('text-red-500'), true); // class css + assert.equal( + new RegExp(/\.a\[data-astro-cid-.*?\] \.b\[data-astro-cid-.*?\]/).test(css), + true, + ); // nesting + }); + }); +}); diff --git a/packages/integrations/tailwind/test/fixtures/basic/astro.config.js b/packages/integrations/tailwind/test/fixtures/basic/astro.config.js new file mode 100644 index 000000000..502f5ca17 --- /dev/null +++ b/packages/integrations/tailwind/test/fixtures/basic/astro.config.js @@ -0,0 +1,12 @@ +import { fileURLToPath } from 'node:url'; +import tailwind from '@astrojs/tailwind'; +import { defineConfig } from 'astro/config'; + +export default defineConfig({ + integrations: [ + tailwind({ + configFile: fileURLToPath(new URL('./tailwind.config.js', import.meta.url)), + nesting: true + }), + ] +}); diff --git a/packages/integrations/tailwind/test/fixtures/basic/package.json b/packages/integrations/tailwind/test/fixtures/basic/package.json new file mode 100644 index 000000000..33e20daaa --- /dev/null +++ b/packages/integrations/tailwind/test/fixtures/basic/package.json @@ -0,0 +1,10 @@ +{ + "name": "@test/tailwind-basic", + "version": "0.0.0", + "private": true, + "type": "module", + "dependencies": { + "astro": "workspace:*", + "@astrojs/tailwind": "workspace:*" + } +} diff --git a/packages/integrations/tailwind/test/fixtures/basic/src/pages/index.astro b/packages/integrations/tailwind/test/fixtures/basic/src/pages/index.astro new file mode 100644 index 000000000..ab4df58e3 --- /dev/null +++ b/packages/integrations/tailwind/test/fixtures/basic/src/pages/index.astro @@ -0,0 +1,13 @@ +<div class="text-red-500">red</div> + +<div class="a"> + <div class="b">nested blue</div> +</div> + +<style> + .a { + .b { + color: blue; + } + } +</style> diff --git a/packages/integrations/tailwind/test/fixtures/basic/tailwind.config.js b/packages/integrations/tailwind/test/fixtures/basic/tailwind.config.js new file mode 100644 index 000000000..278abf14d --- /dev/null +++ b/packages/integrations/tailwind/test/fixtures/basic/tailwind.config.js @@ -0,0 +1,7 @@ +import path from 'node:path'; +import {fileURLToPath} from "node:url"; + +/** @type {import('tailwindcss').Config} */ +export default { + content: [path.join(path.dirname(fileURLToPath(import.meta.url)), 'src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}')], +}; |