aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/tailwind/test
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/tailwind/test')
-rw-r--r--packages/integrations/tailwind/test/basic.test.js37
-rw-r--r--packages/integrations/tailwind/test/fixtures/basic/astro.config.js12
-rw-r--r--packages/integrations/tailwind/test/fixtures/basic/package.json10
-rw-r--r--packages/integrations/tailwind/test/fixtures/basic/src/pages/index.astro13
-rw-r--r--packages/integrations/tailwind/test/fixtures/basic/tailwind.config.js7
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}')],
+};