110 lines
3.3 KiB
TypeScript
110 lines
3.3 KiB
TypeScript
import update from './split-create-empty-tree';
|
|
import { createTreeWithEmptyWorkspace } from '../../../testing';
|
|
import { addProjectConfiguration, Tree } from '@nrwl/devkit';
|
|
|
|
const TS_FILE_THAT_DOESNT_USE_EITHER = `import { other } from '@nrwl/devkit/testing';
|
|
other();`;
|
|
|
|
const TS_FILE_THAT_USES_DEFAULT = `import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
|
|
|
createTreeWithEmptyWorkspace();
|
|
`;
|
|
|
|
const TS_FILE_THAT_USES_V1 = `import { createTreeWithEmptyV1Workspace } from '@nrwl/devkit/testing';
|
|
|
|
createTreeWithEmptyV1Workspace();
|
|
`;
|
|
|
|
const TS_FILE_THAT_SPECIFIED_V2 = `import { createTreeWithEmptyWorkspace } from '@nrwl/devkit/testing';
|
|
|
|
createTreeWithEmptyWorkspace(2);
|
|
`;
|
|
|
|
const TS_FILE_THAT_SPECIFIED_V1_AND_IMPORTED_ALL = `import * as devkit from '@nrwl/devkit/testing';
|
|
|
|
devkit.createTreeWithEmptyWorkspace(1);
|
|
`;
|
|
|
|
const TS_FILE_THAT_SPECIFIED_V1_AND_IMPORTED_ALL_UPDATED = `import * as devkit from '@nrwl/devkit/testing';
|
|
|
|
devkit.createTreeWithEmptyV1Workspace();
|
|
`;
|
|
|
|
const TS_FILE_THAT_SPECIFIED_V1 = `import { createTreeWithEmptyWorkspace, other } from '@nrwl/devkit/testing';
|
|
|
|
devkit.createTreeWithEmptyWorkspace(1);
|
|
`;
|
|
|
|
const TS_FILE_THAT_SPECIFIED_V1_UPDATED = `import { createTreeWithEmptyV1Workspace, other } from '@nrwl/devkit/testing';
|
|
|
|
devkit.createTreeWithEmptyV1Workspace();
|
|
`;
|
|
|
|
const TS_FILE_THAT_SPECIFIED_BOTH = `import { createTreeWithEmptyWorkspace, other } from '@nrwl/devkit/testing';
|
|
|
|
devkit.createTreeWithEmptyWorkspace(1);
|
|
devkit.createTreeWithEmptyWorkspace(2);
|
|
`;
|
|
|
|
const TS_FILE_THAT_SPECIFIED_BOTH_UPDATED = `import { createTreeWithEmptyV1Workspace, createTreeWithEmptyWorkspace, other } from '@nrwl/devkit/testing';
|
|
|
|
devkit.createTreeWithEmptyV1Workspace();
|
|
devkit.createTreeWithEmptyWorkspace();
|
|
`;
|
|
|
|
const testCases = [
|
|
{
|
|
initial: TS_FILE_THAT_DOESNT_USE_EITHER,
|
|
expected: TS_FILE_THAT_DOESNT_USE_EITHER,
|
|
message: `doesn't use util`,
|
|
},
|
|
{
|
|
initial: TS_FILE_THAT_USES_DEFAULT,
|
|
expected: TS_FILE_THAT_USES_V1,
|
|
message: `uses default value`,
|
|
},
|
|
{
|
|
initial: TS_FILE_THAT_SPECIFIED_V2,
|
|
expected: TS_FILE_THAT_USES_DEFAULT,
|
|
message: 'only specified default',
|
|
},
|
|
{
|
|
initial: TS_FILE_THAT_SPECIFIED_V1,
|
|
expected: TS_FILE_THAT_SPECIFIED_V1_UPDATED,
|
|
message: 'only specified v1',
|
|
},
|
|
{
|
|
initial: TS_FILE_THAT_SPECIFIED_V1_AND_IMPORTED_ALL,
|
|
expected: TS_FILE_THAT_SPECIFIED_V1_AND_IMPORTED_ALL_UPDATED,
|
|
message: 'only specified v1, and imported all',
|
|
},
|
|
{
|
|
initial: TS_FILE_THAT_SPECIFIED_BOTH,
|
|
expected: TS_FILE_THAT_SPECIFIED_BOTH_UPDATED,
|
|
message: 'specified both',
|
|
},
|
|
];
|
|
|
|
describe('update-14-2-0-split-create-empty-tree', () => {
|
|
it.each(testCases)(
|
|
'should match expected if file $message',
|
|
async ({ initial, expected }) => {
|
|
const { tree, tsFilePath } = createTreeWithBoilerplate();
|
|
tree.write(tsFilePath, initial);
|
|
|
|
await update(tree);
|
|
const contents = tree.read(tsFilePath).toString();
|
|
expect(contents).toEqual(expected);
|
|
}
|
|
);
|
|
});
|
|
|
|
function createTreeWithBoilerplate(): { tree: Tree; tsFilePath: string } {
|
|
const tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
|
|
const project = 'proj';
|
|
addProjectConfiguration(tree, project, {
|
|
root: `libs/${project}`,
|
|
});
|
|
return { tree, tsFilePath: `libs/${project}/some-file.ts` };
|
|
}
|