Skip to content

Commit

Permalink
feat: throw if using workspaces with disallowed options
Browse files Browse the repository at this point in the history
  • Loading branch information
lili2311 committed Jun 29, 2020
1 parent d942b3c commit 1168d09
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
30 changes: 30 additions & 0 deletions src/cli/index.ts
Expand Up @@ -241,24 +241,54 @@ async function main() {
'all-projects',
]);
}

if (args.options['project-name'] && args.options.yarnWorkspaces) {
throw new UnsupportedOptionCombinationError([
'project-name',
'yarn-workspaces',
]);
}

if (args.options.file && args.options.yarnWorkspaces) {
throw new UnsupportedOptionCombinationError(['file', 'all-projects']);
}

if (args.options.file && args.options.allProjects) {
throw new UnsupportedOptionCombinationError(['file', 'all-projects']);
}

if (args.options.yarnWorkspaces && args.options.allProjects) {
throw new UnsupportedOptionCombinationError([
'yarn-workspaces',
'all-projects',
]);
}

if (args.options.packageManager && args.options.yarnWorkspaces) {
throw new UnsupportedOptionCombinationError([
'package-manager',
'yarn-workspaces',
]);
}

if (args.options.packageManager && args.options.allProjects) {
throw new UnsupportedOptionCombinationError([
'package-manager',
'all-projects',
]);
}

if (args.options.docker && args.options.allProjects) {
throw new UnsupportedOptionCombinationError(['docker', 'all-projects']);
}

if (args.options.allSubProjects && args.options.yarnWorkspaces) {
throw new UnsupportedOptionCombinationError([
'all-sub-projects',
'yarn-workspaces',
]);
}

if (args.options.allSubProjects && args.options.allProjects) {
throw new UnsupportedOptionCombinationError([
'all-sub-projects',
Expand Down
34 changes: 34 additions & 0 deletions test/acceptance/cli-args.test.ts
Expand Up @@ -114,6 +114,40 @@ test('`test --file=blah --scan-all-unmanaged`', (t) => {
});
});

const argsNotAllowedWithYarnWorkspaces = [
'file',
'package-manager',
'project-name',
'docker',
'all-sub-projects',
'all-projects',
];

argsNotAllowedWithYarnWorkspaces.forEach((arg) => {
test(`using --${arg} and --yarn-workspaces displays error message`, (t) => {
t.plan(2);
exec(`node ${main} test --${arg} --yarn-workspaces`, (err, stdout) => {
if (err) {
throw err;
}
t.match(
stdout.trim(),
`The following option combination is not currently supported: ${arg} + all-projects`,
'when using test',
);
});
exec(`node ${main} monitor --${arg} --yarn-workspaces`, (err, stdout) => {
if (err) {
throw err;
}
t.match(
stdout.trim(),
`The following option combination is not currently supported: ${arg} + all-projects`,
'when using monitor',
);
});
});
});
const argsNotAllowedWithAllProjects = [
'file',
'package-manager',
Expand Down

0 comments on commit 1168d09

Please sign in to comment.