88 lines
1.9 KiB
TypeScript
88 lines
1.9 KiB
TypeScript
import { addProjectConfiguration, Tree } from 'nx/src/devkit-exports';
|
|
import { createTreeWithEmptyWorkspace } from 'nx/src/devkit-testing-exports';
|
|
|
|
import { forEachExecutorOptions } from './executor-options-utils';
|
|
|
|
describe('forEachExecutorOptions', () => {
|
|
let tree: Tree;
|
|
beforeEach(() => {
|
|
tree = createTreeWithEmptyWorkspace({ layout: 'apps-libs' });
|
|
addProjectConfiguration(tree, 'proj1', {
|
|
root: 'proj1',
|
|
targets: {
|
|
a: {
|
|
executor: 'builder1',
|
|
options: {
|
|
builder1Option: 0,
|
|
},
|
|
configurations: {
|
|
production: {
|
|
builder1Option: 1,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
addProjectConfiguration(tree, 'proj2', {
|
|
root: 'proj2',
|
|
targets: {
|
|
a: {
|
|
executor: 'builder2',
|
|
options: {
|
|
builder2Option: 0,
|
|
},
|
|
configurations: {
|
|
production: {
|
|
builder2Option: 1,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
// configuration with no targets at all which is not valid
|
|
// but should not break the iteration over target configs
|
|
addProjectConfiguration(tree, 'proj3', {
|
|
root: 'proj3',
|
|
} as any);
|
|
});
|
|
|
|
it('should call a function for all options', () => {
|
|
const callback = jest.fn();
|
|
|
|
forEachExecutorOptions(tree, 'builder1', callback);
|
|
|
|
expect(callback).toHaveBeenCalledTimes(2);
|
|
expect(callback).toHaveBeenCalledWith(
|
|
{
|
|
builder1Option: 0,
|
|
},
|
|
'proj1',
|
|
'a'
|
|
);
|
|
expect(callback).toHaveBeenCalledWith(
|
|
{
|
|
builder1Option: 1,
|
|
},
|
|
'proj1',
|
|
'a',
|
|
'production'
|
|
);
|
|
expect(callback).not.toHaveBeenCalledWith(
|
|
{
|
|
builder2Option: 0,
|
|
},
|
|
'proj2',
|
|
'a'
|
|
);
|
|
expect(callback).not.toHaveBeenCalledWith(
|
|
{
|
|
builder2Option: 1,
|
|
},
|
|
'proj2',
|
|
'a',
|
|
'production'
|
|
);
|
|
});
|
|
});
|