Skip to content

Commit 3abb561

Browse files
authored
Merge pull request #10 from ember-cli/optional-ember-data
make ember-data an optional argument
2 parents e8ecd08 + 72bdafe commit 3abb561

File tree

2 files changed

+57
-17
lines changed

2 files changed

+57
-17
lines changed

index.js

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,8 @@ Examples:
2525
.description(
2626
'This script updates the dependencies / devDependencies in package.json files and is tolerant of EJS templates',
2727
)
28-
.requiredOption(
29-
'--ember-source <dist-tag>',
30-
'The dist-tag to use for ember-source',
31-
)
32-
.requiredOption(
33-
'--ember-data <dist-tag>',
34-
'The dist-tag to use for ember-data',
35-
)
28+
.option('--ember-source <dist-tag>', 'The dist-tag to use for ember-source')
29+
.option('--ember-data <dist-tag>', 'The dist-tag to use for ember-data')
3630
.option('--ember-cli <dist-tag>', 'The dist-tag to use for ember-cli')
3731
.addOption(
3832
new Option(
@@ -52,6 +46,13 @@ export default async function main(argv) {
5246

5347
const OPTIONS = program.opts();
5448

49+
if (!OPTIONS.filter && !OPTIONS.emberSource) {
50+
console.error(
51+
`You must pass '--ember-source' or '--filter' arguments to this command. Try running again with '--help' for more information`,
52+
);
53+
process.exit(1);
54+
}
55+
5556
if (OPTIONS.latest) {
5657
console.error(`use argument '--tag latest' instead of passing '--latest'`);
5758
process.exit(1);

tests/basic.test.js

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ import { readFile } from 'node:fs/promises';
44
import semver from 'semver';
55
import { Project } from 'fixturify-project';
66

7+
const mockConsoleError = vi.spyOn(console, 'error');
8+
const mockExit = vi.spyOn(process, 'exit').mockImplementation((exitCode) => {
9+
throw new Error(`process exit: ${exitCode}`);
10+
});
11+
712
let project;
813

914
import main from '../index.js';
@@ -101,15 +106,12 @@ describe('Basic test', () => {
101106
project.addDependency('mocha', '^5.1.0');
102107
project.addDependency('@ember-data/thingy', '~5.3.8');
103108
project.addDependency('@ember-data/store', '~5.1.0');
109+
project.addDependency('ember-source', '~1.1.0');
104110
await project.write();
105111

106112
await main([
107113
'fake',
108114
'fake',
109-
'--ember-source',
110-
'latest',
111-
'--ember-data',
112-
'latest',
113115
'--tag',
114116
'latest',
115117
'--filter',
@@ -129,7 +131,8 @@ describe('Basic test', () => {
129131
"dependencies": {
130132
"mocha": "^5.1.0",
131133
"@ember-data/thingy": "~7.7.7",
132-
"@ember-data/store": "~7.7.7"
134+
"@ember-data/store": "~7.7.7",
135+
"ember-source": "~1.1.0"
133136
},
134137
"devDependencies": {}
135138
}
@@ -148,10 +151,6 @@ describe('Basic test', () => {
148151
await main([
149152
'fake',
150153
'fake',
151-
'--ember-source',
152-
'latest',
153-
'--ember-data',
154-
'latest',
155154
'--tag',
156155
'beta',
157156
'--filter',
@@ -178,4 +177,44 @@ describe('Basic test', () => {
178177
"
179178
`);
180179
});
180+
181+
it('throws an error if you dont pass --filter or --ember-source', async () => {
182+
project = new Project('test-project');
183+
184+
project.addDependency('mocha', '^5.1.0');
185+
project.addDependency('@ember-data/thingy', '~5.3.8');
186+
project.addDependency('@ember-data/store', '~5.1.0');
187+
await project.write();
188+
189+
await expect(
190+
main(['fake', 'fake', join(project.baseDir, 'package.json')]),
191+
).rejects.toThrowError();
192+
193+
expect(mockExit).to.be.toBeCalledWith(1);
194+
expect(mockConsoleError.mock.lastCall).toMatchInlineSnapshot(`
195+
[
196+
"You must pass '--ember-source' or '--filter' arguments to this command. Try running again with '--help' for more information",
197+
]
198+
`);
199+
200+
// make sure that nothing in the package.json changed
201+
const contents = await readFile(
202+
join(project.baseDir, 'package.json'),
203+
'utf8',
204+
);
205+
expect(contents).toMatchInlineSnapshot(`
206+
"{
207+
"name": "test-project",
208+
"version": "0.0.0",
209+
"keywords": [],
210+
"dependencies": {
211+
"mocha": "^5.1.0",
212+
"@ember-data/thingy": "~5.3.8",
213+
"@ember-data/store": "~5.1.0"
214+
},
215+
"devDependencies": {}
216+
}
217+
"
218+
`);
219+
});
181220
});

0 commit comments

Comments
 (0)