94 lines
2.3 KiB
TypeScript
94 lines
2.3 KiB
TypeScript
import {
|
|
cleanupProject,
|
|
createFile,
|
|
expectJestTestsToPass,
|
|
newProject,
|
|
readJson,
|
|
runCLI,
|
|
uniq,
|
|
updateFile,
|
|
updateJson,
|
|
} from '../../utils';
|
|
|
|
describe('js e2e', () => {
|
|
let scope: string;
|
|
|
|
beforeEach(() => {
|
|
scope = newProject();
|
|
});
|
|
|
|
afterEach(() => cleanupProject());
|
|
|
|
it('should create libs with npm scripts', () => {
|
|
const npmScriptsLib = uniq('npmscriptslib');
|
|
runCLI(
|
|
`generate @nrwl/js:lib ${npmScriptsLib} --config=npm-scripts --no-interactive`
|
|
);
|
|
const libPackageJson = readJson(`libs/${npmScriptsLib}/package.json`);
|
|
expect(libPackageJson.scripts.test).toBeDefined();
|
|
expect(libPackageJson.scripts.build).toBeDefined();
|
|
expect(runCLI(`test ${npmScriptsLib}`)).toContain('implement test');
|
|
|
|
const tsconfig = readJson(`tsconfig.base.json`);
|
|
expect(tsconfig.compilerOptions.paths).toEqual({
|
|
[`@${scope}/${npmScriptsLib}`]: [`libs/${npmScriptsLib}/src/index.ts`],
|
|
});
|
|
}, 240_000);
|
|
|
|
it('should allow wildcard ts path alias', async () => {
|
|
const base = uniq('base');
|
|
runCLI(`generate @nrwl/js:lib ${base} --bundler=tsc --no-interactive`);
|
|
|
|
const lib = uniq('lib');
|
|
runCLI(`generate @nrwl/js:lib ${lib} --bundler=tsc --no-interactive`);
|
|
|
|
updateFile(`libs/${base}/src/index.ts`, () => {
|
|
return `
|
|
import { ${lib} } from '@${scope}/${lib}'
|
|
export * from './lib/${base}';
|
|
|
|
${lib}();
|
|
`;
|
|
});
|
|
|
|
expect(runCLI(`build ${base}`)).toContain(
|
|
'Done compiling TypeScript files'
|
|
);
|
|
|
|
updateJson('tsconfig.base.json', (json) => {
|
|
json['compilerOptions']['paths'][`@${scope}/${lib}/*`] = [
|
|
`libs/${lib}/src/*`,
|
|
];
|
|
return json;
|
|
});
|
|
|
|
createFile(
|
|
`libs/${lib}/src/${lib}.ts`,
|
|
`
|
|
export function ${lib}Wildcard() {
|
|
return '${lib}-wildcard';
|
|
};
|
|
`
|
|
);
|
|
|
|
updateFile(`libs/${base}/src/index.ts`, () => {
|
|
return `
|
|
import { ${lib} } from '@${scope}/${lib}';
|
|
import { ${lib}Wildcard } from '@${scope}/${lib}/src/${lib}';
|
|
export * from './lib/${base}';
|
|
|
|
${lib}();
|
|
${lib}Wildcard();
|
|
`;
|
|
});
|
|
|
|
expect(runCLI(`build ${base}`)).toContain(
|
|
'Done compiling TypeScript files'
|
|
);
|
|
}, 240_000);
|
|
|
|
it('should run default jest tests', async () => {
|
|
await expectJestTestsToPass('@nrwl/js:lib');
|
|
}, 240_000);
|
|
});
|