url-rewriting.test.ts — tailwindcss Source File
Architecture documentation for url-rewriting.test.ts, a typescript file in the tailwindcss codebase. 4 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 81753e27_04e2_d2c1_b402_15c99155ca62["url-rewriting.test.ts"] 7600373a_3645_efb1_bcbb_e7c3fcb813ac["utils.ts"] 81753e27_04e2_d2c1_b402_15c99155ca62 --> 7600373a_3645_efb1_bcbb_e7c3fcb813ac 5d6fcb2c_a772_564c_e4e9_4b0fe3757017["binary"] 81753e27_04e2_d2c1_b402_15c99155ca62 --> 5d6fcb2c_a772_564c_e4e9_4b0fe3757017 44ea7d66_6ac1_15b9_1cc7_d01c23a5ee04["test"] 81753e27_04e2_d2c1_b402_15c99155ca62 --> 44ea7d66_6ac1_15b9_1cc7_d01c23a5ee04 f1e05e5f_c1b2_a3f5_b2e8_3317b9243ac3["vitest"] 81753e27_04e2_d2c1_b402_15c99155ca62 --> f1e05e5f_c1b2_a3f5_b2e8_3317b9243ac3 style 81753e27_04e2_d2c1_b402_15c99155ca62 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { describe } from 'vitest'
import { binary, css, html, svg, test, ts, txt } from '../utils'
const SIMPLE_IMAGE = `iVBORw0KGgoAAAANSUhEUgAAADAAAAAlAQAAAAAsYlcCAAAACklEQVR4AWMYBQABAwABRUEDtQAAAABJRU5ErkJggg==`
describe.each(['postcss', 'lightningcss'])('%s', (transformer) => {
test(
'can rewrite urls in production builds',
{
fs: {
'package.json': txt`
{
"type": "module",
"dependencies": {
"tailwindcss": "workspace:^"
},
"devDependencies": {
${transformer === 'lightningcss' ? `"lightningcss": "^1",` : ''}
"@tailwindcss/vite": "workspace:^",
"vite": "^7"
}
}
`,
'vite.config.ts': ts`
import tailwindcss from '@tailwindcss/vite'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [tailwindcss()],
build: {
assetsInlineLimit: 256,
cssMinify: false,
},
css: ${transformer === 'postcss' ? '{}' : "{ transformer: 'lightningcss' }"},
})
`,
'index.html': html`
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="./src/app.css" />
</head>
<body>
<div id="app"></div>
</body>
</html>
`,
'src/app.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');
}
`,
'resources/image.png': binary(SIMPLE_IMAGE),
'resources/vector.svg': svg`
<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
<rect width="100%" height="100%" fill="red" />
<circle cx="200" cy="100" r="80" fill="green" />
<rect width="100%" height="100%" fill="red" />
<circle cx="200" cy="100" r="80" fill="green" />
</svg>
`,
'src/dir-1/dir-2/dir-3/vector-2.svg': svg`
<svg width="400" height="400" xmlns="http://www.w3.org/2000/svg">
<rect width="100%" height="100%" fill="blue" />
<circle cx="200" cy="100" r="80" fill="green" />
<rect width="100%" height="100%" fill="red" />
<circle cx="200" cy="100" r="80" fill="pink" />
</svg>
`,
},
},
async ({ fs, exec, expect }) => {
await exec('pnpm vite build')
let files = await fs.glob('dist/**/*.css')
expect(files).toHaveLength(1)
await fs.expectFileToContain(files[0][0], [SIMPLE_IMAGE])
let images = await fs.glob('dist/**/*.svg')
expect(images).toHaveLength(2)
await fs.expectFileToContain(files[0][0], [/\/assets\/vector-.*?\.svg/])
},
)
})
Domain
Source
Frequently Asked Questions
What does url-rewriting.test.ts do?
url-rewriting.test.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the Oxide domain.
What does url-rewriting.test.ts depend on?
url-rewriting.test.ts imports 4 module(s): binary, test, utils.ts, vitest.
Where is url-rewriting.test.ts in the architecture?
url-rewriting.test.ts is located at integrations/vite/url-rewriting.test.ts (domain: Oxide, directory: integrations/vite).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free