Skip to content

Commit

Permalink
test(watch): ignore dependency
Browse files Browse the repository at this point in the history
  • Loading branch information
privatenumber committed Sep 21, 2023
1 parent cb226a1 commit 412a9c4
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions tests/specs/watch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -205,16 +205,18 @@ export default testSuite(async ({ describe }, fixturePath: string) => {
const entryFile = 'index.js';
const fileA = 'file-a.js';
const fileB = 'directory/file-b.js';
let value = Date.now();
const depA = 'node_modules/a/index.js';

const fixture = await createFixture({
[fileA]: 'export default "logA"',
[fileB]: 'export default "logB"',
[depA]: 'export default "logC"',
[entryFile]: `
import valueA from './${fileA}'
import valueB from './${fileB}'
console.log(valueA, valueB)
import valueC from './${depA}'
console.log(valueA, valueB, valueC)
`.trim(),
[fileA]: `export default ${value}`,
[fileB]: `export default ${value}`,
});

onTestFinish(async () => await fixture.rm());
Expand All @@ -229,19 +231,25 @@ export default testSuite(async ({ describe }, fixturePath: string) => {
entryFile,
],
});
const negativeSignal = '"fail"';

await interact(
tsxProcess.stdout!,
[
async (data) => {
if (data === `${value} ${value}\n`) {
value = Date.now();
if (data.includes('fail')) {
throw new Error('should not log ignored file');
}

if (data === 'logA logB logC\n') {
// These changes should not trigger a re-run
await Promise.all([
fixture.writeFile(fileA, `export default ${value}`),
fixture.writeFile(fileB, `export default ${value}`),
fixture.writeFile(fileA, `export default ${negativeSignal}`),
fixture.writeFile(fileB, `export default ${negativeSignal}`),
fixture.writeFile(depA, `export default ${negativeSignal}`),
]);

await setTimeout(500);
await setTimeout(1500);
await fixture.writeFile(entryFile, 'console.log("TERMINATE")');
return true;
}
Expand All @@ -253,7 +261,7 @@ export default testSuite(async ({ describe }, fixturePath: string) => {
tsxProcess.kill();

const { all, stderr } = await tsxProcess;
expect(all).not.toMatch(`${value} ${value}`);
expect(all).not.toMatch('fail');
expect(stderr).toBe('');
}, 10_000);
});
Expand Down

0 comments on commit 412a9c4

Please sign in to comment.