zerocheck 0.1.8 → 0.1.9
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 +72 -128
- package/dist/index.js +4 -4
- package/package.json +22 -2
package/README.md
CHANGED
|
@@ -1,180 +1,124 @@
|
|
|
1
1
|
# Zerocheck
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Repeatable browser tests from your release checklist**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Zerocheck turns your team's manual release checklist into saved end-to-end browser tests. Start with the important user journeys, review the test definitions and browser results, and rerun the checks as your app changes.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
This is the Zerocheck CLI. Use it for repository tests on your laptop or in CI, or connect a coding agent through MCP.
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
**New to Zerocheck? [Request pilot access](https://tryzerocheck.com/demo/).** We provision a customer instance and help you configure your first handful of tests during hands-on onboarding.
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
npm install --save-dev --save-exact zerocheck@0.1.8
|
|
13
|
-
export ZEROCHECK_API=https://your-instance.example.com
|
|
14
|
-
npx zerocheck login
|
|
15
|
-
npx zerocheck init --project your-project-id --url http://localhost:3000
|
|
16
|
-
npx zerocheck install
|
|
17
|
-
```
|
|
11
|
+
**Already onboarded?** [Run your saved tests](#run-your-saved-tests), or open the instance URL supplied during onboarding to use the web app.
|
|
18
12
|
|
|
19
|
-
|
|
13
|
+
## Before you start
|
|
20
14
|
|
|
21
|
-
|
|
15
|
+
Test execution requires a Zerocheck account, a provisioned customer instance and a project in that instance. **There is no default public service.**
|
|
22
16
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```sh
|
|
26
|
-
npx zerocheck import release-checklist.md --env dev
|
|
27
|
-
cat release-checklist.md | npx zerocheck import - --env staging
|
|
28
|
-
npx zerocheck import --env dev
|
|
29
|
-
```
|
|
17
|
+
For the CLI, have these ready:
|
|
30
18
|
|
|
31
|
-
|
|
19
|
+
- **Node.js 20.19 or newer.**
|
|
20
|
+
- **Your instance URL** and account access, supplied during onboarding.
|
|
21
|
+
- **Your project files:** `zerocheck.yaml` with the correct project, environment and app URL, plus at least one saved YAML test in its configured test directory. We set up these files with you during onboarding.
|
|
22
|
+
- **A running app** reachable from your machine, with the test accounts, fixtures and credential variables your checks need.
|
|
32
23
|
|
|
33
|
-
|
|
34
|
-
- **Check failed:** the requested outcome failed. Review the check and captured result; this alone does not diagnose a product bug.
|
|
35
|
-
- **Needs input:** an essential outcome, account, route or fixture is missing, or the item still needs a browser-executable interpretation.
|
|
36
|
-
- **Could not run:** execution could not complete; inspect the recorded reason.
|
|
24
|
+
Local execution uses Zerocheck's AI service and uploads selected test definitions, page context and run evidence. It requires network access and authentication even though the browser runs on your machine.
|
|
37
25
|
|
|
38
|
-
|
|
26
|
+
## Run your saved tests
|
|
39
27
|
|
|
40
|
-
|
|
28
|
+
Run from the app repository containing the project files above. Replace the instance URL with the one you received during onboarding.
|
|
41
29
|
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
|
|
30
|
+
```bash
|
|
31
|
+
npm install --save-dev --save-exact zerocheck@0.1.9
|
|
32
|
+
export ZEROCHECK_API="https://your-instance.example.com"
|
|
33
|
+
npx zerocheck login
|
|
34
|
+
npx zerocheck install
|
|
35
|
+
npx zerocheck validate
|
|
36
|
+
npx zerocheck run --json .zerocheck/latest-run.json
|
|
45
37
|
```
|
|
46
38
|
|
|
47
|
-
|
|
39
|
+
`login` prints a URL and code for you to approve in your browser. `install` downloads Chromium for local runs. `validate` checks the saved YAML without running a browser.
|
|
48
40
|
|
|
49
|
-
|
|
41
|
+
`run` executes the saved tests in the configured test directory, using `default_environment` from `zerocheck.yaml`. Confirm that environment points to the app you intend to test. When a results link is printed, open it to inspect outcomes, failed steps and screenshots after signing in. The JSON file also retains the run details. If publication fails, follow the upload-retry command printed by the CLI.
|
|
50
42
|
|
|
51
|
-
|
|
52
|
-
{"item-3":"Use the existing demo product with SKU DEMO-1; expect a total of $12.00."}
|
|
53
|
-
```
|
|
43
|
+
To run just one test, use its actual repository path:
|
|
54
44
|
|
|
55
|
-
```
|
|
56
|
-
npx zerocheck
|
|
45
|
+
```bash
|
|
46
|
+
npx zerocheck run zerocheck/tests/your-test.yaml
|
|
57
47
|
```
|
|
58
48
|
|
|
59
|
-
|
|
49
|
+
### Starting from the web app
|
|
60
50
|
|
|
61
|
-
|
|
51
|
+
Open your provisioned instance, choose a saved test and run it against the intended environment. You can use the web app without installing this package.
|
|
62
52
|
|
|
63
|
-
|
|
53
|
+
To bring an individual web test into your repository, use **Download YAML** and put that file in the configured test directory. This creates an independent copy. Web tests are edited in the web app; repository tests are edited in their files. The CLI does not automatically download your saved web tests.
|
|
64
54
|
|
|
65
|
-
|
|
66
|
-
project: your-project-id
|
|
67
|
-
default_environment: dev
|
|
68
|
-
test_directory: zerocheck/tests
|
|
69
|
-
environments:
|
|
70
|
-
dev:
|
|
71
|
-
url: http://localhost:3000
|
|
72
|
-
staging:
|
|
73
|
-
url: https://staging.example.com
|
|
74
|
-
secrets:
|
|
75
|
-
EMAIL: ${ZEROCHECK_EMAIL}
|
|
76
|
-
PASSWORD: ${ZEROCHECK_PASSWORD}
|
|
77
|
-
login_steps:
|
|
78
|
-
- Navigate to /login
|
|
79
|
-
- Enter "${EMAIL}" into the Email field
|
|
80
|
-
- Enter "${PASSWORD}" into the Password field
|
|
81
|
-
- Click the Sign in button
|
|
82
|
-
- Verify the dashboard is visible
|
|
83
|
-
production:
|
|
84
|
-
url: https://example.com
|
|
85
|
-
execution:
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
Only explicitly referenced secret variables are read for execution. Missing variables fail clearly. Listing, reading, saving and validating checks do not require execution secrets.
|
|
55
|
+
For a reviewed checklist import, the CLI can save its drafted tests with `import --draft IMPORT_ID`, as shown below. An import ID is different from an individual saved-test ID or run ID.
|
|
89
56
|
|
|
90
|
-
|
|
57
|
+
<details>
|
|
58
|
+
<summary><strong>Need to create the project files first?</strong></summary>
|
|
91
59
|
|
|
92
|
-
|
|
60
|
+
After installing and logging in, replace the project ID and app URL, then initialize a new configuration:
|
|
93
61
|
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
name: Release notes are available
|
|
97
|
-
blocks_merge: true
|
|
98
|
-
steps:
|
|
99
|
-
- Navigate to /releases
|
|
100
|
-
- Verify the Release notes heading is visible
|
|
62
|
+
```bash
|
|
63
|
+
npx zerocheck init --project "YOUR_PROJECT_ID" --env dev --url "http://localhost:3000"
|
|
101
64
|
```
|
|
102
65
|
|
|
103
|
-
|
|
66
|
+
`init` creates `zerocheck.yaml` and an empty test directory. If the configuration already exists, edit that file to change its project or environments.
|
|
104
67
|
|
|
105
|
-
|
|
68
|
+
Add your onboarding-provided test YAML, download an agreed web test, or draft tests from a real release checklist:
|
|
106
69
|
|
|
107
|
-
|
|
70
|
+
```bash
|
|
71
|
+
npx zerocheck install
|
|
72
|
+
npx zerocheck import release-checklist.md --env dev
|
|
73
|
+
```
|
|
108
74
|
|
|
109
|
-
|
|
75
|
+
Import drafts and runs checks immediately. Review the displayed YAML and browser results before saving. Resolve missing inputs and inspect failed or incomplete checks. Replace `IMPORT_ID` with the import identifier printed by the command:
|
|
110
76
|
|
|
111
|
-
```
|
|
77
|
+
```bash
|
|
78
|
+
npx zerocheck import --draft IMPORT_ID
|
|
112
79
|
npx zerocheck validate
|
|
113
80
|
npx zerocheck run --env dev
|
|
114
|
-
npx zerocheck run zerocheck/tests/release.yaml --env staging --runner hosted
|
|
115
|
-
npx zerocheck run --env production --runner local --fail-on-flaky
|
|
116
|
-
npx zerocheck run --env staging --json .zerocheck/latest-run.json --junit .zerocheck/junit.xml
|
|
117
|
-
npx zerocheck results RUN_ID
|
|
118
|
-
npx zerocheck doctor --env staging
|
|
119
81
|
```
|
|
120
82
|
|
|
121
|
-
|
|
83
|
+
Saving a draft does not change a failed result into a pass. Keep the expected outcome when investigating a failure.
|
|
122
84
|
|
|
123
|
-
|
|
85
|
+
</details>
|
|
124
86
|
|
|
125
|
-
|
|
87
|
+
## What a test looks like
|
|
126
88
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
## GitHub Actions and PR comments
|
|
130
|
-
|
|
131
|
-
```sh
|
|
132
|
-
npx zerocheck init --github-actions
|
|
133
|
-
```
|
|
89
|
+
Each repository test is a readable YAML file. Adapt this example to a route and outcome that exist in your app:
|
|
134
90
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
npx zerocheck report --file .zerocheck/latest-run.json
|
|
91
|
+
```yaml
|
|
92
|
+
version: zerocheck/v1
|
|
93
|
+
name: Release notes are available
|
|
94
|
+
blocks_merge: true
|
|
95
|
+
steps:
|
|
96
|
+
- Navigate to /releases
|
|
97
|
+
- Verify the Release notes heading is visible
|
|
143
98
|
```
|
|
144
99
|
|
|
145
|
-
|
|
100
|
+
## Coding agents and other runners
|
|
146
101
|
|
|
147
|
-
|
|
102
|
+
After completing project setup, a compatible coding agent can use the same CLI through its local stdio MCP server:
|
|
148
103
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
Use the installed CLI as a stdio MCP server, with an explicit project directory:
|
|
152
|
-
|
|
153
|
-
```json
|
|
154
|
-
{
|
|
155
|
-
"mcpServers": {
|
|
156
|
-
"zerocheck": {
|
|
157
|
-
"command": "npx",
|
|
158
|
-
"args": ["--yes", "zerocheck@0.1.8", "mcp", "--project-dir", "/absolute/path/to/project"]
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
104
|
+
```bash
|
|
105
|
+
npx zerocheck mcp --project-dir "/absolute/path/to/your/app"
|
|
162
106
|
```
|
|
163
107
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
Tools: `list_checks`, `read_check`, `save_check`, `import_checklist`, `answer_import`, `adopt_import`, `verify_check`, `run_checks`, `get_results`, and `cancel`. Existing check replacements require their current `expectedRevision`. File operations stay within the configured project, including symbolic-link checks.
|
|
167
|
-
|
|
168
|
-
Browser operations return job handles. Poll `get_results` with `kind: "job"` and `waitMs` up to 30000; inspect the returned run/draft ID for durable retrieval. `kind: "run"` reads a saved run after process restart; `kind: "import"` reads an uploaded import. Cancel with the job ID. Each MCP process permits one active browser job. Closing it cancels that job; cancellation cannot undo actions already performed.
|
|
169
|
-
|
|
170
|
-
## Data sent to Zerocheck
|
|
108
|
+
Configure the process in your MCP client using the [MCP guide](https://tryzerocheck.com/docs/mcp/). Device sign-in needs your approval. The MCP tools can inspect, draft, save and run tests, then read their results.
|
|
171
109
|
|
|
172
|
-
|
|
110
|
+
For hosted execution, add `--runner hosted` to `run`; Chromium installation on your machine is unnecessary for that runner. The hosted browser must be able to reach the configured app URL. It cannot automatically reach your laptop's localhost. Hosted CLI runs still use repository configuration and test files.
|
|
173
111
|
|
|
174
|
-
##
|
|
112
|
+
## When a run needs attention
|
|
175
113
|
|
|
176
|
-
|
|
114
|
+
| Situation | Next step |
|
|
115
|
+
| --- | --- |
|
|
116
|
+
| No instance configured | Set `ZEROCHECK_API` to your customer instance before login. |
|
|
117
|
+
| No configuration or tests found | Add the project configuration and saved YAML tests. `init` creates an empty test directory. |
|
|
118
|
+
| Missing test credentials | Supply the variables referenced by your configured environment. |
|
|
119
|
+
| A test fails or cannot complete | Open the result and inspect the failed step and evidence. |
|
|
120
|
+
| Result publication fails | Follow the upload-retry command printed by the CLI. |
|
|
177
121
|
|
|
178
|
-
|
|
122
|
+
Exit codes: **0** means the run completed within the configured merge policy; **1** means a blocking failure; **2** means a setup, incomplete-execution, infrastructure or result-publication error.
|
|
179
123
|
|
|
180
|
-
|
|
124
|
+
[Request pilot access](https://tryzerocheck.com/demo/) · [Developer resources](https://tryzerocheck.com/developers/) · [CLI guide](https://tryzerocheck.com/cli/) · [Web app guide](https://tryzerocheck.com/docs/web-app/) · [Results](https://tryzerocheck.com/docs/results/)
|
package/dist/index.js
CHANGED
|
@@ -7006,7 +7006,7 @@ async function loginCommand() {
|
|
|
7006
7006
|
let device;
|
|
7007
7007
|
try {
|
|
7008
7008
|
device = await apiRequest("/v1/cli/auth/device", {
|
|
7009
|
-
body: { device_name: deviceName, client_version: "0.1.
|
|
7009
|
+
body: { device_name: deviceName, client_version: "0.1.9" },
|
|
7010
7010
|
authed: false
|
|
7011
7011
|
});
|
|
7012
7012
|
} catch (err) {
|
|
@@ -22420,7 +22420,7 @@ jobs:
|
|
|
22420
22420
|
node-version: '22'
|
|
22421
22421
|
- name: Install Zerocheck
|
|
22422
22422
|
run: |
|
|
22423
|
-
npm install --prefix "$RUNNER_TEMP/zerocheck-cli" --no-save --package-lock=false zerocheck@0.1.
|
|
22423
|
+
npm install --prefix "$RUNNER_TEMP/zerocheck-cli" --no-save --package-lock=false zerocheck@0.1.9
|
|
22424
22424
|
echo "$RUNNER_TEMP/zerocheck-cli/node_modules/.bin" >> "$GITHUB_PATH"
|
|
22425
22425
|
- name: Restore learned targets
|
|
22426
22426
|
uses: actions/cache@v4
|
|
@@ -28440,7 +28440,7 @@ var runner = z2.enum(["local", "hosted"]).default("local").describe("Local brows
|
|
|
28440
28440
|
var output = (value) => ({ content: [{ type: "text", text: JSON.stringify(value) }], structuredContent: { result: value } });
|
|
28441
28441
|
var error = (value) => ({ isError: true, content: [{ type: "text", text: JSON.stringify({ error: "operation_failed", message: value instanceof Error ? value.message : String(value) }) }] });
|
|
28442
28442
|
function createMcpServer(services) {
|
|
28443
|
-
const server = new McpServer({ name: "zerocheck", version: "0.1.
|
|
28443
|
+
const server = new McpServer({ name: "zerocheck", version: "0.1.9" });
|
|
28444
28444
|
server.registerTool("list_checks", {
|
|
28445
28445
|
description: "List the repository YAML checks, IDs, exact contents and revisions. Does not execute them.",
|
|
28446
28446
|
inputSchema: { paths: z2.array(z2.string()).optional(), environment },
|
|
@@ -28580,7 +28580,7 @@ async function mcpCommand(options) {
|
|
|
28580
28580
|
}
|
|
28581
28581
|
|
|
28582
28582
|
// src/index.ts
|
|
28583
|
-
var program = new Command().name("zerocheck").version("0.1.
|
|
28583
|
+
var program = new Command().name("zerocheck").version("0.1.9").description("Turn your team\u2019s manual release checklist into repeatable browser tests.");
|
|
28584
28584
|
var directory = (command) => command.option("--project-dir <path>", "Repository project directory", process.cwd());
|
|
28585
28585
|
var environment2 = (command) => directory(command).addOption(new Option("--env <environment>", "Named project environment").choices(["dev", "staging", "production"]));
|
|
28586
28586
|
var execution = (command) => environment2(command).addOption(new Option("--runner <runner>", "Browser execution location").choices(["local", "hosted"]).default("local"));
|
package/package.json
CHANGED
|
@@ -1,7 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zerocheck",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Turn
|
|
3
|
+
"version": "0.1.9",
|
|
4
|
+
"description": "Turn release checklists into repeatable browser tests. Run with the Zerocheck CLI, CI or web app and inspect the evidence.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"qa-agent",
|
|
7
|
+
"ai-testing",
|
|
8
|
+
"agentic-testing",
|
|
9
|
+
"zerocheck",
|
|
10
|
+
"testing",
|
|
11
|
+
"qa",
|
|
12
|
+
"e2e",
|
|
13
|
+
"end-to-end",
|
|
14
|
+
"browser-testing",
|
|
15
|
+
"test-automation",
|
|
16
|
+
"release-checklist",
|
|
17
|
+
"plain-english",
|
|
18
|
+
"playwright",
|
|
19
|
+
"cli",
|
|
20
|
+
"mcp",
|
|
21
|
+
"ci"
|
|
22
|
+
],
|
|
23
|
+
"homepage": "https://tryzerocheck.com/",
|
|
24
|
+
"license": "MIT",
|
|
5
25
|
"type": "module",
|
|
6
26
|
"repository": {
|
|
7
27
|
"type": "git",
|