@interopio/iocd-cli 1.0.2 → 1.0.3
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/changelog.md +7 -0
- package/dist/services/dev.service.js +5 -1
- package/dist/services/dev.service.js.map +1 -1
- package/dist/services/test.service.js +21 -8
- package/dist/services/test.service.js.map +1 -1
- package/dist/templates/tests/.agents/skills/iocd-wdio-testing/references/configuration.md +3 -2
- package/dist/templates/tests/.agents/skills/iocd-wdio-testing/references/models.md +1 -1
- package/dist/templates/tests/.agents/skills/iocd-wdio-testing/references/troubleshooting.md +8 -9
- package/dist/templates/tests/tests/package-lock.json +4 -4
- package/dist/templates/tests/tests/package.json +1 -1
- package/package.json +1 -1
package/changelog.md
CHANGED
|
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.3](https://github.com/InteropIO/iocd-cli/compare/iocd-cli-v1.0.2...iocd-cli-v1.0.3) (2026-08-19)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **test:** prepare seed before running generated tests ([#97](https://github.com/InteropIO/iocd-cli/issues/97)) ([4baded9](https://github.com/InteropIO/iocd-cli/commit/4baded957c1e4afeb73d15cf98db9e2afd1f3464))
|
|
14
|
+
|
|
8
15
|
## [1.0.2](https://github.com/InteropIO/iocd-cli/compare/iocd-cli-v1.0.1...iocd-cli-v1.0.2) (2026-08-18)
|
|
9
16
|
|
|
10
17
|
|
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.startDevMode = startDevMode;
|
|
7
|
+
exports.prepareIocdForDev = prepareIocdForDev;
|
|
7
8
|
const modifications_service_1 = require("./modifications/modifications.service");
|
|
8
9
|
const child_process_1 = require("child_process");
|
|
9
10
|
const logger_1 = require("../utils/logger");
|
|
@@ -15,6 +16,10 @@ const license_file_service_1 = require("./license-file.service");
|
|
|
15
16
|
const logger = logger_1.Logger.getInstance("dev.service");
|
|
16
17
|
async function startDevMode(extraArgs) {
|
|
17
18
|
logger.info("Will start io.cd in dev mode....");
|
|
19
|
+
await prepareIocdForDev();
|
|
20
|
+
await launchIocdComponent(extraArgs);
|
|
21
|
+
}
|
|
22
|
+
async function prepareIocdForDev() {
|
|
18
23
|
(0, ensure_iocd_exists_1.ensureIOCDComponentExists)();
|
|
19
24
|
// some applications have base modifications
|
|
20
25
|
await app_service_1.default.copyBaseModifications();
|
|
@@ -24,7 +29,6 @@ async function startDevMode(extraArgs) {
|
|
|
24
29
|
await license_file_service_1.LicenseFileService.copyLicenseFile();
|
|
25
30
|
// sign ioconnect desktop if MacOS
|
|
26
31
|
await signIocdAppIfMacOs();
|
|
27
|
-
await launchIocdComponent(extraArgs);
|
|
28
32
|
}
|
|
29
33
|
async function signIocdAppIfMacOs() {
|
|
30
34
|
// Code signing is only needed on macOS
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.service.js","sourceRoot":"","sources":["../../src/services/dev.service.ts"],"names":[],"mappings":";;;;;AAWA,
|
|
1
|
+
{"version":3,"file":"dev.service.js","sourceRoot":"","sources":["../../src/services/dev.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,18 +39,32 @@ const fs = __importStar(require("fs"));
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
const path_1 = require("../utils/path");
|
|
41
41
|
const child_process_1 = require("child_process");
|
|
42
|
-
const
|
|
42
|
+
const license_service_1 = require("./license.service");
|
|
43
43
|
/**
|
|
44
44
|
* TestService handles running automated tests for the io.Connect Desktop application.
|
|
45
45
|
*
|
|
46
46
|
* This service:
|
|
47
47
|
* - Locates the tests directory in the project
|
|
48
48
|
* - Ensures node_modules are installed in the tests directory
|
|
49
|
+
* - Prepares the in-place component with the seed's dev modifications
|
|
49
50
|
* - Sets the BINARY_PATH environment variable to point to the built executable
|
|
51
|
+
* - Passes the seed license to the test process through IOCD_LICENSE_KEY
|
|
50
52
|
* - Runs the test script defined in the tests package.json
|
|
51
53
|
*/
|
|
52
54
|
class TestService {
|
|
53
55
|
logger = logger_1.Logger.getInstance("test.service");
|
|
56
|
+
prepareIocd;
|
|
57
|
+
getLicenseKey;
|
|
58
|
+
constructor(options = {}) {
|
|
59
|
+
this.prepareIocd =
|
|
60
|
+
options.prepareIocd ??
|
|
61
|
+
(async () => {
|
|
62
|
+
const { prepareIocdForDev } = await import("./dev.service.js");
|
|
63
|
+
await prepareIocdForDev();
|
|
64
|
+
});
|
|
65
|
+
this.getLicenseKey =
|
|
66
|
+
options.getLicenseKey ?? (() => new license_service_1.LicenseService().getLicenseKey());
|
|
67
|
+
}
|
|
54
68
|
/**
|
|
55
69
|
* Run tests for the io.Connect Desktop application
|
|
56
70
|
*/
|
|
@@ -64,19 +78,17 @@ class TestService {
|
|
|
64
78
|
this.logger.debug(`Tests directory: ${testsDir}`);
|
|
65
79
|
// Check if node_modules exists, if not run npm install
|
|
66
80
|
await this.ensureNodeModulesInstalled(testsDir);
|
|
81
|
+
// Prepare the in-place component exactly as dev mode does before launching it.
|
|
82
|
+
await this.prepareIocd();
|
|
67
83
|
// Get the binary path based on platform
|
|
68
84
|
const binaryPath = path_1.PathUtils.getIOCDExePath();
|
|
69
85
|
this.logger.info(`Binary path: ${binaryPath}`);
|
|
70
86
|
// Verify binary exists
|
|
71
87
|
if (!fs.existsSync(binaryPath)) {
|
|
72
|
-
throw new Error(`Binary not found at ${binaryPath}.
|
|
88
|
+
throw new Error(`Binary not found at ${binaryPath} after dev preparation. Run 'iocd setup' to reinstall the configured component.`);
|
|
73
89
|
}
|
|
74
|
-
// copy license file to binary directory if it exists
|
|
75
|
-
await license_file_service_1.LicenseFileService.copyLicenseFile(true);
|
|
76
90
|
// Run the test script
|
|
77
|
-
await this.runTestScript(testsDir, binaryPath, args);
|
|
78
|
-
// remove license file after tests (as tests ignore the copy setting)
|
|
79
|
-
await license_file_service_1.LicenseFileService.removeLicenseFile();
|
|
91
|
+
await this.runTestScript(testsDir, binaryPath, args, this.getLicenseKey());
|
|
80
92
|
}
|
|
81
93
|
/**
|
|
82
94
|
* Ensure node_modules are installed in the tests directory
|
|
@@ -122,7 +134,7 @@ class TestService {
|
|
|
122
134
|
/**
|
|
123
135
|
* Run the test script in the tests directory
|
|
124
136
|
*/
|
|
125
|
-
async runTestScript(testsDir, binaryPath, args = []) {
|
|
137
|
+
async runTestScript(testsDir, binaryPath, args = [], licenseKey) {
|
|
126
138
|
this.logger.info("Running tests...");
|
|
127
139
|
return new Promise((resolve, reject) => {
|
|
128
140
|
const npmCommand = process.platform === "win32" ? "npm.cmd" : "npm";
|
|
@@ -134,6 +146,7 @@ class TestService {
|
|
|
134
146
|
env: {
|
|
135
147
|
...process.env,
|
|
136
148
|
BINARY_PATH: binaryPath,
|
|
149
|
+
...(licenseKey ? { IOCD_LICENSE_KEY: licenseKey } : {}),
|
|
137
150
|
},
|
|
138
151
|
});
|
|
139
152
|
child.on("close", code => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.service.js","sourceRoot":"","sources":["../../src/services/test.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAAyC;AACzC,uCAAyB;AACzB,2CAA6B;AAC7B,wCAA0C;AAC1C,iDAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"test.service.js","sourceRoot":"","sources":["../../src/services/test.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,11 +17,12 @@ The config the platform runs with is three layers, each deep-merged over the pre
|
|
|
17
17
|
| Layer | Owner | Where |
|
|
18
18
|
|-------|-------|-------|
|
|
19
19
|
| Default `system.json` | io.Connect Desktop | inside the installed `iocd` component |
|
|
20
|
-
| Seed modifications | the seed | `modifications
|
|
20
|
+
| Seed modifications | the seed | `modifications/base/` plus `modifications/dev/` for tests; packed builds use `modifications/build/` |
|
|
21
21
|
| Test overrides | the test package | `config/system.json`, merged on top for the test process only |
|
|
22
22
|
|
|
23
23
|
**Keep the test layer minimal.** Whatever the seed configures is already in effect during a test
|
|
24
|
-
run — don't restate it. Override only what
|
|
24
|
+
run because `iocd test` prepares the component in dev mode — don't restate it. Override only what
|
|
25
|
+
makes the run isolated and reproducible: the fixture app
|
|
25
26
|
store, `folders.userData`, log/crash output locations, and similar plumbing. Changing platform
|
|
26
27
|
behavior here (window mode, Channels, gateway, auth, themes) means the tests no longer exercise the
|
|
27
28
|
platform the seed ships — you'd be testing something else. Behavior changes belong in
|
|
@@ -11,7 +11,7 @@ over copying internal IOCD selectors into a spec.
|
|
|
11
11
|
|
|
12
12
|
## Current Generated Version
|
|
13
13
|
|
|
14
|
-
The generated test package currently pins `@interopio/wdio-iocd-service@1.0.0-next.
|
|
14
|
+
The generated test package currently pins `@interopio/wdio-iocd-service@1.0.0-next.4`. Its
|
|
15
15
|
`@interopio/wdio-iocd-service/models` subpath exports:
|
|
16
16
|
|
|
17
17
|
| Area | Models and types |
|
|
@@ -2,18 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
## Missing platform executable
|
|
4
4
|
|
|
5
|
-
Ensure the configured `iocd` component is installed
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
preparation applies the seed branding and creates the executable path that the test command expects;
|
|
11
|
-
close that development instance before rerunning the tests.
|
|
5
|
+
Ensure the configured `iocd` component is installed by running `npm run setup`. `iocd test`
|
|
6
|
+
automatically performs the same bundle preparation as `iocd dev`: it generates application-owned
|
|
7
|
+
base modifications, applies the seed's base and dev modifications, copies the configured output
|
|
8
|
+
license when enabled, and signs the macOS bundle before resolving the executable. It does not launch
|
|
9
|
+
a separate development instance.
|
|
12
10
|
|
|
13
11
|
## License prompt or failure
|
|
14
12
|
|
|
15
|
-
Run from the seed root through `npm test` so the CLI can
|
|
16
|
-
the license via secrets. Never hard-code a
|
|
13
|
+
Run from the seed root through `npm test` so the CLI can read `config/iocd.license.key` and forward it
|
|
14
|
+
to the test platform as `IOCD_LICENSE_KEY`. In CI, supply the license via secrets. Never hard-code a
|
|
15
|
+
license in a spec or fixture.
|
|
17
16
|
|
|
18
17
|
## Startup timeout
|
|
19
18
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@interopio/desktop": "^6.21.0",
|
|
13
|
-
"@interopio/wdio-iocd-service": "1.0.0-next.
|
|
13
|
+
"@interopio/wdio-iocd-service": "1.0.0-next.4",
|
|
14
14
|
"@interopio/workspaces-api": "^4.5.0",
|
|
15
15
|
"@types/chai": "^5.2.3",
|
|
16
16
|
"@types/mocha": "^10.0.10",
|
|
@@ -1141,9 +1141,9 @@
|
|
|
1141
1141
|
}
|
|
1142
1142
|
},
|
|
1143
1143
|
"node_modules/@interopio/wdio-iocd-service": {
|
|
1144
|
-
"version": "1.0.0-next.
|
|
1145
|
-
"resolved": "https://registry.npmjs.org/@interopio/wdio-iocd-service/-/wdio-iocd-service-1.0.0-next.
|
|
1146
|
-
"integrity": "sha512-
|
|
1144
|
+
"version": "1.0.0-next.4",
|
|
1145
|
+
"resolved": "https://registry.npmjs.org/@interopio/wdio-iocd-service/-/wdio-iocd-service-1.0.0-next.4.tgz",
|
|
1146
|
+
"integrity": "sha512-l91dDhUdqYt9l49jAu6CTKjge8T12LnMODG2VrTqDk9ffSyGIvxK3gCsqtV3US7wRcCCbFHrStepaZhSrL9BSw==",
|
|
1147
1147
|
"dev": true,
|
|
1148
1148
|
"license": "MIT",
|
|
1149
1149
|
"dependencies": {
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"devDependencies": {
|
|
12
12
|
"@interopio/desktop": "^6.21.0",
|
|
13
|
-
"@interopio/wdio-iocd-service": "1.0.0-next.
|
|
13
|
+
"@interopio/wdio-iocd-service": "1.0.0-next.4",
|
|
14
14
|
"@interopio/workspaces-api": "^4.5.0",
|
|
15
15
|
"@types/chai": "^5.2.3",
|
|
16
16
|
"@types/mocha": "^10.0.10",
|