@ni-kismet/sl-webapp-nipkg 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,9 +1,8 @@
1
1
  # SL WebApp NIPKG
2
2
 
3
- [![npm version](https://badge.fury.io/js/sl-webapp-nipkg.svg)](https://badge.fury.io/js/sl-webapp-nipkg)
3
+ [![JFrog Registry](https://img.shields.io/badge/registry-JFrog-green)](https://pull.artifacts.ni.com/ui/repos/tree/General/npm-remote-cache/.npm/@ni-kismet/sl-webapp-nipkg)
4
4
  [![Tests](https://github.com/ni/sl-webapp-nipkg/actions/workflows/ci.yml/badge.svg)](https://github.com/ni/sl-webapp-nipkg/actions)
5
- ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/ni/sl-webapp-nipkg?style=flat-square)
6
- [![license](https://img.shields.io/github/license/ni/sl-webapp-nipkg.svg)](LICENSE)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
6
 
8
7
  A flexible tool for packaging web applications into SystemLink WebApp `.nipkg` format for National Instruments Package Manager. Works with any web application framework including Node.js (React, Angular, Vue), Python (Pyodide), .NET (Blazor), and static HTML sites.
9
8
 
@@ -336,7 +335,7 @@ The `--build-suffix` option allows you to create unique package names for PR/bra
336
335
 
337
336
  **Output examples:**
338
337
 
339
- - PR builds: `my-app_1.0.0_12345_all.nipkg` (includes build ID)
338
+ - PR builds: `my-app_1.0.0.12345_all.nipkg` (includes build ID)
340
339
  - Main/production: `my-app_1.0.0_all.nipkg` (standard naming)
341
340
 
342
341
  ### GitHub Actions
@@ -434,7 +433,6 @@ your-webapp-project/
434
433
  ## Requirements
435
434
 
436
435
  - Node.js 16+
437
- - National Instruments Package Manager (nipkg)
438
436
 
439
437
  ## Development
440
438
 
@@ -447,19 +445,6 @@ npm install
447
445
  npm run build
448
446
  ```
449
447
 
450
- ### Running Tests
451
-
452
- ```bash
453
- # Run all tests
454
- npm test
455
-
456
- # Run tests with coverage
457
- npm run test:coverage
458
-
459
- # Run tests in watch mode
460
- npm run test:watch
461
- ```
462
-
463
448
  ### Local Development
464
449
 
465
450
  ```bash
@@ -497,11 +482,9 @@ sl-webapp-nipkg --help
497
482
  1. Fork the repository
498
483
  2. Create a feature branch: `git checkout -b feature/amazing-feature`
499
484
  3. Make your changes
500
- 4. Add tests for your changes
501
- 5. Ensure tests pass: `npm test`
502
- 6. Commit your changes: `git commit -m 'Add amazing feature'`
503
- 7. Push to the branch: `git push origin feature/amazing-feature`
504
- 8. Submit a pull request
485
+ 4. Commit your changes: `git commit -m 'Add amazing feature'`
486
+ 5. Push to the branch: `git push origin feature/amazing-feature`
487
+ 6. Submit a pull request
505
488
 
506
489
  ## License
507
490
 
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMvD,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB;IAM3D;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBnC;;OAEG;IACH,OAAO,CAAC,OAAO;IA4Bf;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,OAAO,CAAC,UAAU;IA2BlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;OAEG;YACW,sBAAsB;IAwCpC;;OAEG;YACW,kBAAkB;CAkEnC"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAMvD,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB;IAM3D;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BnC;;OAEG;IACH,OAAO,CAAC,OAAO;IA4Bf;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,OAAO,CAAC,UAAU;IA2BlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAerB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqCvB;;OAEG;YACW,sBAAsB;IAwCpC;;OAEG;YACW,kBAAkB;CAkEnC"}
package/dist/builder.js CHANGED
@@ -25,9 +25,11 @@ export class SystemLinkNipkgBuilder {
25
25
  // Run custom build command if requested
26
26
  this.runProjectBuild();
27
27
  // Set up output directory
28
- const outputDir = this.options.outputDir || this.config.outputDir || path.join(this.projectRoot, 'dist');
28
+ const outputDir = this.options.outputDir
29
+ || this.config.outputDir
30
+ || path.join(this.projectRoot, 'dist', 'nipkg');
29
31
  await fs.ensureDir(outputDir);
30
- const nipkgDir = path.join(outputDir, 'nipkg');
32
+ const nipkgDir = outputDir;
31
33
  await fs.ensureDir(nipkgDir);
32
34
  // Package the application
33
35
  await this.packageApplication(nipkgDir);
@@ -236,7 +238,7 @@ export class SystemLinkNipkgBuilder {
236
238
  architecture,
237
239
  ...(depends && { depends }),
238
240
  ...(this.config.displayName && { displayName: this.config.displayName }),
239
- ...(this.config.userVisible && { userVisible: String(this.config.userVisible) }),
241
+ ...(this.config.userVisible !== undefined && { userVisible: String(this.config.userVisible) }),
240
242
  };
241
243
  // Use Deboa to create the .deb file
242
244
  if (this.options.verbose) {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=builder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.test.d.ts","sourceRoot":"","sources":["../src/builder.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,388 @@
1
+ import { execSync } from 'child_process';
2
+ import path from 'path';
3
+ import fs from 'fs-extra';
4
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
5
+ // eslint-disable-next-line @typescript-eslint/naming-convention -- Class name constructor reference
6
+ let SystemLinkNipkgBuilderCtor;
7
+ const deboaState = {
8
+ lastOptions: undefined,
9
+ packageCalls: 0,
10
+ };
11
+ vi.mock('fs-extra', () => {
12
+ const fsMock = {
13
+ ensureDir: vi.fn(),
14
+ readJsonSync: vi.fn(),
15
+ existsSync: vi.fn(),
16
+ pathExists: vi.fn(),
17
+ remove: vi.fn(),
18
+ copy: vi.fn(),
19
+ readdir: vi.fn(),
20
+ rename: vi.fn(),
21
+ };
22
+ return { default: fsMock };
23
+ });
24
+ vi.mock('child_process', () => ({
25
+ execSync: vi.fn(),
26
+ }));
27
+ vi.mock('node:module', () => {
28
+ class Deboa {
29
+ constructor(options) {
30
+ deboaState.lastOptions = options;
31
+ }
32
+ async package() {
33
+ deboaState.packageCalls += 1;
34
+ await Promise.resolve();
35
+ }
36
+ }
37
+ return {
38
+ createRequire: () => (id) => {
39
+ if (id === 'deboa') {
40
+ // eslint-disable-next-line @typescript-eslint/naming-convention -- Match deboa named export case
41
+ return { Deboa };
42
+ }
43
+ throw new Error(`Unexpected require: ${id}`);
44
+ },
45
+ };
46
+ });
47
+ // Constants for commonly used test values
48
+ const TEST_OUTPUT_DIR = '/tmp/nipkg';
49
+ const TEST_BUILD_DIR = 'dist';
50
+ const TEST_TEMP_SOURCE_DIR = 'temp-source';
51
+ const TEST_APP_FILES_DIR = 'ApplicationFiles_64';
52
+ // Constants for default metadata values
53
+ const DEFAULT_MAINTAINER = 'Unknown <unknown@example.com>';
54
+ const DEFAULT_VERSION = '1.0.0';
55
+ const DEFAULT_ARCHITECTURE = 'all';
56
+ describe('SystemLinkNipkgBuilder', () => {
57
+ const fsMock = fs;
58
+ /**
59
+ * Creates a spy on the packageApplication method of a builder instance.
60
+ * This is the most common pattern in tests that need to mock the packaging step.
61
+ */
62
+ // eslint-disable-next-line @typescript-eslint/explicit-function-return-type -- Return type is complex MockInstance
63
+ function spyOnPackageApplication(builder) {
64
+ return vi
65
+ .spyOn(builder, 'packageApplication')
66
+ .mockResolvedValue(undefined);
67
+ }
68
+ /**
69
+ * Helper to access deboa control file options from the mock state.
70
+ */
71
+ function getDeboaControlFileOptions() {
72
+ if (!deboaState.lastOptions) {
73
+ throw new Error('deboaState.lastOptions is undefined');
74
+ }
75
+ return deboaState.lastOptions.controlFileOptions;
76
+ }
77
+ beforeEach(async () => {
78
+ vi.clearAllMocks();
79
+ fsMock.ensureDir.mockResolvedValue(undefined);
80
+ fsMock.readJsonSync.mockReturnValue({});
81
+ fsMock.pathExists.mockResolvedValue(false);
82
+ fsMock.remove.mockResolvedValue(undefined);
83
+ fsMock.copy.mockResolvedValue(undefined);
84
+ fsMock.readdir.mockResolvedValue([]);
85
+ fsMock.rename.mockResolvedValue(undefined);
86
+ fsMock.existsSync.mockReturnValue(true);
87
+ deboaState.lastOptions = undefined;
88
+ deboaState.packageCalls = 0;
89
+ ({ SystemLinkNipkgBuilder: SystemLinkNipkgBuilderCtor } = await import('./builder.js'));
90
+ });
91
+ describe('build()', () => {
92
+ describe('output directory handling', () => {
93
+ it('creates output directories and calls packaging', async () => {
94
+ const config = {};
95
+ const options = { outputDir: 'out' };
96
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
97
+ const packageSpy = spyOnPackageApplication(builder);
98
+ await builder.build();
99
+ expect(fsMock.ensureDir).toHaveBeenCalledWith('out');
100
+ expect(packageSpy).toHaveBeenCalledWith('out');
101
+ });
102
+ it('uses dist/nipkg when outputDir is not provided', async () => {
103
+ const config = {};
104
+ const options = {};
105
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
106
+ const packageSpy = spyOnPackageApplication(builder);
107
+ await builder.build();
108
+ const expectedOutput = path.join(process.cwd(), 'dist', 'nipkg');
109
+ expect(fsMock.ensureDir).toHaveBeenCalledWith(expectedOutput);
110
+ expect(packageSpy).toHaveBeenCalledWith(expectedOutput);
111
+ });
112
+ });
113
+ describe('build command execution', () => {
114
+ it('uses CLI build command override with verbose stdio', async () => {
115
+ const config = { buildCommand: 'npm run build' };
116
+ const options = { build: 'make build', verbose: true };
117
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
118
+ const packageSpy = spyOnPackageApplication(builder);
119
+ await builder.build();
120
+ expect(execSync).toHaveBeenCalledWith('make build', { stdio: 'inherit' });
121
+ expect(packageSpy).toHaveBeenCalled();
122
+ });
123
+ it('runs config build command when build=true', async () => {
124
+ const config = { buildCommand: 'npm run compile' };
125
+ const options = { build: true };
126
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
127
+ const packageSpy = spyOnPackageApplication(builder);
128
+ await builder.build();
129
+ expect(execSync).toHaveBeenCalledWith('npm run compile', { stdio: 'pipe' });
130
+ expect(packageSpy).toHaveBeenCalled();
131
+ });
132
+ it('skips build when build is false', async () => {
133
+ const config = { buildCommand: 'npm run compile' };
134
+ const options = { build: false };
135
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
136
+ const packageSpy = spyOnPackageApplication(builder);
137
+ await builder.build();
138
+ expect(execSync).not.toHaveBeenCalled();
139
+ expect(packageSpy).toHaveBeenCalled();
140
+ });
141
+ it('exits when build command fails', async () => {
142
+ const config = { buildCommand: 'npm run compile' };
143
+ const options = { build: true };
144
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
145
+ const exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
146
+ throw new Error('exit');
147
+ });
148
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
149
+ execSync.mockImplementation(() => {
150
+ throw new Error('boom');
151
+ });
152
+ await expect(builder.build()).rejects.toThrow('exit');
153
+ expect(exitSpy).toHaveBeenCalledWith(1);
154
+ exitSpy.mockRestore();
155
+ errorSpy.mockRestore();
156
+ });
157
+ });
158
+ describe('error handling', () => {
159
+ it('handles ensureDir failure gracefully', async () => {
160
+ const config = { buildDir: TEST_BUILD_DIR };
161
+ const options = { outputDir: TEST_OUTPUT_DIR };
162
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
163
+ const exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
164
+ throw new Error('exit');
165
+ });
166
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
167
+ fsMock.ensureDir.mockRejectedValue(new Error('Permission denied'));
168
+ await expect(builder.build()).rejects.toThrow('exit');
169
+ expect(exitSpy).toHaveBeenCalledWith(1);
170
+ expect(errorSpy).toHaveBeenCalled();
171
+ exitSpy.mockRestore();
172
+ errorSpy.mockRestore();
173
+ });
174
+ it('handles copy failure during packaging', async () => {
175
+ const config = { buildDir: TEST_BUILD_DIR };
176
+ const options = { outputDir: TEST_OUTPUT_DIR };
177
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
178
+ const exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
179
+ throw new Error('exit');
180
+ });
181
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
182
+ fsMock.copy.mockRejectedValue(new Error('Disk full'));
183
+ await expect(builder.build()).rejects.toThrow('exit');
184
+ expect(exitSpy).toHaveBeenCalledWith(1);
185
+ expect(errorSpy).toHaveBeenCalled();
186
+ exitSpy.mockRestore();
187
+ errorSpy.mockRestore();
188
+ });
189
+ it('handles readdir failure during cleanup', async () => {
190
+ const config = { buildDir: TEST_BUILD_DIR };
191
+ const options = {
192
+ name: 'test-app',
193
+ version: '1.0.0',
194
+ description: 'Test',
195
+ maintainer: 'Test <test@test.com>',
196
+ outputDir: TEST_OUTPUT_DIR,
197
+ };
198
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
199
+ const exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
200
+ throw new Error('exit');
201
+ });
202
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
203
+ fsMock.readdir.mockRejectedValue(new Error('Directory not accessible'));
204
+ await expect(builder.build()).rejects.toThrow('exit');
205
+ expect(exitSpy).toHaveBeenCalledWith(1);
206
+ expect(errorSpy).toHaveBeenCalled();
207
+ exitSpy.mockRestore();
208
+ errorSpy.mockRestore();
209
+ });
210
+ it('handles remove failure during cleanup', async () => {
211
+ const config = { buildDir: TEST_BUILD_DIR };
212
+ const options = {
213
+ name: 'test-app',
214
+ version: '1.0.0',
215
+ description: 'Test',
216
+ maintainer: 'Test <test@test.com>',
217
+ outputDir: TEST_OUTPUT_DIR,
218
+ };
219
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
220
+ const exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
221
+ throw new Error('exit');
222
+ });
223
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
224
+ fsMock.readdir.mockResolvedValue(['old.nipkg']);
225
+ fsMock.remove.mockRejectedValue(new Error('File in use'));
226
+ await expect(builder.build()).rejects.toThrow('exit');
227
+ expect(exitSpy).toHaveBeenCalledWith(1);
228
+ expect(errorSpy).toHaveBeenCalled();
229
+ exitSpy.mockRestore();
230
+ errorSpy.mockRestore();
231
+ });
232
+ it('handles rename failure after packaging', async () => {
233
+ const config = { buildDir: TEST_BUILD_DIR };
234
+ const options = {
235
+ name: 'test-app',
236
+ version: '1.0.0',
237
+ description: 'Test',
238
+ maintainer: 'Test <test@test.com>',
239
+ outputDir: TEST_OUTPUT_DIR,
240
+ };
241
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
242
+ const exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
243
+ throw new Error('exit');
244
+ });
245
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
246
+ fsMock.rename.mockRejectedValue(new Error('Cannot rename file'));
247
+ await expect(builder.build()).rejects.toThrow('exit');
248
+ expect(exitSpy).toHaveBeenCalledWith(1);
249
+ expect(errorSpy).toHaveBeenCalled();
250
+ exitSpy.mockRestore();
251
+ errorSpy.mockRestore();
252
+ });
253
+ });
254
+ describe('packaging', () => {
255
+ it('prepares source directory and copies build output', async () => {
256
+ const config = { buildDir: TEST_BUILD_DIR };
257
+ const options = { outputDir: TEST_OUTPUT_DIR };
258
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
259
+ await builder.build();
260
+ const expectedSourceDir = path.join(TEST_OUTPUT_DIR, TEST_TEMP_SOURCE_DIR, TEST_APP_FILES_DIR);
261
+ expect(fsMock.copy).toHaveBeenCalledWith(TEST_BUILD_DIR, expectedSourceDir, { overwrite: true });
262
+ });
263
+ it('packages with suffix, metadata, and cleanup', async () => {
264
+ const config = {
265
+ architecture: 'amd64',
266
+ depends: ['ni-systemlink', 'nodejs'],
267
+ displayName: 'My App',
268
+ userVisible: false,
269
+ buildDir: TEST_BUILD_DIR,
270
+ };
271
+ const options = {
272
+ buildSuffix: 'build-123',
273
+ name: 'test-app',
274
+ version: '1.2.3',
275
+ description: 'My app description',
276
+ maintainer: 'Jane <jane@example.com>',
277
+ outputDir: TEST_OUTPUT_DIR,
278
+ };
279
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
280
+ fsMock.readdir.mockResolvedValue(['old.nipkg', 'old.deb', 'keep.txt']);
281
+ await builder.build();
282
+ expect(fsMock.remove).toHaveBeenCalledWith(path.join(TEST_OUTPUT_DIR, 'old.nipkg'));
283
+ expect(fsMock.remove).toHaveBeenCalledWith(path.join(TEST_OUTPUT_DIR, 'old.deb'));
284
+ expect(deboaState.packageCalls).toBe(1);
285
+ expect(getDeboaControlFileOptions()).toEqual({
286
+ maintainer: 'Jane <jane@example.com>',
287
+ packageName: 'test-app',
288
+ shortDescription: 'My app description',
289
+ version: '1.2.3',
290
+ architecture: 'amd64',
291
+ depends: 'ni-systemlink, nodejs',
292
+ displayName: 'My App',
293
+ userVisible: 'false',
294
+ });
295
+ const packageName = 'test-app_1.2.3.build-123_amd64';
296
+ expect(fsMock.rename).toHaveBeenCalledWith(path.join(TEST_OUTPUT_DIR, `${packageName}.deb`), path.join(TEST_OUTPUT_DIR, `${packageName}.nipkg`));
297
+ });
298
+ it('skips cleanup when skipCleanup is true', async () => {
299
+ const config = { buildDir: TEST_BUILD_DIR };
300
+ const options = {
301
+ skipCleanup: true,
302
+ name: 'app',
303
+ version: DEFAULT_VERSION,
304
+ description: 'App',
305
+ maintainer: 'Dev <dev@example.com>',
306
+ outputDir: TEST_OUTPUT_DIR,
307
+ };
308
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
309
+ fsMock.readdir.mockResolvedValue(['old.nipkg', 'old.deb']);
310
+ await builder.build();
311
+ expect(fsMock.remove).not.toHaveBeenCalledWith(path.join(TEST_OUTPUT_DIR, 'old.nipkg'));
312
+ expect(fsMock.remove).not.toHaveBeenCalledWith(path.join(TEST_OUTPUT_DIR, 'old.deb'));
313
+ });
314
+ it('packages without suffix when none provided', async () => {
315
+ const config = { architecture: DEFAULT_ARCHITECTURE, buildDir: TEST_BUILD_DIR };
316
+ const options = {
317
+ name: 'plain-app',
318
+ version: '2.0.0',
319
+ description: 'Plain app',
320
+ maintainer: 'Plain <plain@example.com>',
321
+ outputDir: TEST_OUTPUT_DIR,
322
+ };
323
+ const builder = new SystemLinkNipkgBuilderCtor(config, options);
324
+ await builder.build();
325
+ const packageName = 'plain-app_2.0.0_all';
326
+ expect(fsMock.rename).toHaveBeenCalledWith(path.join(TEST_OUTPUT_DIR, `${packageName}.deb`), path.join(TEST_OUTPUT_DIR, `${packageName}.nipkg`));
327
+ });
328
+ });
329
+ describe('metadata and fallbacks', () => {
330
+ it('uses package.json fallbacks for name, description, and version', async () => {
331
+ const config = { buildDir: TEST_BUILD_DIR };
332
+ const builder = new SystemLinkNipkgBuilderCtor(config, {});
333
+ fsMock.readJsonSync.mockReturnValue({
334
+ name: 'pkg-name',
335
+ description: 'pkg-desc',
336
+ version: '9.9.9',
337
+ });
338
+ await builder.build();
339
+ expect(getDeboaControlFileOptions()).toEqual({
340
+ maintainer: DEFAULT_MAINTAINER,
341
+ packageName: 'pkg-name',
342
+ shortDescription: 'pkg-desc',
343
+ version: '9.9.9',
344
+ architecture: DEFAULT_ARCHITECTURE,
345
+ });
346
+ });
347
+ it('falls back to defaults when package.json is missing', async () => {
348
+ const config = { buildDir: TEST_BUILD_DIR };
349
+ const builder = new SystemLinkNipkgBuilderCtor(config, {});
350
+ fsMock.readJsonSync.mockImplementation(() => {
351
+ throw new Error('missing');
352
+ });
353
+ await builder.build();
354
+ expect(getDeboaControlFileOptions()).toEqual({
355
+ maintainer: DEFAULT_MAINTAINER,
356
+ packageName: path.basename(process.cwd()),
357
+ shortDescription: '',
358
+ version: DEFAULT_VERSION,
359
+ architecture: DEFAULT_ARCHITECTURE,
360
+ });
361
+ });
362
+ it('uses config values over package.json fallbacks', async () => {
363
+ const config = {
364
+ name: 'config-name',
365
+ description: 'config-desc',
366
+ version: '3.3.3',
367
+ maintainer: 'Config <config@example.com>',
368
+ buildDir: TEST_BUILD_DIR,
369
+ };
370
+ const builder = new SystemLinkNipkgBuilderCtor(config, {});
371
+ fsMock.readJsonSync.mockReturnValue({
372
+ name: 'pkg-name',
373
+ description: 'pkg-desc',
374
+ version: '9.9.9',
375
+ });
376
+ await builder.build();
377
+ expect(getDeboaControlFileOptions()).toEqual({
378
+ maintainer: 'Config <config@example.com>',
379
+ packageName: 'config-name',
380
+ shortDescription: 'config-desc',
381
+ version: '3.3.3',
382
+ architecture: DEFAULT_ARCHITECTURE,
383
+ });
384
+ });
385
+ });
386
+ });
387
+ });
388
+ //# sourceMappingURL=builder.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.test.js","sourceRoot":"","sources":["../src/builder.test.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -14,7 +14,7 @@ const program = new Command();
14
14
  program
15
15
  .name('sl-webapp-nipkg')
16
16
  .description('Build tool for packaging Node.js applications into SystemLink WebApp .nipkg format')
17
- .version(packageJson.version);
17
+ .version(packageJson.version, '-V, --cli-version', 'CLI version');
18
18
  program
19
19
  .command('build')
20
20
  .description('Build and package application as SystemLink WebApp .nipkg')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.test.d.ts","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,309 @@
1
+ /* eslint-disable @typescript-eslint/naming-convention */
2
+ import path from 'path';
3
+ import fs from 'fs-extra';
4
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
5
+ const builderState = {
6
+ lastConfig: undefined,
7
+ lastOptions: undefined,
8
+ buildCalls: 0,
9
+ };
10
+ vi.mock('./builder.js', () => ({
11
+ SystemLinkNipkgBuilder: vi.fn().mockImplementation((config, options) => {
12
+ builderState.lastConfig = config;
13
+ builderState.lastOptions = options;
14
+ return {
15
+ build: async () => {
16
+ builderState.buildCalls += 1;
17
+ await Promise.resolve();
18
+ },
19
+ };
20
+ }),
21
+ }));
22
+ vi.mock('chalk', () => ({
23
+ default: {
24
+ blue: (text) => text,
25
+ yellow: (text) => text,
26
+ green: (text) => text,
27
+ cyan: (text) => text,
28
+ gray: (text) => text,
29
+ red: { bold: (text) => text },
30
+ },
31
+ }));
32
+ vi.mock('fs-extra', () => ({
33
+ default: {
34
+ readJson: vi.fn(),
35
+ existsSync: vi.fn(),
36
+ writeJson: vi.fn(),
37
+ },
38
+ }));
39
+ const fsMock = fs;
40
+ const flushPromises = async () => {
41
+ await new Promise(resolve => {
42
+ setTimeout(resolve, 0);
43
+ });
44
+ };
45
+ // Constants for commonly used file names
46
+ const PACKAGE_JSON = 'package.json';
47
+ const NIPKG_CONFIG_JSON = 'nipkg.config.json';
48
+ const CUSTOM_CONFIG_JSON = 'custom-config.json';
49
+ const MISSING_CONFIG_JSON = 'missing-config.json';
50
+ // Constants for CLI arguments
51
+ const CLI_NODE = 'node';
52
+ const CLI_SCRIPT = 'cli';
53
+ const CLI_BUILD = 'build';
54
+ const CLI_INIT = 'init';
55
+ const packageJsonStub = {
56
+ version: '0.0.0',
57
+ name: 'cli-test-app',
58
+ author: 'Cli Tester <cli@test.local>',
59
+ };
60
+ describe('CLI', () => {
61
+ const originalArgv = process.argv.slice();
62
+ let exitSpy;
63
+ /**
64
+ * Helper to run the CLI by importing and flushing promises.
65
+ * This is the standard pattern for testing CLI behavior.
66
+ */
67
+ async function runCli() {
68
+ await import('./cli.js');
69
+ await flushPromises();
70
+ }
71
+ /**
72
+ * Helper to mock file existence for specific basenames.
73
+ * Makes tests more readable by clearly showing which files exist.
74
+ */
75
+ function mockFileExistence(...fileBasenames) {
76
+ fsMock.existsSync.mockImplementation((filePath) => {
77
+ const basename = path.basename(filePath);
78
+ return fileBasenames.includes(basename);
79
+ });
80
+ }
81
+ /**
82
+ * Helper to mock readJson responses for multiple files.
83
+ * Allows tests to specify only the files they care about.
84
+ */
85
+ function mockReadJson(fileMap) {
86
+ fsMock.readJson.mockImplementation((filePath) => {
87
+ const basename = path.basename(filePath);
88
+ return fileMap[basename] ?? {};
89
+ });
90
+ }
91
+ beforeEach(() => {
92
+ vi.resetModules();
93
+ vi.clearAllMocks();
94
+ builderState.lastConfig = undefined;
95
+ builderState.lastOptions = undefined;
96
+ builderState.buildCalls = 0;
97
+ exitSpy = vi.spyOn(process, 'exit').mockImplementation(() => undefined);
98
+ // Default: package.json exists, nipkg.config.json does not
99
+ fsMock.existsSync.mockReturnValue(false);
100
+ fsMock.existsSync.mockImplementation((filePath) => path.basename(filePath) === PACKAGE_JSON);
101
+ // Default: return packageJsonStub for package.json, empty object for unknown files
102
+ fsMock.readJson.mockImplementation((filePath) => {
103
+ if (path.basename(filePath) === PACKAGE_JSON) {
104
+ return packageJsonStub;
105
+ }
106
+ return {};
107
+ });
108
+ });
109
+ afterEach(() => {
110
+ process.argv = originalArgv;
111
+ exitSpy.mockRestore();
112
+ });
113
+ describe('build command', () => {
114
+ describe('config loading', () => {
115
+ it('loads custom config and passes CLI overrides', async () => {
116
+ fsMock.existsSync.mockImplementation((filePath) => {
117
+ const basename = path.basename(filePath);
118
+ return basename === PACKAGE_JSON || basename === CUSTOM_CONFIG_JSON;
119
+ });
120
+ fsMock.readJson.mockImplementation((filePath) => {
121
+ const basename = path.basename(filePath);
122
+ if (basename === PACKAGE_JSON) {
123
+ return packageJsonStub;
124
+ }
125
+ if (basename === CUSTOM_CONFIG_JSON) {
126
+ return {
127
+ name: 'config-app',
128
+ buildDir: 'config-dist',
129
+ buildCommand: 'npm run build',
130
+ };
131
+ }
132
+ return {};
133
+ });
134
+ process.argv = [
135
+ CLI_NODE,
136
+ CLI_SCRIPT,
137
+ CLI_BUILD,
138
+ '--config',
139
+ CUSTOM_CONFIG_JSON,
140
+ '--build',
141
+ '--verbose',
142
+ '--skip-cleanup',
143
+ '--build-suffix',
144
+ 'b123',
145
+ '--build-dir',
146
+ 'dist',
147
+ '--name',
148
+ 'cli-app',
149
+ '--version',
150
+ '2.0.0',
151
+ '--description',
152
+ 'CLI description',
153
+ '--maintainer',
154
+ 'Dev <dev@example.com>',
155
+ '--output-dir',
156
+ 'out',
157
+ ];
158
+ await runCli();
159
+ expect(exitSpy).not.toHaveBeenCalled();
160
+ expect(builderState.buildCalls).toBe(1);
161
+ expect(builderState.lastConfig).toEqual({
162
+ name: 'config-app',
163
+ buildDir: 'config-dist',
164
+ buildCommand: 'npm run build',
165
+ });
166
+ expect(builderState.lastOptions).toEqual({
167
+ build: true,
168
+ verbose: true,
169
+ skipCleanup: true,
170
+ buildSuffix: 'b123',
171
+ buildDir: 'dist',
172
+ name: 'cli-app',
173
+ version: '2.0.0',
174
+ description: 'CLI description',
175
+ maintainer: 'Dev <dev@example.com>',
176
+ outputDir: 'out',
177
+ });
178
+ });
179
+ it('uses default config path when present', async () => {
180
+ mockFileExistence(PACKAGE_JSON, NIPKG_CONFIG_JSON);
181
+ mockReadJson({
182
+ [NIPKG_CONFIG_JSON]: {
183
+ name: 'default-config-app',
184
+ buildDir: 'dist',
185
+ },
186
+ [PACKAGE_JSON]: packageJsonStub,
187
+ });
188
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_BUILD];
189
+ await runCli();
190
+ expect(exitSpy).not.toHaveBeenCalled();
191
+ expect(builderState.buildCalls).toBe(1);
192
+ expect(builderState.lastConfig).toEqual({
193
+ name: 'default-config-app',
194
+ buildDir: 'dist',
195
+ });
196
+ });
197
+ it('warns when default config is missing', async () => {
198
+ const logSpy = vi.spyOn(console, 'log').mockImplementation(() => undefined);
199
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_BUILD];
200
+ await runCli();
201
+ expect(exitSpy).not.toHaveBeenCalled();
202
+ expect(builderState.buildCalls).toBe(1);
203
+ expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('No nipkg.config.json'));
204
+ logSpy.mockRestore();
205
+ });
206
+ });
207
+ describe('error handling', () => {
208
+ it('exits when custom config path is missing', async () => {
209
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
210
+ // Uses default mocks: package.json exists, custom config does not
211
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_BUILD, '--config', MISSING_CONFIG_JSON];
212
+ await runCli();
213
+ expect(exitSpy).toHaveBeenCalledWith(1);
214
+ expect(errorSpy).toHaveBeenCalled();
215
+ expect(builderState.buildCalls).toBe(0);
216
+ });
217
+ it('handles invalid JSON in config file', async () => {
218
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
219
+ mockFileExistence(PACKAGE_JSON, CUSTOM_CONFIG_JSON);
220
+ fsMock.readJson.mockImplementation((filePath) => {
221
+ const basename = path.basename(filePath);
222
+ if (basename === CUSTOM_CONFIG_JSON) {
223
+ throw new Error('Unexpected token in JSON');
224
+ }
225
+ if (basename === PACKAGE_JSON) {
226
+ return packageJsonStub;
227
+ }
228
+ return {};
229
+ });
230
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_BUILD, '--config', CUSTOM_CONFIG_JSON];
231
+ await runCli();
232
+ expect(exitSpy).toHaveBeenCalledWith(1);
233
+ expect(errorSpy).toHaveBeenCalled();
234
+ expect(builderState.buildCalls).toBe(0);
235
+ });
236
+ it('handles config file read error', async () => {
237
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
238
+ mockFileExistence(PACKAGE_JSON, NIPKG_CONFIG_JSON);
239
+ fsMock.readJson.mockImplementation((filePath) => {
240
+ const basename = path.basename(filePath);
241
+ if (basename === NIPKG_CONFIG_JSON) {
242
+ throw new Error('EACCES: permission denied');
243
+ }
244
+ if (basename === PACKAGE_JSON) {
245
+ return packageJsonStub;
246
+ }
247
+ return {};
248
+ });
249
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_BUILD];
250
+ await runCli();
251
+ expect(exitSpy).toHaveBeenCalledWith(1);
252
+ expect(errorSpy).toHaveBeenCalled();
253
+ expect(builderState.buildCalls).toBe(0);
254
+ });
255
+ });
256
+ });
257
+ describe('init command', () => {
258
+ it('writes a default config when missing', async () => {
259
+ // Uses default mocks: package.json exists, nipkg.config.json does not
260
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_INIT];
261
+ await runCli();
262
+ expect(fsMock.writeJson).toHaveBeenCalledTimes(1);
263
+ const writeCall = fsMock.writeJson.mock.calls[0];
264
+ const [writePath, payload] = writeCall;
265
+ expect(path.basename(writePath)).toBe(NIPKG_CONFIG_JSON);
266
+ expect(payload).toEqual({
267
+ maintainer: 'Cli Tester <cli@test.local>',
268
+ architecture: 'all',
269
+ displayName: 'cli-test-app',
270
+ buildDir: 'dist',
271
+ buildCommand: 'npm run build',
272
+ userVisible: true,
273
+ });
274
+ });
275
+ it('does nothing when config already exists', async () => {
276
+ mockFileExistence(PACKAGE_JSON, NIPKG_CONFIG_JSON);
277
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_INIT];
278
+ await runCli();
279
+ expect(fsMock.writeJson).not.toHaveBeenCalled();
280
+ expect(exitSpy).not.toHaveBeenCalled();
281
+ });
282
+ it('uses cwd name when package.json is missing', async () => {
283
+ fsMock.existsSync.mockReturnValue(false);
284
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_INIT];
285
+ await runCli();
286
+ expect(fsMock.writeJson).toHaveBeenCalledTimes(1);
287
+ const writeCall = fsMock.writeJson.mock.calls[0];
288
+ const [, payload] = writeCall;
289
+ expect(payload).toEqual({
290
+ architecture: 'all',
291
+ displayName: path.basename(process.cwd()),
292
+ buildDir: 'dist',
293
+ buildCommand: 'npm run build',
294
+ userVisible: true,
295
+ });
296
+ });
297
+ describe('error handling', () => {
298
+ it('handles writeJson failure', async () => {
299
+ const errorSpy = vi.spyOn(console, 'error').mockImplementation(() => undefined);
300
+ fsMock.writeJson.mockRejectedValue(new Error('EACCES: permission denied'));
301
+ process.argv = [CLI_NODE, CLI_SCRIPT, CLI_INIT];
302
+ await runCli();
303
+ expect(exitSpy).toHaveBeenCalledWith(1);
304
+ expect(errorSpy).toHaveBeenCalled();
305
+ });
306
+ });
307
+ });
308
+ });
309
+ //# sourceMappingURL=cli.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ni-kismet/sl-webapp-nipkg",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Build tool for packaging web applications into SystemLink WebApp .nipkg format. Supports Node.js, Python, .NET Blazor, and static sites.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -28,6 +28,9 @@
28
28
  "scripts": {
29
29
  "build": "tsc",
30
30
  "dev": "tsc --watch",
31
+ "test": "vitest run",
32
+ "test:ui": "vitest --ui",
33
+ "test:coverage": "vitest run --coverage",
31
34
  "lint": "eslint .",
32
35
  "lint:fix": "eslint . --fix",
33
36
  "change": "beachball change",
@@ -68,10 +71,14 @@
68
71
  "@ni/eslint-config-javascript": "^5.1.4",
69
72
  "@ni/eslint-config-typescript": "^5.0.5",
70
73
  "@types/fs-extra": "^11.0.4",
71
- "@types/node": "^25.2.1",
74
+ "@types/node": "^25.3.0",
75
+ "@vitest/coverage-v8": "^2.1.8",
76
+ "@vitest/ui": "^2.1.8",
72
77
  "beachball": "^2.63.0",
73
- "eslint": "^9.39.2",
78
+ "eslint": "^9.39.3",
79
+ "eslint-plugin-n": "^17.24.0",
74
80
  "eslint-plugin-tsdoc": "^0.5.0",
75
- "typescript": "^5.9.3"
81
+ "typescript": "^5.9.3",
82
+ "vitest": "^2.1.8"
76
83
  }
77
84
  }