196 lines
4.5 KiB
TypeScript
196 lines
4.5 KiB
TypeScript
import {
|
|
addProjectConfiguration,
|
|
readNxJson,
|
|
readProjectConfiguration,
|
|
updateNxJson,
|
|
} from '@nx/devkit';
|
|
import { createTreeWithEmptyWorkspace } from '@nx/devkit/testing';
|
|
import removeKarmaDefaults from './remove-karma-defaults';
|
|
|
|
describe('removeKarmaDefaults', () => {
|
|
it('should remove karma as default unit test runner from nx.json when exists', async () => {
|
|
// ARRANGE
|
|
const tree = createTreeWithEmptyWorkspace();
|
|
|
|
const nxJson = readNxJson(tree);
|
|
nxJson.generators = {
|
|
'@nrwl/angular:application': {
|
|
unitTestRunner: 'karma',
|
|
},
|
|
'@nrwl/angular:library': {
|
|
unitTestRunner: 'karma',
|
|
},
|
|
'@nrwl/angular:host': {
|
|
unitTestRunner: 'karma',
|
|
},
|
|
'@nrwl/angular:remote': {
|
|
unitTestRunner: 'karma',
|
|
},
|
|
};
|
|
updateNxJson(tree, nxJson);
|
|
|
|
// ACT
|
|
await removeKarmaDefaults(tree);
|
|
|
|
// ASSERT
|
|
expect(readNxJson(tree).generators).toMatchInlineSnapshot(`
|
|
{
|
|
"@nrwl/angular:application": {},
|
|
"@nrwl/angular:host": {},
|
|
"@nrwl/angular:library": {},
|
|
"@nrwl/angular:remote": {},
|
|
}
|
|
`);
|
|
});
|
|
|
|
it('should only remove karma as default unit test runner from nx.json when set', async () => {
|
|
// ARRANGE
|
|
const tree = createTreeWithEmptyWorkspace();
|
|
|
|
const nxJson = readNxJson(tree);
|
|
nxJson.generators = {
|
|
'@nrwl/angular:application': {
|
|
style: 'scss',
|
|
unitTestRunner: 'karma',
|
|
},
|
|
'@nrwl/angular:library': {
|
|
unitTestRunner: 'jest',
|
|
},
|
|
'@nrwl/angular:host': {
|
|
style: 'scss',
|
|
unitTestRunner: 'karma',
|
|
},
|
|
'@nrwl/angular:remote': {
|
|
unitTestRunner: 'jest',
|
|
},
|
|
};
|
|
updateNxJson(tree, nxJson);
|
|
|
|
// ACT
|
|
await removeKarmaDefaults(tree);
|
|
|
|
// ASSERT
|
|
expect(readNxJson(tree).generators).toMatchInlineSnapshot(`
|
|
{
|
|
"@nrwl/angular:application": {
|
|
"style": "scss",
|
|
},
|
|
"@nrwl/angular:host": {
|
|
"style": "scss",
|
|
},
|
|
"@nrwl/angular:library": {
|
|
"unitTestRunner": "jest",
|
|
},
|
|
"@nrwl/angular:remote": {
|
|
"unitTestRunner": "jest",
|
|
},
|
|
}
|
|
`);
|
|
});
|
|
|
|
it('should not remove karma as default unit test runner from unsupported generator', async () => {
|
|
// ARRANGE
|
|
const tree = createTreeWithEmptyWorkspace();
|
|
|
|
const nxJson = readNxJson(tree);
|
|
nxJson.generators = {
|
|
'@my/custom:plugin': {
|
|
style: 'scss',
|
|
unitTestRunner: 'karma',
|
|
},
|
|
};
|
|
updateNxJson(tree, nxJson);
|
|
|
|
// ACT
|
|
await removeKarmaDefaults(tree);
|
|
|
|
// ASSERT
|
|
expect(readNxJson(tree).generators).toMatchInlineSnapshot(`
|
|
{
|
|
"@my/custom:plugin": {
|
|
"style": "scss",
|
|
"unitTestRunner": "karma",
|
|
},
|
|
}
|
|
`);
|
|
});
|
|
|
|
it('should remove karma as default for project specific generators', async () => {
|
|
// ARRANGE
|
|
const tree = createTreeWithEmptyWorkspace();
|
|
addProjectConfiguration(tree, 'test', {
|
|
name: 'test',
|
|
root: '.',
|
|
sourceRoot: 'src',
|
|
generators: {
|
|
'@nrwl/angular:application': {
|
|
style: 'scss',
|
|
unitTestRunner: 'karma',
|
|
},
|
|
},
|
|
});
|
|
|
|
// ACT
|
|
await removeKarmaDefaults(tree);
|
|
|
|
// ASSERT
|
|
expect(readProjectConfiguration(tree, 'test').generators)
|
|
.toMatchInlineSnapshot(`
|
|
{
|
|
"@nrwl/angular:application": {
|
|
"style": "scss",
|
|
},
|
|
}
|
|
`);
|
|
});
|
|
|
|
it('should remove karma when using nested generator default syntax', async () => {
|
|
// ARRANGE
|
|
const tree = createTreeWithEmptyWorkspace();
|
|
|
|
const nxJson = readNxJson(tree);
|
|
nxJson.generators = {
|
|
'@nrwl/angular:application': {
|
|
style: 'scss',
|
|
unitTestRunner: 'karma',
|
|
},
|
|
'@nrwl/angular:library': {
|
|
unitTestRunner: 'jest',
|
|
},
|
|
'@nrwl/angular': {
|
|
host: {
|
|
style: 'scss',
|
|
unitTestRunner: 'karma',
|
|
},
|
|
remote: {
|
|
unitTestRunner: 'jest',
|
|
},
|
|
},
|
|
};
|
|
updateNxJson(tree, nxJson);
|
|
|
|
// ACT
|
|
await removeKarmaDefaults(tree);
|
|
|
|
// ASSERT
|
|
expect(readNxJson(tree).generators).toMatchInlineSnapshot(`
|
|
{
|
|
"@nrwl/angular": {
|
|
"host": {
|
|
"style": "scss",
|
|
},
|
|
"remote": {
|
|
"unitTestRunner": "jest",
|
|
},
|
|
},
|
|
"@nrwl/angular:application": {
|
|
"style": "scss",
|
|
},
|
|
"@nrwl/angular:library": {
|
|
"unitTestRunner": "jest",
|
|
},
|
|
}
|
|
`);
|
|
});
|
|
});
|