Skip to content

Commit

Permalink
test: refactor to using
Browse files Browse the repository at this point in the history
  • Loading branch information
privatenumber committed May 8, 2024
1 parent f563a3a commit da7bdd0
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 49 deletions.
44 changes: 11 additions & 33 deletions tests/specs/cli.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export default testSuite(({ describe }, nodePath: string) => {
describe('cli', ({ test, describe }) => {
describe('error-cases', ({ test }) => {
test('link package doesnt exist', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');

const linkProcess = await link(['../non-existing'], {
cwd: path.join(fixture.path, 'package-entry'),
Expand All @@ -18,12 +18,10 @@ export default testSuite(({ describe }, nodePath: string) => {

expect(linkProcess.exitCode).toBe(1);
expect(linkProcess.stderr).toBe('✖ Package path does not exist: ../non-existing');

await fixture.rm();
});

test('link package.json doesnt exist', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');

await fixture.rm('package-files/package.json');

Expand All @@ -34,12 +32,10 @@ export default testSuite(({ describe }, nodePath: string) => {

expect(linkProcess.exitCode).toBe(1);
expect(linkProcess.stderr).toMatch('✖ Failed to symlink ../package-files with error: package.json not found');

await fixture.rm();
});

test('single failure should exit 1', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');

await fixture.rm('package-files/package.json');

Expand All @@ -56,12 +52,10 @@ export default testSuite(({ describe }, nodePath: string) => {
expect(linkProcess.stdout).toMatch('✔ Symlinked package-binary');
expect(linkProcess.stdout).toMatch('✔ Symlinked @scope/package-scoped');
expect(linkProcess.stderr).toMatch('✖ Failed to symlink');

await fixture.rm();
});

test('symlink exists', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const packageEntryPath = path.join(fixture.path, 'package-entry');

await fs.mkdir(path.join(packageEntryPath, 'node_modules'));
Expand All @@ -76,12 +70,10 @@ export default testSuite(({ describe }, nodePath: string) => {
});

expect(linkProcess.exitCode).toBe(0);

await fixture.rm();
});

test('broken symlink exists', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const packageEntryPath = path.join(fixture.path, 'package-entry');

await fs.mkdir(path.join(packageEntryPath, 'node_modules'));
Expand All @@ -96,12 +88,10 @@ export default testSuite(({ describe }, nodePath: string) => {
});

expect(linkProcess.exitCode).toBe(0);

await fixture.rm();
});

test('directory in-place of symlink', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const packageEntryPath = path.join(fixture.path, 'package-entry');

await fs.mkdir(path.join(packageEntryPath, 'node_modules/package-files'), {
Expand All @@ -114,13 +104,11 @@ export default testSuite(({ describe }, nodePath: string) => {
});

expect(linkProcess.exitCode).toBe(0);

await fixture.rm();
});
});

test('consecutive links', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');

const entryPackagePath = path.join(fixture.path, 'package-entry');

Expand Down Expand Up @@ -169,12 +157,10 @@ export default testSuite(({ describe }, nodePath: string) => {
expect(
await fixture.exists('package-entry/node_modules/package-files/non-publish-file.js'),
).toBe(true);

await fixture.rm();
});

test('multiple packages', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');

const entryPackagePath = path.join(fixture.path, 'package-entry');

Expand Down Expand Up @@ -220,12 +206,10 @@ export default testSuite(({ describe }, nodePath: string) => {
// Expect non publish files to exist in symlink
const nonPublishFileExists = await fixture.exists('package-entry/node_modules/package-files/non-publish-file.js');
expect(nonPublishFileExists).toBe(true);

await fixture.rm();
});

test('works without package.json in cwd', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const entryPackagePath = path.join(fixture.path, 'package-entry');

await fixture.rm('package-entry/package.json');
Expand Down Expand Up @@ -253,12 +237,10 @@ export default testSuite(({ describe }, nodePath: string) => {
},
);
expect(entryPackage.stdout).toBe('["package-entry","package-binary","package-files","@scope/package-scoped",["package-deep-link",null,null]]');

await fixture.rm();
});

test('deep linking', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const entryPackagePath = path.join(fixture.path, 'package-entry');

await fixture.rm('package-entry/package.json');
Expand All @@ -285,12 +267,10 @@ export default testSuite(({ describe }, nodePath: string) => {
},
);
expect(entryPackage.stdout).toBe('["package-entry","package-binary","package-files","@scope/package-scoped",["package-deep-link","package-files","@scope/package-scoped"]]');

await fixture.rm();
});

test('overwrites directory in place of symlink', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const entryPackagePath = path.join(fixture.path, 'package-entry');

await fs.mkdir(
Expand All @@ -304,8 +284,6 @@ export default testSuite(({ describe }, nodePath: string) => {
});

expect(linkBinary.exitCode).toBe(0);

await fixture.rm();
});
});
});
20 changes: 5 additions & 15 deletions tests/specs/link-config.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { link } from '../utils';
export default testSuite(({ describe }, nodePath: string) => {
describe('link.config.json', ({ test, describe }) => {
test('symlink', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const entryPackagePath = path.join(fixture.path, 'package-entry');

await fixture.writeJson('package-entry/link.config.json', {
Expand Down Expand Up @@ -56,13 +56,11 @@ export default testSuite(({ describe }, nodePath: string) => {

const nonPublishFileExists = await fixture.exists('package-entry/node_modules/package-files/non-publish-file.js');
expect(nonPublishFileExists).toBe(true);

await fixture.rm();
});

describe('deep linking', ({ test }) => {
test('cli', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const entryPackagePath = path.join(fixture.path, 'package-entry');

await fixture.writeJson('package-entry/link.config.json', {
Expand Down Expand Up @@ -94,12 +92,10 @@ export default testSuite(({ describe }, nodePath: string) => {
},
);
expect(entryPackage.stdout).toBe('["package-entry","package-binary","package-files","@scope/package-scoped",["package-deep-link","package-files","@scope/package-scoped"]]');

await fixture.rm();
});

test('link.config', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const entryPackagePath = path.join(fixture.path, 'package-entry');

await fixture.writeJson('package-entry/link.config.json', {
Expand Down Expand Up @@ -133,15 +129,13 @@ export default testSuite(({ describe }, nodePath: string) => {
},
);
expect(entryPackage.stdout).toBe('["package-entry","package-binary","package-files","@scope/package-scoped",["package-deep-link","package-files","@scope/package-scoped"]]');

await fixture.rm();
});
});
});

describe('link.config.js', ({ test }) => {
test('catches invalid config error', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const entryPackagePath = path.join(fixture.path, 'package-entry');

await fixture.writeFile(
Expand All @@ -155,12 +149,10 @@ export default testSuite(({ describe }, nodePath: string) => {
});

expect(linkProcess.stderr).toMatch('Error: Failed to load config file link.config.js:');

await fixture.rm();
});

test('symlink', async () => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
const entryPackagePath = path.join(fixture.path, 'package-entry');

await fixture.writeFile(
Expand Down Expand Up @@ -212,8 +204,6 @@ export default testSuite(({ describe }, nodePath: string) => {

const nonPublishFileExists = await fixture.exists('package-entry/node_modules/package-files/non-publish-file.js');
expect(nonPublishFileExists).toBe(true);

await fixture.rm();
});
});
});
2 changes: 1 addition & 1 deletion tests/specs/publish.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { link } from '../utils';
export default testSuite(({ describe }, nodePath: string) => {
describe('publish mode', ({ test }) => {
test('links', async ({ onTestFinish }) => {
const fixture = await createFixture('./tests/fixtures/');
await using fixture = await createFixture('./tests/fixtures/');
onTestFinish(async () => await fixture.rm());

const packageFiles = path.join(fixture.path, 'package-files');
Expand Down

0 comments on commit da7bdd0

Please sign in to comment.