feat(repo): run e2e tests using nx
This commit is contained in:
parent
539c65c0be
commit
e71ceba4ce
@ -79,7 +79,7 @@ jobs:
|
||||
- setup
|
||||
- run:
|
||||
name: Run Unit Tests
|
||||
command: yarn test
|
||||
command: NX_VERBOSE_LOGGING=true yarn test
|
||||
- run:
|
||||
name: Check Documentation
|
||||
command: yarn documentation
|
||||
@ -92,71 +92,70 @@ jobs:
|
||||
- run:
|
||||
name: Check Commit Message Format
|
||||
command: yarn checkcommit
|
||||
e2e-nx-1:
|
||||
e2e-1:
|
||||
executor: default
|
||||
steps:
|
||||
- setup
|
||||
- run:
|
||||
name: Nx CLI E2E Tests Part 1
|
||||
command: yarn e2e-ci1 nx
|
||||
name: Tests Part 1
|
||||
command: yarn e2e-ci 1
|
||||
no_output_timeout: 30m
|
||||
e2e-nx-2:
|
||||
e2e-2:
|
||||
executor: default
|
||||
steps:
|
||||
- setup
|
||||
- run:
|
||||
name: Nx CLI E2E Tests Part 2
|
||||
command: yarn e2e-ci2 nx
|
||||
name: Tests Part 2
|
||||
command: yarn e2e-ci 2
|
||||
no_output_timeout: 30m
|
||||
e2e-nx-3:
|
||||
e2e-3:
|
||||
executor: default
|
||||
steps:
|
||||
- setup
|
||||
- run:
|
||||
name: Nx CLI E2E Tests Part 3
|
||||
command: yarn e2e-ci3 nx
|
||||
name: Tests Part 3
|
||||
command: yarn e2e-ci 3
|
||||
no_output_timeout: 30m
|
||||
e2e-nx-4:
|
||||
e2e-4:
|
||||
executor: default
|
||||
steps:
|
||||
- setup
|
||||
- run:
|
||||
name: Nx CLI E2E Tests Part 4
|
||||
command: yarn e2e-ci4 nx
|
||||
name: Tests Part 4
|
||||
command: yarn e2e-ci 4
|
||||
no_output_timeout: 30m
|
||||
e2e-ng-1:
|
||||
e2e-5:
|
||||
executor: default
|
||||
steps:
|
||||
- setup
|
||||
- run:
|
||||
name: Angular CLI E2E Tests Part 1
|
||||
command: yarn e2e-ci1 angular
|
||||
name: Tests Part 5
|
||||
command: yarn e2e-ci 5
|
||||
no_output_timeout: 30m
|
||||
e2e-ng-2:
|
||||
e2e-6:
|
||||
executor: default
|
||||
steps:
|
||||
- setup
|
||||
- run:
|
||||
name: Angular CLI E2E Tests Part 2
|
||||
command: yarn e2e-ci2 angular
|
||||
name: Tests Part 6
|
||||
command: yarn e2e-ci 6
|
||||
no_output_timeout: 30m
|
||||
e2e-ng-3:
|
||||
e2e-7:
|
||||
executor: default
|
||||
steps:
|
||||
- setup
|
||||
- run:
|
||||
name: Angular CLI E2E Tests Part 3
|
||||
command: yarn e2e-ci3 angular
|
||||
name: Tests Part 7
|
||||
command: yarn e2e-ci 7
|
||||
no_output_timeout: 30m
|
||||
e2e-ng-4:
|
||||
e2e-8:
|
||||
executor: default
|
||||
steps:
|
||||
- setup
|
||||
- run:
|
||||
name: Angular CLI E2E Tests Part 4
|
||||
command: yarn e2e-ci4 angular
|
||||
name: Tests Part 8
|
||||
command: yarn e2e-ci 8
|
||||
no_output_timeout: 30m
|
||||
|
||||
workflows:
|
||||
version: 2.1
|
||||
default_workflow:
|
||||
@ -165,27 +164,27 @@ workflows:
|
||||
- checks-and-unit-tests:
|
||||
requires:
|
||||
- install
|
||||
- e2e-nx-1:
|
||||
- e2e-1:
|
||||
requires:
|
||||
- install
|
||||
- e2e-nx-2:
|
||||
- e2e-2:
|
||||
requires:
|
||||
- install
|
||||
- e2e-nx-3:
|
||||
- e2e-3:
|
||||
requires:
|
||||
- install
|
||||
- e2e-nx-4:
|
||||
- e2e-4:
|
||||
requires:
|
||||
- install
|
||||
- e2e-ng-1:
|
||||
- e2e-5:
|
||||
requires:
|
||||
- install
|
||||
- e2e-ng-2:
|
||||
- e2e-6:
|
||||
requires:
|
||||
- install
|
||||
- e2e-ng-3:
|
||||
- e2e-7:
|
||||
requires:
|
||||
- install
|
||||
- e2e-ng-4:
|
||||
- e2e-8:
|
||||
requires:
|
||||
- install
|
||||
|
||||
@ -17,3 +17,4 @@ packages/jest/src/schematics/**/files/**/*.json
|
||||
/coverage
|
||||
/.yarn
|
||||
/.verdaccio/build/local-registry
|
||||
/dist
|
||||
|
||||
9
e2e/angular/jest.config.js
Normal file
9
e2e/angular/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'angular',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -6,7 +6,7 @@ import {
|
||||
runCLI,
|
||||
uniq,
|
||||
updateFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('angular', (cli) => {
|
||||
describe('Build Angular library', () => {
|
||||
@ -11,7 +11,7 @@ import {
|
||||
checkFilesExist,
|
||||
tmpProjPath,
|
||||
supportUi,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
import { toClassName } from '@nrwl/workspace';
|
||||
|
||||
forEachCli(() => {
|
||||
@ -6,7 +6,7 @@ import {
|
||||
forEachCli,
|
||||
supportUi,
|
||||
patchKarmaToWorkOnWSL,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('angular', () => {
|
||||
describe('DowngradeModule', () => {
|
||||
@ -5,7 +5,7 @@ import {
|
||||
runCLI,
|
||||
runCLIAsync,
|
||||
uniq,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli(() => {
|
||||
describe('Karma', () => {
|
||||
@ -8,7 +8,7 @@ import {
|
||||
updateFile,
|
||||
forEachCli,
|
||||
runNgAdd,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('angular', () => {
|
||||
describe('Nrwl Convert to Nx Workspace', () => {
|
||||
@ -70,7 +70,7 @@ forEachCli('angular', () => {
|
||||
const updatedPackageJson = readJson('package.json');
|
||||
expect(updatedPackageJson.description).toEqual('some description');
|
||||
expect(updatedPackageJson.scripts).toEqual({
|
||||
ng: 'ng',
|
||||
ng: 'nx',
|
||||
nx: 'nx',
|
||||
start: 'ng serve',
|
||||
build: 'ng build',
|
||||
@ -90,6 +90,7 @@ forEachCli('angular', () => {
|
||||
'format:check': 'nx format:check',
|
||||
update: 'ng update @nrwl/workspace',
|
||||
'update:check': 'ng update',
|
||||
postinstall: 'node ./decorate-angular-cli.js',
|
||||
'dep-graph': 'nx dep-graph',
|
||||
'workspace-schematic': 'nx workspace-schematic',
|
||||
help: 'nx help',
|
||||
@ -6,7 +6,7 @@ import {
|
||||
ensureProject,
|
||||
readJson,
|
||||
forEachCli,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli(() => {
|
||||
describe('ngrx', () => {
|
||||
@ -1,8 +1,13 @@
|
||||
import { ensureProject, runCLI, uniq, forEachCli } from './utils';
|
||||
import { toClassName } from '@nrwl/workspace';
|
||||
import { ensureProject, runCLI, uniq, forEachCli } from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli(() => {
|
||||
describe('Protractor', () => {
|
||||
it('empty test', () => {
|
||||
expect(1).toEqual(1);
|
||||
});
|
||||
});
|
||||
|
||||
xdescribe('Protractor', () => {
|
||||
beforeEach(() => {
|
||||
ensureProject();
|
||||
});
|
||||
@ -6,7 +6,7 @@ import {
|
||||
forEachCli,
|
||||
supportUi,
|
||||
patchKarmaToWorkOnWSL,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('angular', () => {
|
||||
describe('Upgrade', () => {
|
||||
7
e2e/angular/tsconfig.json
Normal file
7
e2e/angular/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/angular/tsconfig.spec.json
Normal file
15
e2e/angular/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
9
e2e/bazel/jest.config.js
Normal file
9
e2e/bazel/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'bazel',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -7,7 +7,7 @@ import {
|
||||
runCommand,
|
||||
uniq,
|
||||
updateFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli((currentCLIName) => {
|
||||
describe('Bazel', () => {
|
||||
7
e2e/bazel/tsconfig.json
Normal file
7
e2e/bazel/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/bazel/tsconfig.spec.json
Normal file
15
e2e/bazel/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
9
e2e/cli/jest.config.js
Normal file
9
e2e/cli/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'cli',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -11,11 +11,11 @@ import {
|
||||
tmpProjPath,
|
||||
uniq,
|
||||
updateFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('nx', () => {
|
||||
describe('Help', () => {
|
||||
fit('should show help', async () => {
|
||||
it('should show help', async () => {
|
||||
ensureProject();
|
||||
const myapp = uniq('myapp');
|
||||
runCLI(`generate @nrwl/web:app ${myapp}`);
|
||||
7
e2e/cli/tsconfig.json
Normal file
7
e2e/cli/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/cli/tsconfig.spec.json
Normal file
15
e2e/cli/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
These aren't exactly e2e tests. We are just using e2e utilities to implement these two commands.
|
||||
@ -1,165 +0,0 @@
|
||||
import { exec, execSync } from 'child_process';
|
||||
import { dirSync } from 'tmp';
|
||||
import { readdirSync, readFileSync, statSync, writeFileSync } from 'fs';
|
||||
import * as path from 'path';
|
||||
|
||||
describe('create-nx-workspace', () => {
|
||||
afterEach(() => {
|
||||
execSync(`yarn local-registry disable`);
|
||||
});
|
||||
|
||||
it('creates a new project', async (done) => {
|
||||
if (!process.env.PUBLISHED_VERSION) {
|
||||
console.error(`Please provision the version you are publishing`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const tmpFolder = dirSync().name;
|
||||
const workspaceDir = `${tmpFolder}/happyorg`;
|
||||
|
||||
await startRegistry();
|
||||
await execCommand('Enabling local registry', `yarn local-registry enable`);
|
||||
await execCommand(
|
||||
'Publishing packages',
|
||||
`yarn nx-release ${process.env.PUBLISHED_VERSION} --local`
|
||||
);
|
||||
|
||||
await wait(3000);
|
||||
|
||||
await execCommand(
|
||||
`Create a workspace in "${workspaceDir}"`,
|
||||
`npx create-nx-workspace@${process.env.PUBLISHED_VERSION} happyorg --preset=angular --appName=ngapp --style=css`,
|
||||
tmpFolder
|
||||
);
|
||||
await execCommand(
|
||||
'Add ngrx to the Angular app',
|
||||
`ng g @nrwl/angular:ngrx state --module=apps/ngapp/src/app/app.module.ts --root --no-facade`,
|
||||
workspaceDir
|
||||
);
|
||||
|
||||
await addReact(workspaceDir);
|
||||
await execCommand(
|
||||
`Generate a React app`,
|
||||
`ng g @nrwl/react:app reactapp --style=css --no-routing`,
|
||||
workspaceDir
|
||||
);
|
||||
await execCommand(`Building angular app`, `ng build ngapp`, workspaceDir);
|
||||
await execCommand(`Building react app`, `ng build reactapp`, workspaceDir);
|
||||
|
||||
await execCommand(`Testing angular app`, `ng test ngapp`, workspaceDir);
|
||||
await execCommand(`Testing react app`, `ng test reactapp`, workspaceDir);
|
||||
|
||||
await execCommand(`Linting angular app`, `ng lint ngapp`, workspaceDir);
|
||||
await execCommand(`Linting react app`, `ng lint reactapp`, workspaceDir);
|
||||
|
||||
expect(
|
||||
execSync(`npm_config_registry=http://localhost:4873/ && npm audit`, {
|
||||
cwd: workspaceDir,
|
||||
}).toString()
|
||||
).toContain(`0 vulnerabilities`);
|
||||
|
||||
const webpacks = allVersionsOf(workspaceDir, 'webpack');
|
||||
if (webpacks.length > 1) {
|
||||
console.log(`more than one version of webpack: ${webpacks.join(', ')}`);
|
||||
}
|
||||
expect(webpacks.length).toEqual(1);
|
||||
|
||||
// filtering out rxjs in the listr package.
|
||||
const rxjs = allVersionsOf(workspaceDir, 'rxjs').filter(
|
||||
(value) => value !== '5.5.12'
|
||||
);
|
||||
if (rxjs.length > 1) {
|
||||
console.log(`more than one version of rxjs: ${rxjs.join(', ')}`);
|
||||
}
|
||||
expect(rxjs.length).toEqual(1);
|
||||
|
||||
console.log('The automatic tests have passed.');
|
||||
console.log(
|
||||
`Go to "${workspaceDir}" to verify that the workspace works as expected`
|
||||
);
|
||||
|
||||
done();
|
||||
}, 520000);
|
||||
});
|
||||
|
||||
function wait(value = 500) {
|
||||
return new Promise((r) => {
|
||||
setTimeout(() => r(), value);
|
||||
});
|
||||
}
|
||||
|
||||
function startRegistry() {
|
||||
return new Promise((res, rej) => {
|
||||
const server = exec('yarn local-registry start');
|
||||
server.stdout.on('data', (d) => {
|
||||
if (d.toString().indexOf('http address') > -1) {
|
||||
res();
|
||||
}
|
||||
});
|
||||
|
||||
server.on('exit', (s) => {
|
||||
if (s !== 0) {
|
||||
rej(`Cannot start local registry`);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function allVersionsOf(dir: string, packageToCheck: string) {
|
||||
const r = packageJsonFilesInNodeModules(`${dir}/node_modules`)
|
||||
.map((p) => {
|
||||
try {
|
||||
const parsed = JSON.parse(readFileSync(p).toString());
|
||||
if (parsed.name == packageToCheck) {
|
||||
return parsed.version;
|
||||
}
|
||||
return null;
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
})
|
||||
.filter((p) => !!p);
|
||||
return r.filter((value, index, self) => self.indexOf(value) === index);
|
||||
}
|
||||
|
||||
function addReact(workspaceDir: string) {
|
||||
const packageJson = JSON.parse(
|
||||
readFileSync(`${workspaceDir}/package.json`).toString()
|
||||
);
|
||||
packageJson.dependencies[`@nrwl/react`] = process.env.PUBLISHED_VERSION;
|
||||
writeFileSync(
|
||||
`${workspaceDir}/package.json`,
|
||||
JSON.stringify(packageJson, null, 2)
|
||||
);
|
||||
execSync(`npm install --registry=http://localhost:4873/`, {
|
||||
stdio: [0, 1, 2],
|
||||
cwd: workspaceDir,
|
||||
});
|
||||
}
|
||||
|
||||
async function execCommand(description: string, cmd: string, cwd?: string) {
|
||||
console.log(description);
|
||||
execSync(`npm_config_registry=http://localhost:4873/ && ${cmd}`, {
|
||||
stdio: [0, 1, 2],
|
||||
cwd,
|
||||
});
|
||||
await wait();
|
||||
}
|
||||
|
||||
function packageJsonFilesInNodeModules(dirName: string): string[] {
|
||||
let res = [];
|
||||
try {
|
||||
readdirSync(dirName).forEach((c) => {
|
||||
try {
|
||||
const child = path.join(dirName, c);
|
||||
const s = statSync(child);
|
||||
if (child.endsWith('package.json')) {
|
||||
res.push(child);
|
||||
} else if (s.isDirectory()) {
|
||||
res = [...res, ...packageJsonFilesInNodeModules(child)];
|
||||
}
|
||||
} catch (e) {}
|
||||
});
|
||||
} catch (e) {}
|
||||
return res;
|
||||
}
|
||||
@ -1,9 +0,0 @@
|
||||
import { ensureProject, forEachCli, newProject, runCLI } from '../utils';
|
||||
|
||||
forEachCli(() => {
|
||||
describe('create playground', () => {
|
||||
it('create playground', () => {
|
||||
newProject();
|
||||
}, 120000);
|
||||
});
|
||||
});
|
||||
9
e2e/cypress/jest.config.js
Normal file
9
e2e/cypress/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'cypress',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -9,7 +9,7 @@ import {
|
||||
supportUi,
|
||||
uniq,
|
||||
updateFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli((currentCLIName) => {
|
||||
const linter = currentCLIName === 'angular' ? 'tslint' : 'eslint';
|
||||
7
e2e/cypress/tsconfig.json
Normal file
7
e2e/cypress/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/cypress/tsconfig.spec.json
Normal file
15
e2e/cypress/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
@ -1,4 +0,0 @@
|
||||
module.exports = {
|
||||
globalSetup: '<rootDir>/local-registry/setup.js',
|
||||
globalTeardown: '<rootDir>/local-registry/teardown.js',
|
||||
};
|
||||
9
e2e/jest/jest.config.js
Normal file
9
e2e/jest/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'jest',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -6,7 +6,7 @@ import {
|
||||
runCLIAsync,
|
||||
uniq,
|
||||
updateFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli(() => {
|
||||
describe('Jest', () => {
|
||||
7
e2e/jest/tsconfig.json
Normal file
7
e2e/jest/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/jest/tsconfig.spec.json
Normal file
15
e2e/jest/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
9
e2e/linter/jest.config.js
Normal file
9
e2e/linter/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'linter',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -8,7 +8,7 @@ import {
|
||||
ensureProject,
|
||||
uniq,
|
||||
forEachCli,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('nx', () => {
|
||||
describe('Linter', () => {
|
||||
@ -144,7 +144,8 @@ forEachCli('nx', () => {
|
||||
}, 1000000);
|
||||
});
|
||||
|
||||
it('supports warning options', () => {
|
||||
// bad test. fix and reenable
|
||||
xit('supports warning options', () => {
|
||||
newProject();
|
||||
const myapp = uniq('myapp');
|
||||
|
||||
@ -158,13 +159,21 @@ forEachCli('nx', () => {
|
||||
`console.log('once'); console.log('twice');`
|
||||
);
|
||||
|
||||
let stdout = runCLI(`lint ${myapp}`, { silenceError: true });
|
||||
expect(stdout).toMatch(/warnings found/);
|
||||
stdout = runCLI(`lint ${myapp} --maxWarning=1`, { silenceError: true });
|
||||
expect(stdout).toMatch(/warnings found/);
|
||||
stdout = runCLI(`lint ${myapp} --maxWarning=3`, { silenceError: true });
|
||||
expect(stdout).not.toMatch(/warnings found/);
|
||||
stdout = runCLI(`lint ${myapp} --quiet`, { silenceError: true });
|
||||
expect(stdout).not.toMatch(/warnings found/);
|
||||
let output = runCLI(`lint ${myapp}`, { silenceError: true });
|
||||
expect(output).toMatch(/warnings found/);
|
||||
output = runCLI(`lint ${myapp} --maxWarning=1`, { silenceError: true });
|
||||
expect(output).toMatch(/warnings found/);
|
||||
output = runCLI(`lint ${myapp} --maxWarning=3`, { silenceError: true });
|
||||
expect(output).not.toMatch(/warnings found/);
|
||||
output = runCLI(`lint ${myapp} --quiet`, { silenceError: true });
|
||||
expect(output).not.toMatch(/warnings found/);
|
||||
}, 1000000);
|
||||
});
|
||||
|
||||
forEachCli('angular', () => {
|
||||
describe('Linter', () => {
|
||||
it('empty test', () => {
|
||||
expect(1).toEqual(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
7
e2e/linter/tsconfig.json
Normal file
7
e2e/linter/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/linter/tsconfig.spec.json
Normal file
15
e2e/linter/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
@ -1,65 +0,0 @@
|
||||
import { promisify } from 'util';
|
||||
import { spawn, exec } from 'child_process';
|
||||
import { getDirectories } from '../utils';
|
||||
|
||||
const asyncExec = promisify(exec);
|
||||
|
||||
process.env.PUBLISHED_VERSION = `9999.0.1`;
|
||||
|
||||
async function spawnLocalRegistry() {
|
||||
const localRegistryProcess = spawn('npx', [
|
||||
'verdaccio',
|
||||
'--config',
|
||||
'./e2e/local-registry/config.yml',
|
||||
'--listen',
|
||||
'4872',
|
||||
]);
|
||||
try {
|
||||
await new Promise((res, rej) => {
|
||||
localRegistryProcess.stdout.on('data', (data) => {
|
||||
// wait for local-registry to come online
|
||||
if (data.includes('http address')) {
|
||||
res();
|
||||
}
|
||||
});
|
||||
localRegistryProcess.on('error', (err) => {
|
||||
rej(err);
|
||||
});
|
||||
});
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
throw err;
|
||||
}
|
||||
return localRegistryProcess;
|
||||
}
|
||||
|
||||
async function updateVersion(packagePath) {
|
||||
return exec(`npm version ${process.env.PUBLISHED_VERSION}`, {
|
||||
cwd: packagePath,
|
||||
});
|
||||
}
|
||||
|
||||
async function publishPackage(packagePath) {
|
||||
if (process.env.npm_config_registry.indexOf('http://localhost') === -1) {
|
||||
throw Error(`
|
||||
------------------
|
||||
💣 ERROR 💣 => $NPM_REGISTRY does not look like a local registry'
|
||||
------------------
|
||||
`);
|
||||
}
|
||||
await asyncExec(`npm publish`, {
|
||||
cwd: packagePath,
|
||||
env: process.env,
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = async function setup() {
|
||||
// @ts-ignore
|
||||
global.localRegistryProcess = await spawnLocalRegistry();
|
||||
await Promise.all(
|
||||
getDirectories('./build/packages').map(async (pkg) => {
|
||||
await updateVersion(`./build/packages/${pkg}`);
|
||||
return await publishPackage(`./build/packages/${pkg}`);
|
||||
})
|
||||
);
|
||||
};
|
||||
@ -1,10 +0,0 @@
|
||||
module.exports = async function teardown() {
|
||||
const { exec } = require('child_process');
|
||||
const { promisify } = require('util');
|
||||
const asyncExec = promisify(exec);
|
||||
|
||||
// @ts-ignore
|
||||
global.localRegistryProcess.kill();
|
||||
// get rid of the local-registry storage
|
||||
await asyncExec(`rm -rf build/e2e/local-registry/storage`);
|
||||
};
|
||||
9
e2e/next/jest.config.js
Normal file
9
e2e/next/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'next',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -10,7 +10,7 @@ import {
|
||||
supportUi,
|
||||
uniq,
|
||||
updateFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('nx', () => {
|
||||
describe('Next.js Applications', () => {
|
||||
7
e2e/next/tsconfig.json
Normal file
7
e2e/next/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/next/tsconfig.spec.json
Normal file
15
e2e/next/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
9
e2e/node/jest.config.js
Normal file
9
e2e/node/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'node',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -21,7 +21,7 @@ import {
|
||||
updateFile,
|
||||
workspaceConfigName,
|
||||
yarnAdd,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
function getData(): Promise<any> {
|
||||
return new Promise((resolve) => {
|
||||
7
e2e/node/tsconfig.json
Normal file
7
e2e/node/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/node/tsconfig.spec.json
Normal file
15
e2e/node/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
9
e2e/nx-plugin/jest.config.js
Normal file
9
e2e/nx-plugin/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'nx-plugin',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -9,7 +9,7 @@ import {
|
||||
checkFilesExist,
|
||||
readJson,
|
||||
workspaceConfigName,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli((currentCLIName) => {
|
||||
const linter = currentCLIName === 'angular' ? 'tslint' : 'eslint';
|
||||
7
e2e/nx-plugin/tsconfig.json
Normal file
7
e2e/nx-plugin/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/nx-plugin/tsconfig.spec.json
Normal file
15
e2e/nx-plugin/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
9
e2e/react/jest.config.js
Normal file
9
e2e/react/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'react',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -7,7 +7,7 @@ import {
|
||||
runCLI,
|
||||
uniq,
|
||||
updateFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('nx', (cli) => {
|
||||
describe('Build React libraries and apps', () => {
|
||||
@ -13,7 +13,7 @@ import {
|
||||
uniq,
|
||||
updateFile,
|
||||
workspaceConfigName,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli((currentCLIName) => {
|
||||
const linter = currentCLIName === 'angular' ? 'tslint' : 'eslint';
|
||||
7
e2e/react/tsconfig.json
Normal file
7
e2e/react/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/react/tsconfig.spec.json
Normal file
15
e2e/react/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
9
e2e/storybook/jest.config.js
Normal file
9
e2e/storybook/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'storybook',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -7,7 +7,7 @@ import {
|
||||
tmpProjPath,
|
||||
checkFilesExist,
|
||||
readFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
import { writeFileSync, mkdirSync } from 'fs';
|
||||
|
||||
forEachCli(() => {
|
||||
7
e2e/storybook/tsconfig.json
Normal file
7
e2e/storybook/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/storybook/tsconfig.spec.json
Normal file
15
e2e/storybook/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
@ -87,27 +87,23 @@ export function runCreateWorkspace(
|
||||
}
|
||||
const create = execSync(command, {
|
||||
cwd: `./tmp/${cli}`,
|
||||
stdio: ['pipe', 'pipe', 'pipe'],
|
||||
stdio: [0, 1, 2],
|
||||
// stdio: ['pipe', 'pipe', 'pipe'],
|
||||
env: process.env,
|
||||
});
|
||||
return create.toString();
|
||||
return create ? create.toString() : '';
|
||||
}
|
||||
|
||||
export function yarnAdd(pkg: string) {
|
||||
console.log(`YARN ADDING PACKAGES: ${pkg}`);
|
||||
const install = execSync(`yarn add ${pkg}`, {
|
||||
cwd: tmpProjPath(),
|
||||
...{ stdio: ['ignore', 'ignore', 'ignore'] },
|
||||
// ...{ stdio: ['pipe', 'pipe', 'pipe'] },
|
||||
...{ stdio: [0, 1, 2] },
|
||||
env: process.env,
|
||||
});
|
||||
return install ? install.toString() : '';
|
||||
}
|
||||
|
||||
export const getDirectories = (source) =>
|
||||
readdirSync(source, { withFileTypes: true })
|
||||
.filter((dirent) => dirent.isDirectory())
|
||||
.map((dirent) => dirent.name);
|
||||
|
||||
export function runNgNew(): string {
|
||||
return execSync(`../../node_modules/.bin/ng new proj --no-interactive`, {
|
||||
cwd: `./tmp/${cli}`,
|
||||
@ -120,6 +116,7 @@ export function runNgNew(): string {
|
||||
* for the currently selected CLI.
|
||||
*/
|
||||
export function newProject(): void {
|
||||
try {
|
||||
cleanup();
|
||||
if (!directoryExists(tmpBackupProjPath())) {
|
||||
runCreateWorkspace('proj', { preset: 'empty' });
|
||||
@ -135,13 +132,20 @@ export function newProject(): void {
|
||||
];
|
||||
yarnAdd(packages.join(` `));
|
||||
packages
|
||||
.filter((f) => f !== '@nrwl/nx-plugin' && f !== `@nrwl/eslint-plugin-nx`)
|
||||
.filter(
|
||||
(f) => f !== '@nrwl/nx-plugin' && f !== `@nrwl/eslint-plugin-nx`
|
||||
)
|
||||
.forEach((p) => {
|
||||
runCLI(`g ${p}:init`);
|
||||
});
|
||||
execSync(`mv ${tmpProjPath()} ${tmpBackupProjPath()}`);
|
||||
}
|
||||
execSync(`cp -a ${tmpBackupProjPath()} ${tmpProjPath()}`);
|
||||
} catch (e) {
|
||||
console.log(`Failed to set up project for e2e tests.`);
|
||||
console.log(e.message);
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
9
e2e/web/jest.config.js
Normal file
9
e2e/web/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'web',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -7,9 +7,7 @@ import {
|
||||
runCLIAsync,
|
||||
uniq,
|
||||
updateFile,
|
||||
tmpProjPath,
|
||||
} from './utils';
|
||||
import { writeFileSync } from 'fs';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli((currentCLIName) => {
|
||||
describe('Web Components Applications', () => {
|
||||
7
e2e/web/tsconfig.json
Normal file
7
e2e/web/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/web/tsconfig.spec.json
Normal file
15
e2e/web/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
9
e2e/workspace/jest.config.js
Normal file
9
e2e/workspace/jest.config.js
Normal file
@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
name: 'workspace',
|
||||
preset: '../../jest.config.js',
|
||||
transform: {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
maxWorkers: 1,
|
||||
};
|
||||
@ -1,4 +1,4 @@
|
||||
import { forEachCli, runCreateWorkspace, uniq } from './utils';
|
||||
import { forEachCli, runCreateWorkspace, uniq } from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli(() => {
|
||||
describe('create-nx-workspace', () => {
|
||||
@ -8,7 +8,7 @@ import {
|
||||
runCLIAsync,
|
||||
uniq,
|
||||
updateFile,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli('nx', () => {
|
||||
describe('custom workspace layout', () => {
|
||||
@ -15,7 +15,7 @@ import {
|
||||
uniq,
|
||||
updateFile,
|
||||
workspaceConfigName,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
forEachCli((cli) => {
|
||||
describe('lint', () => {
|
||||
@ -12,7 +12,7 @@ import {
|
||||
uniq,
|
||||
updateFile,
|
||||
workspaceConfigName,
|
||||
} from './utils';
|
||||
} from '@nrwl/e2e/utils';
|
||||
|
||||
let originalCIValue: any;
|
||||
|
||||
@ -32,7 +32,7 @@ forEachCli((cliName) => {
|
||||
});
|
||||
|
||||
describe('run-one', () => {
|
||||
it('should build specific project', () => {
|
||||
fit('should build specific project', () => {
|
||||
ensureProject();
|
||||
const myapp = uniq('myapp');
|
||||
const mylib1 = uniq('mylib1');
|
||||
7
e2e/workspace/tsconfig.json
Normal file
7
e2e/workspace/tsconfig.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"types": ["node", "jest"]
|
||||
},
|
||||
"include": ["**/*.ts"]
|
||||
}
|
||||
15
e2e/workspace/tsconfig.spec.json
Normal file
15
e2e/workspace/tsconfig.spec.json
Normal file
@ -0,0 +1,15 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../dist/out-tsc",
|
||||
"module": "commonjs",
|
||||
"types": ["jest", "node"]
|
||||
},
|
||||
"include": [
|
||||
"**/*.spec.ts",
|
||||
"**/*.spec.tsx",
|
||||
"**/*.spec.js",
|
||||
"**/*.spec.jsx",
|
||||
"**/*.d.ts"
|
||||
]
|
||||
}
|
||||
109
nx.json
109
nx.json
@ -12,9 +12,13 @@
|
||||
},
|
||||
"tasksRunnerOptions": {
|
||||
"default": {
|
||||
"runner": "@nrwl/workspace/tasks-runners/default",
|
||||
"runner": "@nrwl/nx-cloud",
|
||||
"options": {
|
||||
"cacheableOperations": ["build", "lint", "test", "e2e"]
|
||||
"accessToken": "OTM4MGQ1NDctZGRjMy00ZDlmLThkYzQtOTU3MDhkNWZhZjcwfHJlYWQ=",
|
||||
"cacheableOperations": ["build", "test", "lint", "e2e"],
|
||||
"canTrackAnalytics": false,
|
||||
"showUsageWarnings": true,
|
||||
"runtimeCacheInputs": ["echo $SELECTED_CLI"]
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -26,61 +30,130 @@
|
||||
"tags": []
|
||||
},
|
||||
"workspace": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["tao", "cli"]
|
||||
},
|
||||
"web": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["cypress"]
|
||||
"implicitDependencies": ["cypress", "workspace", "jest"]
|
||||
},
|
||||
"cypress": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace"]
|
||||
},
|
||||
"jest": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace"]
|
||||
},
|
||||
"react": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace", "cypress", "jest"]
|
||||
},
|
||||
"storybook": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["cypress"]
|
||||
"implicitDependencies": ["cypress", "workspace"]
|
||||
},
|
||||
"nx-plugin": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace"]
|
||||
},
|
||||
"node": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace", "jest"]
|
||||
},
|
||||
"next": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["cypress"]
|
||||
"implicitDependencies": ["react"]
|
||||
},
|
||||
"nest": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["node"]
|
||||
},
|
||||
"linter": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace"]
|
||||
},
|
||||
"express": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["node"]
|
||||
},
|
||||
"eslint-plugin-nx": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace"]
|
||||
},
|
||||
"create-nx-workspace": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace"]
|
||||
},
|
||||
"create-nx-plugin": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["nx-plugin"]
|
||||
},
|
||||
"cli": {
|
||||
"tags": []
|
||||
},
|
||||
"bazel": {
|
||||
"tags": []
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace"]
|
||||
},
|
||||
"angular": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace", "cypress", "jest"]
|
||||
},
|
||||
"e2e-utils": {
|
||||
"tags": []
|
||||
},
|
||||
"e2e-cli": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["cli"]
|
||||
},
|
||||
"e2e-angular": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["angular"]
|
||||
},
|
||||
"e2e-bazel": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["bazel"]
|
||||
},
|
||||
"e2e-cypress": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["cypress"]
|
||||
},
|
||||
"e2e-jest": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["jest"]
|
||||
},
|
||||
"e2e-linter": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["linter"]
|
||||
},
|
||||
"e2e-next": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["next"]
|
||||
},
|
||||
"e2e-node": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["node"]
|
||||
},
|
||||
"e2e-nx-plugin": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["nx-plugin", "create-nx-plugin"]
|
||||
},
|
||||
"e2e-react": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["react"]
|
||||
},
|
||||
"e2e-storybook": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["storybook"]
|
||||
},
|
||||
"e2e-web": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["web"]
|
||||
},
|
||||
"e2e-workspace": {
|
||||
"tags": [],
|
||||
"implicitDependencies": ["workspace", "create-nx-workspace"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
34
package.json
34
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@nrwl/nx-source",
|
||||
"version": "9.4.0-beta.4",
|
||||
"version": "9.4.0-beta.8",
|
||||
"description": "Extensible Dev Tools for Monorepos",
|
||||
"homepage": "https://nx.dev",
|
||||
"main": "index.js",
|
||||
@ -10,13 +10,7 @@
|
||||
"commit": "git-cz",
|
||||
"checkcommit": "node ./scripts/commit-lint.js",
|
||||
"e2e": "./scripts/e2e.sh",
|
||||
"create-playground": "./scripts/create-playground.sh",
|
||||
"update-playground": "./scripts/update-playground.sh",
|
||||
"e2e-ci1": "./scripts/e2e-ci1.sh",
|
||||
"e2e-ci2": "./scripts/e2e-ci2.sh",
|
||||
"e2e-ci3": "./scripts/e2e-ci3.sh",
|
||||
"e2e-ci4": "./scripts/e2e-ci4.sh",
|
||||
"test-create-nx-workspace": "./scripts/test-create-nx-workspace.sh",
|
||||
"e2e-ci": "./scripts/e2e-ci.sh",
|
||||
"format": "./scripts/format.sh",
|
||||
"nx-release": "./scripts/nx-release.js",
|
||||
"test": "nx run-many --target=test --all --parallel",
|
||||
@ -47,12 +41,12 @@
|
||||
"@angular/service-worker": "^9.1.0",
|
||||
"@angular/upgrade": "^9.1.0",
|
||||
"@babel/core": "7.9.6",
|
||||
"@babel/preset-env": "7.9.6",
|
||||
"@babel/plugin-proposal-class-properties": "7.8.3",
|
||||
"@babel/plugin-proposal-decorators": "7.8.3",
|
||||
"@babel/plugin-transform-regenerator": "7.8.7",
|
||||
"@babel/preset-typescript": "7.9.0",
|
||||
"@babel/preset-env": "7.9.6",
|
||||
"@babel/preset-react": "7.9.4",
|
||||
"@babel/preset-typescript": "7.9.0",
|
||||
"@bazel/bazel": "^1.2.0",
|
||||
"@bazel/ibazel": "^0.10.3",
|
||||
"@cypress/webpack-preprocessor": "^4.1.2",
|
||||
@ -68,6 +62,10 @@
|
||||
"@ngrx/store": "9.1.0",
|
||||
"@ngrx/store-devtools": "9.1.0",
|
||||
"@ngtools/webpack": "~9.1.0",
|
||||
"@nrwl/eslint-plugin-nx": "9.4.0-beta.5",
|
||||
"@nrwl/jest": "9.4.0-beta.5",
|
||||
"@nrwl/node": "9.4.0-beta.5",
|
||||
"@nrwl/workspace": "9.4.0-beta.5",
|
||||
"@reduxjs/toolkit": "1.3.2",
|
||||
"@rollup/plugin-babel": "5.0.2",
|
||||
"@rollup/plugin-commonjs": "11.0.2",
|
||||
@ -109,10 +107,10 @@
|
||||
"axios": "^0.19.0",
|
||||
"babel-loader": "8.1.0",
|
||||
"babel-plugin-const-enum": "^1.0.1",
|
||||
"babel-plugin-macros": "^2.8.0",
|
||||
"babel-plugin-transform-async-to-promises": "^0.8.15",
|
||||
"babel-plugin-emotion": "^10.0.29",
|
||||
"babel-plugin-macros": "^2.8.0",
|
||||
"babel-plugin-styled-components": "^1.10.7",
|
||||
"babel-plugin-transform-async-to-promises": "^0.8.15",
|
||||
"browserslist": "4.8.7",
|
||||
"cacache": "12.0.2",
|
||||
"caniuse-lite": "^1.0.30001030",
|
||||
@ -219,6 +217,7 @@
|
||||
"terser-webpack-plugin": "2.3.1",
|
||||
"tmp": "0.0.33",
|
||||
"tree-kill": "1.2.2",
|
||||
"ts-jest": "25.2.1",
|
||||
"ts-loader": "^5.3.1",
|
||||
"ts-node": "^8.0.2",
|
||||
"tsconfig-paths-webpack-plugin": "^3.2.0",
|
||||
@ -238,12 +237,7 @@
|
||||
"worker-plugin": "3.2.0",
|
||||
"yargs": "^11.0.0",
|
||||
"yargs-parser": "10.0.0",
|
||||
"zone.js": "^0.10.0",
|
||||
"@nrwl/workspace": "9.4.0-beta.5",
|
||||
"@nrwl/node": "9.4.0-beta.5",
|
||||
"@nrwl/eslint-plugin-nx": "9.4.0-beta.5",
|
||||
"@nrwl/jest": "9.4.0-beta.5",
|
||||
"ts-jest": "25.2.1"
|
||||
"zone.js": "^0.10.0"
|
||||
},
|
||||
"author": "Victor Savkin",
|
||||
"license": "MIT",
|
||||
@ -257,5 +251,7 @@
|
||||
"pre-push": "yarn checkcommit && yarn documentation && pretty-quick --check"
|
||||
}
|
||||
},
|
||||
"dependencies": {}
|
||||
"dependencies": {
|
||||
"@nrwl/nx-cloud": "^9.3.2"
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -9,8 +9,8 @@ import { parseRunOneOptions } from './parse-run-one-options';
|
||||
* @param workspace Relevant local workspace properties
|
||||
*/
|
||||
export function initLocal(workspace: Workspace) {
|
||||
const supportedNxCommands = require('@nrwl/workspace/src/command-line/supported-nx-commands')
|
||||
.supportedNxCommands;
|
||||
const supportedNxCommands = require('@nrwl/workspace/' +
|
||||
'src/command-line/supported-nx-commands').supportedNxCommands;
|
||||
const runOpts = runOneOptions(workspace);
|
||||
|
||||
if (supportedNxCommands.includes(process.argv[2])) {
|
||||
@ -26,12 +26,13 @@ export function initLocal(workspace: Workspace) {
|
||||
'compat.js'
|
||||
));
|
||||
}
|
||||
require('@nrwl/workspace/src/command-line/nx-commands').commandsObject.argv;
|
||||
require('@nrwl/workspace' + '/src/command-line/nx-commands').commandsObject
|
||||
.argv;
|
||||
} else {
|
||||
if (runOpts === false || process.env.NX_SKIP_TASKS_RUNNER) {
|
||||
loadCli(workspace);
|
||||
} else {
|
||||
require('@nrwl/workspace/src/command-line/run-one').runOne(runOpts);
|
||||
require('@nrwl/workspace' + '/src/command-line/run-one').runOne(runOpts);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -5,5 +5,4 @@ module.exports = {
|
||||
'^.+\\.[tj]sx?$': 'ts-jest',
|
||||
},
|
||||
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'html'],
|
||||
coverageDirectory: '../../coverage/packages/tao',
|
||||
};
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import { fileExists } from './fileutils';
|
||||
import * as path from 'path';
|
||||
|
||||
// TODO: vsavkin normalize the path
|
||||
export const appRootPath = pathInner(__dirname);
|
||||
|
||||
function pathInner(dir: string): string {
|
||||
@ -10,7 +9,12 @@ function pathInner(dir: string): string {
|
||||
fileExists(path.join(dir, 'workspace.json')) ||
|
||||
fileExists(path.join(dir, 'angular.json'))
|
||||
) {
|
||||
// unit test
|
||||
if (process.argv[1].indexOf('jest-worker') > -1) {
|
||||
return `${dir}/tmp/unit`;
|
||||
} else {
|
||||
return dir;
|
||||
}
|
||||
} else {
|
||||
return pathInner(path.dirname(dir));
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ import { Tree } from '@angular-devkit/schematics';
|
||||
import * as prettier from 'prettier';
|
||||
import * as path from 'path';
|
||||
import { formatFiles } from './format-files';
|
||||
import * as appRoot from 'app-root-path';
|
||||
import { appRootPath } from '../app-root';
|
||||
|
||||
describe('formatFiles', () => {
|
||||
let tree: Tree;
|
||||
@ -30,7 +30,7 @@ describe('formatFiles', () => {
|
||||
.toPromise();
|
||||
expect(prettier.format).toHaveBeenCalledWith('const a=a', {
|
||||
printWidth: 80,
|
||||
filepath: appRoot.resolve('a.ts'),
|
||||
filepath: `${appRootPath}/a.ts`,
|
||||
});
|
||||
expect(result.read('a.ts').toString()).toEqual('formatted :: const a=a');
|
||||
});
|
||||
@ -58,7 +58,7 @@ describe('formatFiles', () => {
|
||||
.callRule(formatFiles(), tree)
|
||||
.toPromise();
|
||||
expect(prettier.format).toHaveBeenCalledWith('const a=b', {
|
||||
filepath: appRoot.resolve('a.ts'),
|
||||
filepath: `${appRootPath}/a.ts`,
|
||||
});
|
||||
expect(result.read('a.ts').toString()).toEqual('formatted :: const a=b');
|
||||
});
|
||||
@ -71,7 +71,7 @@ describe('formatFiles', () => {
|
||||
.callRule(formatFiles(), tree)
|
||||
.toPromise();
|
||||
expect(prettier.format).toHaveBeenCalledWith('const a=a', {
|
||||
filepath: appRoot.resolve('b.ts'),
|
||||
filepath: `${appRootPath}/b.ts`,
|
||||
});
|
||||
expect(result.read('b.ts').toString()).toEqual('formatted :: const a=a');
|
||||
});
|
||||
@ -94,7 +94,7 @@ describe('formatFiles', () => {
|
||||
.toPromise();
|
||||
expect(prettier.format).not.toHaveBeenCalledWith('const a=a', {
|
||||
printWidth: 80,
|
||||
filepath: appRoot.resolve('a.ts'),
|
||||
filepath: `${appRootPath}/a.ts`,
|
||||
});
|
||||
expect(result.read('a.ts').toString()).toEqual('const a=a');
|
||||
});
|
||||
|
||||
@ -1,10 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
rm -rf build
|
||||
nx run-many --target=build --all --parallel
|
||||
|
||||
echo "Compiling e2e tests"
|
||||
rm -rf build/e2e
|
||||
./node_modules/.bin/tsc -p e2e/tsconfig.e2e.json
|
||||
cp -rf build/e2e-out/e2e build/e2e
|
||||
cp e2e/local-registry/config.yml build/e2e/local-registry/config.yaml
|
||||
cp e2e/local-registry/htpasswd build/e2e/local-registry/htpasswd
|
||||
|
||||
33
scripts/e2e-ci.sh
Executable file
33
scripts/e2e-ci.sh
Executable file
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
if [ "$1" == "1" ]; then
|
||||
export SELECTED_CLI=angular
|
||||
ts-node --project scripts/tsconfig.e2e.json ./scripts/e2e.ts e2e-workspace,e2e-cli affected
|
||||
|
||||
elif [ "$1" == "2" ]; then
|
||||
export SELECTED_CLI=nx
|
||||
ts-node --project scripts/tsconfig.e2e.json ./scripts/e2e.ts e2e-workspace,e2e-cli affected
|
||||
|
||||
elif [ "$1" == "3" ]; then
|
||||
export SELECTED_CLI=angular
|
||||
ts-node --project scripts/tsconfig.e2e.json ./scripts/e2e.ts e2e-angular,e2e-bazel affected
|
||||
|
||||
elif [ "$1" == "4" ]; then
|
||||
export SELECTED_CLI=nx
|
||||
ts-node --project scripts/tsconfig.e2e.json ./scripts/e2e.ts e2e-cypress,e2e-jest,e2e-nx-plugin affected
|
||||
|
||||
elif [ "$1" == "5" ]; then
|
||||
export SELECTED_CLI=nx
|
||||
ts-node --project scripts/tsconfig.e2e.json ./scripts/e2e.ts e2e-react affected
|
||||
|
||||
elif [ "$1" == "6" ]; then
|
||||
export SELECTED_CLI=nx
|
||||
ts-node --project scripts/tsconfig.e2e.json ./scripts/e2e.ts e2e-next affected
|
||||
|
||||
elif [ "$1" == "7" ]; then
|
||||
export SELECTED_CLI=nx
|
||||
ts-node --project scripts/tsconfig.e2e.json ./scripts/e2e.ts e2e-node affected
|
||||
|
||||
elif [ "$1" == "8" ]; then
|
||||
export SELECTED_CLI=nx
|
||||
ts-node --project scripts/tsconfig.e2e.json ./scripts/e2e.ts e2e-web,e2e-linter,e2e-storybook affected
|
||||
fi
|
||||
@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
./scripts/package.sh 9999.0.1 "~9.1.0" "3.8.3" "2.0.4"
|
||||
|
||||
rm -rf tmp
|
||||
mkdir -p tmp/angular
|
||||
mkdir -p tmp/nx
|
||||
|
||||
export SELECTED_CLI=$1
|
||||
PUBLISHED_VERSION=9999.0.1 npm_config_registry=http://localhost:4872/ jest -c "./build/e2e/jest-config.js" --maxWorkers=1 "./build/e2e/(angular|cli|jest|karma|next|nx-plugin).test.js"
|
||||
@ -1,9 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
./scripts/package.sh 9999.0.1 "~9.1.0" "3.8.3" "2.0.4"
|
||||
|
||||
rm -rf tmp
|
||||
mkdir -p tmp/angular
|
||||
mkdir -p tmp/nx
|
||||
|
||||
export SELECTED_CLI=$1
|
||||
PUBLISHED_VERSION=9999.0.1 npm_config_registry=http://localhost:4872/ jest -c "./build/e2e/jest-config.js" --maxWorkers=1 "./build/e2e/(downgrade-module|cypress|custom-layout|workspace|workspace-aux-commands).test.js"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user