Update test to retry assertion on empty file and don't include forward-slash in the assertion (#17821)
To fix the CI issues we have, it turns out there are two issues: 1. The file-read was not retried, making it possible for all platforms (but mostly Windows because it's the slowest) to sometimes not have the file created yet before making the assertion. 2. A forward-slash in the assertion message path would always be a backslash when run on Windows, thus the Windows test would never pass. ## Test plan - [ci-all] and have the test pass two times.
This commit is contained in:
parent
9fec4ef60b
commit
d3846a4570
1 changed files with 59 additions and 74 deletions
|
|
@ -1,5 +1,5 @@
|
|||
import path from 'node:path'
|
||||
import { candidate, css, html, IS_WINDOWS, js, json, test, ts, yaml } from '../utils'
|
||||
import { candidate, css, html, js, json, retryAssertion, test, ts, yaml } from '../utils'
|
||||
|
||||
test(
|
||||
'production build (string)',
|
||||
|
|
@ -636,67 +636,59 @@ test(
|
|||
},
|
||||
)
|
||||
|
||||
if (!IS_WINDOWS) {
|
||||
test(
|
||||
'rebuild error recovery',
|
||||
{
|
||||
fs: {
|
||||
'package.json': json`
|
||||
{
|
||||
"devDependencies": {
|
||||
"postcss": "^8",
|
||||
"postcss-cli": "^10",
|
||||
"tailwindcss": "workspace:^",
|
||||
"@tailwindcss/postcss": "workspace:^"
|
||||
}
|
||||
test(
|
||||
'rebuild error recovery',
|
||||
{
|
||||
fs: {
|
||||
'package.json': json`
|
||||
{
|
||||
"devDependencies": {
|
||||
"postcss": "^8",
|
||||
"postcss-cli": "^10",
|
||||
"tailwindcss": "workspace:^",
|
||||
"@tailwindcss/postcss": "workspace:^"
|
||||
}
|
||||
`,
|
||||
'postcss.config.js': js`
|
||||
module.exports = {
|
||||
plugins: {
|
||||
'@tailwindcss/postcss': {},
|
||||
},
|
||||
}
|
||||
`,
|
||||
'src/index.html': html`
|
||||
}
|
||||
`,
|
||||
'postcss.config.js': js`
|
||||
module.exports = {
|
||||
plugins: {
|
||||
'@tailwindcss/postcss': {},
|
||||
},
|
||||
}
|
||||
`,
|
||||
'src/index.html': html`
|
||||
<div class="underline"></div>
|
||||
`,
|
||||
'src/index.css': css` @import './tailwind.css'; `,
|
||||
'src/tailwind.css': css`
|
||||
@reference 'tailwindcss/does-not-exist';
|
||||
@import 'tailwindcss/utilities';
|
||||
`,
|
||||
},
|
||||
'src/index.css': css` @import './tailwind.css'; `,
|
||||
'src/tailwind.css': css`
|
||||
@reference 'tailwindcss/does-not-exist';
|
||||
@import 'tailwindcss/utilities';
|
||||
`,
|
||||
},
|
||||
async ({ fs, expect, spawn }) => {
|
||||
let process = await spawn(
|
||||
'pnpm postcss src/index.css --output dist/out.css --watch --verbose',
|
||||
)
|
||||
},
|
||||
async ({ fs, expect, spawn }) => {
|
||||
let process = await spawn('pnpm postcss src/index.css --output dist/out.css --watch --verbose')
|
||||
|
||||
await process.onStderr((message) =>
|
||||
message.includes('does-not-exist is not exported from package'),
|
||||
)
|
||||
await process.onStderr((message) =>
|
||||
message.includes('does-not-exist is not exported from package'),
|
||||
)
|
||||
|
||||
expect(await fs.dumpFiles('dist/*.css')).toMatchInlineSnapshot(`
|
||||
"
|
||||
--- dist/out.css ---
|
||||
<EMPTY>
|
||||
"
|
||||
`)
|
||||
await retryAssertion(async () => expect(await fs.read('dist/out.css')).toEqual(''))
|
||||
|
||||
await process.onStderr((message) => message.includes('Waiting for file changes...'))
|
||||
await process.onStderr((message) => message.includes('Waiting for file changes...'))
|
||||
|
||||
// Fix the CSS file
|
||||
await fs.write(
|
||||
'src/tailwind.css',
|
||||
css`
|
||||
@reference 'tailwindcss/theme';
|
||||
@import 'tailwindcss/utilities';
|
||||
`,
|
||||
)
|
||||
await process.onStderr((message) => message.includes('Finished src/index.css'))
|
||||
// Fix the CSS file
|
||||
await fs.write(
|
||||
'src/tailwind.css',
|
||||
css`
|
||||
@reference 'tailwindcss/theme';
|
||||
@import 'tailwindcss/utilities';
|
||||
`,
|
||||
)
|
||||
await process.onStderr((message) => message.includes('Finished'))
|
||||
|
||||
expect(await fs.dumpFiles('dist/*.css')).toMatchInlineSnapshot(`
|
||||
expect(await fs.dumpFiles('dist/*.css')).toMatchInlineSnapshot(`
|
||||
"
|
||||
--- dist/out.css ---
|
||||
.underline {
|
||||
|
|
@ -705,25 +697,18 @@ if (!IS_WINDOWS) {
|
|||
"
|
||||
`)
|
||||
|
||||
// Now break the CSS file again
|
||||
await fs.write(
|
||||
'src/tailwind.css',
|
||||
css`
|
||||
@reference 'tailwindcss/does-not-exist';
|
||||
@import 'tailwindcss/utilities';
|
||||
`,
|
||||
)
|
||||
await process.onStderr((message) =>
|
||||
message.includes('does-not-exist is not exported from package'),
|
||||
)
|
||||
await process.onStderr((message) => message.includes('Finished src/index.css'))
|
||||
// Now break the CSS file again
|
||||
await fs.write(
|
||||
'src/tailwind.css',
|
||||
css`
|
||||
@reference 'tailwindcss/does-not-exist';
|
||||
@import 'tailwindcss/utilities';
|
||||
`,
|
||||
)
|
||||
await process.onStderr((message) =>
|
||||
message.includes('does-not-exist is not exported from package'),
|
||||
)
|
||||
|
||||
expect(await fs.dumpFiles('dist/*.css')).toMatchInlineSnapshot(`
|
||||
"
|
||||
--- dist/out.css ---
|
||||
<EMPTY>
|
||||
"
|
||||
`)
|
||||
},
|
||||
)
|
||||
}
|
||||
await retryAssertion(async () => expect(await fs.read('dist/out.css')).toEqual(''))
|
||||
},
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue