Skip to content

Commit

Permalink
fix(cli): watch cache
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed May 23, 2023
1 parent bf9258b commit a7c3da3
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 57 deletions.
2 changes: 1 addition & 1 deletion packages/config/package.json
Expand Up @@ -38,6 +38,6 @@
},
"dependencies": {
"@unocss/core": "workspace:*",
"unconfig": "^0.3.8"
"unconfig": "^0.3.9"
}
}
2 changes: 1 addition & 1 deletion packages/core/package.json
Expand Up @@ -42,6 +42,6 @@
},
"devDependencies": {
"magic-string": "^0.30.0",
"unconfig": "^0.3.8"
"unconfig": "^0.3.9"
}
}
2 changes: 1 addition & 1 deletion packages/vscode/package.json
Expand Up @@ -89,6 +89,6 @@
"jiti": "^1.18.2",
"prettier": "^2.8.8",
"tsup": "^6.7.0",
"unconfig": "^0.3.8"
"unconfig": "^0.3.9"
}
}
18 changes: 9 additions & 9 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 0 additions & 5 deletions test/__snapshots__/cli.test.ts.snap
Expand Up @@ -10,11 +10,6 @@ exports[`cli > supports directives transformer 1`] = `""`;

exports[`cli > supports directives transformer 2`] = `".btn-center{margin-top:0;margin-bottom:0;text-align:center;font-weight:500;}"`;

exports[`cli > supports uno.config.ts changed rebuild 1`] = `
"/* layer: shortcuts */
.box{margin-left:auto;margin-right:auto;max-width:80rem;border-radius:0.375rem;--un-bg-opacity:1;background-color:rgba(243,244,246,var(--un-bg-opacity));padding:1rem;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgba(0,0,0,0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}"
`;

exports[`cli > supports unocss.config.js 1`] = `
"/* layer: shortcuts */
.box{margin-left:auto;margin-right:auto;max-width:80rem;border-radius:0.375rem;--un-bg-opacity:1;background-color:rgba(243,244,246,var(--un-bg-opacity));padding:1rem;--un-shadow:var(--un-shadow-inset) 0 1px 2px 0 var(--un-shadow-color, rgba(0,0,0,0.05));box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow);}"
Expand Down
81 changes: 41 additions & 40 deletions test/cli.test.ts
Expand Up @@ -12,6 +12,7 @@ beforeAll(async () => {
})

afterAll(async () => {
(await getWatcher()).close()
await fs.remove(tempDir)
})

Expand All @@ -38,46 +39,6 @@ export default defineConfig({
expect(output).toMatchSnapshot()
})

it('supports uno.config.ts changed rebuild', async () => {
const { output, testDir } = await runCli({
'views/index.html': '<div class="bg-foo"></div>',
'uno.config.ts': `
import { defineConfig } from 'unocss'
export default defineConfig({
theme: {
colors: {
foo: "red",
}
}
})`.trim(),
}, { args: ['-w'] })
for (let i = 50; i >= 0; i--) {
await sleep(50)
if (output)
break
}
expect(output).toContain('.bg-foo{background-color:red;}')
await fs.writeFile(resolve(testDir as string, 'uno.config.ts'), `
import { defineConfig } from 'unocss'
export default defineConfig({
theme: {
colors: {
foo: "blue",
}
}
})
`)
for (let i = 100; i >= 0; i--) {
await sleep(500)
const outputChanged = await readFile(testDir as string)
if (i === 0 || outputChanged.includes('.bg-foo')) {
expect(outputChanged).toContain('.bg-foo{background-color:blue;}')
break
}
}
(await getWatcher()).close()
})

it('supports variantGroup transformer', async () => {
const { output, transform } = await runCli({
'views/index.html': '<div class="p-4 border-(solid red)"></div>',
Expand Down Expand Up @@ -173,7 +134,47 @@ export default defineConfig({
expect(output1).toContain('.bg-blue')
expect(output2).toContain('.bg-red')
})

it('supports uno.config.ts changed rebuild', async () => {
const { output, testDir } = await runCli({
'views/index.html': '<div class="bg-foo"></div>',
'uno.config.ts': `
import { defineConfig } from 'unocss'
export default defineConfig({
theme: {
colors: {
foo: "red",
}
}
})`.trim(),
}, { args: ['-w'] })
for (let i = 50; i >= 0; i--) {
await sleep(50)
if (output)
break
}
expect(output).toContain('.bg-foo{background-color:red;}')
await fs.writeFile(resolve(testDir as string, 'uno.config.ts'), `
import { defineConfig } from 'unocss'
export default defineConfig({
theme: {
colors: {
foo: "blue",
}
}
})
`)
for (let i = 100; i >= 0; i--) {
await sleep(500)
const outputChanged = await readFile(testDir as string)
if (i === 0 || outputChanged.includes('.bg-foo{background-color:blue;}')) {
expect(outputChanged).toContain('.bg-foo{background-color:blue;}')
break
}
}
})
})

// ----- Utils -----
function sleep(time = 300) {
return new Promise<void>((resolve) => {
Expand Down

0 comments on commit a7c3da3

Please sign in to comment.