Skip to content

Commit 7d69602

Browse files
committed
chore: add unit tests
1 parent 12db285 commit 7d69602

File tree

2 files changed

+93
-0
lines changed

2 files changed

+93
-0
lines changed

test/options.ts

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,98 @@ describe("options", () => {
261261

262262
});
263263
});
264+
265+
describe("setupOptions", () => {
266+
const testsWithNoHmrByDefault = [
267+
{
268+
name: "no nsconfig.json ",
269+
isHmrEnabledByDefault: false,
270+
args: [],
271+
expectedHmr: false,
272+
expectedBundle: false
273+
},
274+
{
275+
name: "no nsconfig.json and --hmr is provided",
276+
isHmrEnabledByDefault: false,
277+
args: ["--hmr"],
278+
expectedHmr: true,
279+
expectedBundle: true
280+
},
281+
{
282+
name: "no nsconfig.json and --no-hmr is provided",
283+
isHmrEnabledByDefault: false,
284+
args: ["--no-hmr"],
285+
expectedHmr: false,
286+
expectedBundle: false
287+
},
288+
{
289+
name: "no nsconfig.json and --release is provided",
290+
isHmrEnabledByDefault: false,
291+
args: ["--release"],
292+
expectedHmr: false,
293+
expectedBundle: false
294+
},
295+
{
296+
name: "no nsconfig.json and --bundle is provided",
297+
isHmrEnabledByDefault: false,
298+
args: ["--bundle"],
299+
expectedHmr: false,
300+
expectedBundle: true
301+
}
302+
];
303+
const testsWithHmrByDefault = <any>[
304+
{
305+
name: "has nsconfig.json",
306+
isHmrEnabledByDefault: true,
307+
expectedHmr: true,
308+
expectedBundle: true
309+
},
310+
{
311+
name: "has nsconfig.json and --hmr is provided",
312+
isHmrEnabledByDefault: true,
313+
args: ["--hmr"],
314+
expectedHmr: true,
315+
expectedBundle: true
316+
},
317+
{
318+
name: "has nsconfig.json and --no-hmr is provided",
319+
isHmrEnabledByDefault: true,
320+
args: ["--no-hmr"],
321+
expectedHmr: false,
322+
expectedBundle: false
323+
},
324+
{
325+
name: "has nsconfig.json and --release is provided",
326+
isHmrEnabledByDefault: true,
327+
args: ["--release"],
328+
expectedHmr: false,
329+
expectedBundle: true
330+
},
331+
{
332+
name: "has nsconfig.json and --bundle is provided",
333+
isHmrEnabledByDefault: true,
334+
args: ["--bundle"],
335+
expectedHmr: true,
336+
expectedBundle: true
337+
}
338+
];
339+
const testCases = testsWithNoHmrByDefault.concat(testsWithHmrByDefault);
340+
341+
_.each(testCases, testCase => {
342+
it(`should pass correctly when ${testCase.name}`, () => {
343+
(testCase.args || []).forEach(arg => process.argv.push(arg));
344+
345+
const options = createOptions(testInjector);
346+
const projectData = <IProjectData>{ isHmrEnabledByDefault: testCase.isHmrEnabledByDefault };
347+
options.setupOptions(projectData);
348+
349+
(testCase.args || []).forEach(arg => process.argv.pop());
350+
351+
assert.equal(!!options.argv.hmr, !!testCase.expectedHmr);
352+
assert.equal(!!options.argv.bundle, !!testCase.expectedBundle);
353+
});
354+
});
355+
});
264356
});
265357

266358
function createOptionsWithProfileDir(defaultProfileDir?: string): IOptions {

test/stubs.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,7 @@ export class ProjectDataStub implements IProjectData {
331331
public buildXcconfigPath: string;
332332
public podfilePath: string;
333333
public isShared: boolean;
334+
public isHmrEnabledByDefault: boolean;
334335

335336
public initializeProjectData(projectDir?: string): void {
336337
this.projectDir = this.projectDir || projectDir;

0 commit comments

Comments
 (0)