Skip to content

Commit

Permalink
refactor(mocks): make package.json builder easier to read
Browse files Browse the repository at this point in the history
  • Loading branch information
JamieMason committed May 29, 2022
1 parent cbdc6cc commit f8aeb0f
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 40 deletions.
17 changes: 12 additions & 5 deletions test/mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,19 @@ export function toJson(contents: SourceWrapper['contents']): string {
return `${JSON.stringify(contents, null, 2)}${EOL}`;
}

export const wrapper = (
export const mockPackage = (
dirName: string,
deps?: string[],
devDeps?: string[],
peerDeps?: string[],
otherProps?: Record<string, string | Record<string, any>>,
{
deps,
devDeps,
peerDeps,
otherProps,
}: {
deps?: string[];
devDeps?: string[];
peerDeps?: string[];
otherProps?: Record<string, string | Record<string, any>>;
} = {},
): SourceWrapper => {
return withJson({
contents: {
Expand Down
66 changes: 31 additions & 35 deletions test/scenarios/index.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { wrapper } from '../mock';
import { mockPackage } from '../mock';
import { createScenario } from './create-scenario';

export const scenarios = {
Expand All @@ -13,13 +13,13 @@ export const scenarios = {
[
{
path: 'packages/a/package.json',
before: wrapper('a', ['foo@0.1.0']),
after: wrapper('a', ['foo@0.1.0']),
before: mockPackage('a', { deps: ['foo@0.1.0'] }),
after: mockPackage('a', { deps: ['foo@0.1.0'] }),
},
{
path: 'packages/b/package.json',
before: wrapper('b', ['bar@0.2.0']),
after: wrapper('b'),
before: mockPackage('b', { deps: ['bar@0.2.0'] }),
after: mockPackage('b'),
},
],
{
Expand All @@ -45,23 +45,23 @@ export const scenarios = {
[
{
path: 'packages/a/package.json',
before: wrapper('a', ['foo@link:vendor/foo-0.1.0']),
after: wrapper('a', ['foo@0.3.0']),
before: mockPackage('a', { deps: ['foo@link:vendor/foo-0.1.0'] }),
after: mockPackage('a', { deps: ['foo@0.3.0'] }),
},
{
path: 'packages/b/package.json',
before: wrapper('b', ['foo@link:vendor/foo-0.2.0']),
after: wrapper('b', ['foo@0.3.0']),
before: mockPackage('b', { deps: ['foo@link:vendor/foo-0.2.0'] }),
after: mockPackage('b', { deps: ['foo@0.3.0'] }),
},
{
path: 'packages/c/package.json',
before: wrapper('c', ['foo@0.3.0']),
after: wrapper('c', ['foo@0.3.0']),
before: mockPackage('c', { deps: ['foo@0.3.0'] }),
after: mockPackage('c', { deps: ['foo@0.3.0'] }),
},
{
path: 'packages/d/package.json',
before: wrapper('d', ['foo@0.2.0']),
after: wrapper('d', ['foo@0.3.0']),
before: mockPackage('d', { deps: ['foo@0.2.0'] }),
after: mockPackage('d', { deps: ['foo@0.3.0'] }),
},
],
{},
Expand All @@ -77,23 +77,21 @@ export const scenarios = {
[
{
path: 'packages/a/package.json',
before: wrapper('a', ['c@0.1.0']),
after: wrapper('a', ['c@0.0.1']),
before: mockPackage('a', { deps: ['c@0.1.0'] }),
after: mockPackage('a', { deps: ['c@0.0.1'] }),
},
{
path: 'packages/b/package.json',
before: wrapper('b', [], ['c@0.2.0']),
after: wrapper('b', [], ['c@0.0.1']),
before: mockPackage('b', { devDeps: ['c@0.2.0'] }),
after: mockPackage('b', { devDeps: ['c@0.0.1'] }),
},
{
path: 'packages/c/package.json',
before: wrapper('c', [], [], [], {
name: 'c',
version: '0.0.1',
before: mockPackage('c', {
otherProps: { name: 'c', version: '0.0.1' },
}),
after: wrapper('c', [], [], [], {
name: 'c',
version: '0.0.1',
after: mockPackage('c', {
otherProps: { name: 'c', version: '0.0.1' },
}),
},
],
Expand All @@ -117,23 +115,21 @@ export const scenarios = {
[
{
path: 'workspaces/a/packages/a/package.json',
before: wrapper('a', ['c@0.1.0']),
after: wrapper('a', ['c@0.0.1']),
before: mockPackage('a', { deps: ['c@0.1.0'] }),
after: mockPackage('a', { deps: ['c@0.0.1'] }),
},
{
path: 'workspaces/b/packages/b/package.json',
before: wrapper('b', [], ['c@0.2.0']),
after: wrapper('b', [], ['c@0.0.1']),
before: mockPackage('b', { devDeps: ['c@0.2.0'] }),
after: mockPackage('b', { devDeps: ['c@0.0.1'] }),
},
{
path: 'workspaces/b/packages/c/package.json',
before: wrapper('c', [], [], [], {
name: 'c',
version: '0.0.1',
before: mockPackage('c', {
otherProps: { name: 'c', version: '0.0.1' },
}),
after: wrapper('c', [], [], [], {
name: 'c',
version: '0.0.1',
after: mockPackage('c', {
otherProps: { name: 'c', version: '0.0.1' },
}),
},
],
Expand Down Expand Up @@ -163,8 +159,8 @@ export const scenarios = {
[
{
path: 'packages/a/package.json',
before: wrapper('a', ['foo@0.1.0', 'bar@2.0.0']),
after: wrapper('a', ['foo@~0.1.0', 'bar@~2.0.0']),
before: mockPackage('a', { deps: ['foo@0.1.0', 'bar@2.0.0'] }),
after: mockPackage('a', { deps: ['foo@~0.1.0', 'bar@~2.0.0'] }),
},
],
{
Expand Down

0 comments on commit f8aeb0f

Please sign in to comment.