Home / File/ url-rewriting.test.ts — tailwindcss Source File

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.

File typescript Oxide 4 imports

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

Dependencies

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