2025-03-07 12:18:10 +01:00
|
|
|
import { css, js, json, test } from '../utils'
|
|
|
|
|
|
|
|
|
|
test(
|
|
|
|
|
'can rewrite urls in production builds',
|
|
|
|
|
{
|
|
|
|
|
fs: {
|
|
|
|
|
'package.json': json`
|
|
|
|
|
{
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"postcss": "^8",
|
|
|
|
|
"postcss-cli": "^10",
|
|
|
|
|
"tailwindcss": "workspace:^",
|
|
|
|
|
"@tailwindcss/postcss": "workspace:^"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'postcss.config.js': js`
|
|
|
|
|
module.exports = {
|
|
|
|
|
plugins: {
|
|
|
|
|
'@tailwindcss/postcss': {},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'src/index.css': css`
|
|
|
|
|
@reference 'tailwindcss';
|
|
|
|
|
@import './dir-1/bar.css';
|
|
|
|
|
@import './dir-1/dir-2/baz.css';
|
|
|
|
|
@import './dir-1/dir-2/vector.css';
|
|
|
|
|
`,
|
|
|
|
|
'src/dir-1/bar.css': css`
|
|
|
|
|
.test1 {
|
|
|
|
|
background-image: url('../../resources/image.png');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'src/dir-1/dir-2/baz.css': css`
|
|
|
|
|
.test2 {
|
|
|
|
|
background-image: url('../../../resources/image.png');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'src/dir-1/dir-2/vector.css': css`
|
|
|
|
|
@import './dir-3/vector.css';
|
|
|
|
|
.test3 {
|
|
|
|
|
background-image: url('../../../resources/vector.svg');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'src/dir-1/dir-2/dir-3/vector.css': css`
|
|
|
|
|
.test4 {
|
|
|
|
|
background-image: url('./vector-2.svg');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
async ({ fs, exec, expect }) => {
|
|
|
|
|
await exec('pnpm postcss src/index.css --output dist/out.css')
|
|
|
|
|
|
|
|
|
|
expect(await fs.dumpFiles('dist/out.css')).toMatchInlineSnapshot(`
|
|
|
|
|
"
|
|
|
|
|
--- dist/out.css ---
|
|
|
|
|
.test1 {
|
|
|
|
|
background-image: url('../resources/image.png');
|
|
|
|
|
}
|
|
|
|
|
.test2 {
|
|
|
|
|
background-image: url('../resources/image.png');
|
|
|
|
|
}
|
|
|
|
|
.test4 {
|
|
|
|
|
background-image: url('./dir-1/dir-2/dir-3/vector-2.svg');
|
|
|
|
|
}
|
|
|
|
|
.test3 {
|
|
|
|
|
background-image: url('../resources/vector.svg');
|
|
|
|
|
}
|
|
|
|
|
"
|
|
|
|
|
`)
|
|
|
|
|
},
|
|
|
|
|
)
|
2025-07-30 10:35:10 -04:00
|
|
|
|
|
|
|
|
test(
|
|
|
|
|
'url rewriting can be disabled',
|
|
|
|
|
{
|
|
|
|
|
fs: {
|
|
|
|
|
'package.json': json`
|
|
|
|
|
{
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"postcss": "^8",
|
|
|
|
|
"postcss-cli": "^10",
|
|
|
|
|
"tailwindcss": "workspace:^",
|
|
|
|
|
"@tailwindcss/postcss": "workspace:^"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'postcss.config.js': js`
|
|
|
|
|
module.exports = {
|
|
|
|
|
plugins: {
|
|
|
|
|
'@tailwindcss/postcss': {
|
|
|
|
|
transformAssetUrls: false,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'src/index.css': css`
|
|
|
|
|
@reference 'tailwindcss';
|
|
|
|
|
@import './dir-1/bar.css';
|
|
|
|
|
@import './dir-1/dir-2/baz.css';
|
|
|
|
|
@import './dir-1/dir-2/vector.css';
|
|
|
|
|
`,
|
|
|
|
|
'src/dir-1/bar.css': css`
|
|
|
|
|
.test1 {
|
|
|
|
|
background-image: url('../../resources/image.png');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'src/dir-1/dir-2/baz.css': css`
|
|
|
|
|
.test2 {
|
|
|
|
|
background-image: url('../../../resources/image.png');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'src/dir-1/dir-2/vector.css': css`
|
|
|
|
|
@import './dir-3/vector.css';
|
|
|
|
|
.test3 {
|
|
|
|
|
background-image: url('../../../resources/vector.svg');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
'src/dir-1/dir-2/dir-3/vector.css': css`
|
|
|
|
|
.test4 {
|
|
|
|
|
background-image: url('./vector-2.svg');
|
|
|
|
|
}
|
|
|
|
|
`,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
async ({ fs, exec, expect }) => {
|
|
|
|
|
await exec('pnpm postcss src/index.css --output dist/out.css')
|
|
|
|
|
|
|
|
|
|
expect(await fs.dumpFiles('dist/out.css')).toMatchInlineSnapshot(`
|
|
|
|
|
"
|
|
|
|
|
--- dist/out.css ---
|
|
|
|
|
.test1 {
|
|
|
|
|
background-image: url('../../resources/image.png');
|
|
|
|
|
}
|
|
|
|
|
.test2 {
|
|
|
|
|
background-image: url('../../../resources/image.png');
|
|
|
|
|
}
|
|
|
|
|
.test4 {
|
|
|
|
|
background-image: url('./vector-2.svg');
|
|
|
|
|
}
|
|
|
|
|
.test3 {
|
|
|
|
|
background-image: url('../../../resources/vector.svg');
|
|
|
|
|
}
|
|
|
|
|
"
|
|
|
|
|
`)
|
|
|
|
|
},
|
|
|
|
|
)
|