mirror of
https://github.com/stablyai/orca.git
synced 2026-10-31 09:07:40 +00:00
54 lines
2.0 KiB
JavaScript
54 lines
2.0 KiB
JavaScript
import {
|
|
cpSync,
|
|
mkdtempSync,
|
|
mkdirSync,
|
|
readFileSync,
|
|
rmSync,
|
|
symlinkSync,
|
|
writeFileSync
|
|
} from 'node:fs'
|
|
import { createRequire } from 'node:module'
|
|
import { tmpdir } from 'node:os'
|
|
import { join, resolve } from 'node:path'
|
|
import { expect, it } from 'vitest'
|
|
|
|
const require = createRequire(import.meta.resolve('@tailwindcss/vite'))
|
|
const { compile } = require('@tailwindcss/node')
|
|
const { Scanner } = require('@tailwindcss/oxide')
|
|
|
|
it('generates renderer CSS from production files while excluding test and spec files', async () => {
|
|
const root = mkdtempSync(join(tmpdir(), 'orca-tailwind-sources-'))
|
|
try {
|
|
const assets = join(root, 'src', 'assets')
|
|
cpSync(resolve('src/renderer/src/assets'), assets, { recursive: true })
|
|
symlinkSync(resolve('node_modules'), join(root, 'node_modules'), 'junction')
|
|
const components = join(root, 'src', 'components')
|
|
mkdirSync(components)
|
|
writeFileSync(join(components, 'example.tsx'), 'export const style = "z-[31415]"')
|
|
writeFileSync(join(components, 'example.test.tsx'), 'export const style = "z-[27182]"')
|
|
writeFileSync(join(components, 'example.spec.ts'), 'export const style = "z-[16180]"')
|
|
|
|
const compiler = await compile(readFileSync(join(assets, 'main.css'), 'utf8'), {
|
|
base: assets,
|
|
onDependency() {}
|
|
})
|
|
const automaticSources =
|
|
compiler.root === 'none' ? [] : [compiler.root ?? { base: root, pattern: '**/*' }]
|
|
const scanner = new Scanner({
|
|
sources: [
|
|
...automaticSources.map((source) => ({ ...source, negated: false })),
|
|
...compiler.sources
|
|
]
|
|
})
|
|
const css = compiler.build(scanner.scan())
|
|
expect(css).toContain('z-index: 31415')
|
|
expect(css).not.toContain('z-index: 27182')
|
|
expect(css).not.toContain('z-index: 16180')
|
|
|
|
writeFileSync(join(components, 'added.tsx'), 'export const style = "z-[14142]"')
|
|
expect(compiler.build(scanner.scan())).toContain('z-index: 14142')
|
|
} finally {
|
|
rmSync(root, { recursive: true, force: true })
|
|
}
|
|
})
|