@unotest/viewer 0.13.1 → 0.15.0

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 CHANGED
@@ -1,5 +1,57 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.15.0] - 2026-08-17
4
+
5
+ ### Minor Changes
6
+
7
+ - 32692b4: Make `node-pty` an optional dependency. It is a native addon with no prebuilt
8
+ binary for every platform — linux-arm64 among them — so on a machine without a
9
+ C/C++ toolchain npm compiled it from source and the whole install died with a
10
+ node-gyp error, before anything of ours was on disk. It backs one panel, the
11
+ docked terminal, which most runs never open.
12
+
13
+ It is now loaded on first use rather than at import time, so its absence is a
14
+ state the viewer reports instead of a crash it takes: the server starts, runs
15
+ and scenarios and the editor work, and the terminal panel explains what is
16
+ missing, what still works, and how to enable it.
17
+
18
+ ### Patch Changes
19
+
20
+ - d2161a9: Fix the standalone `unotest-viewer` bin, which started nothing. It imported
21
+ `dist/server/main.js` for its side effect, but that module self-starts only
22
+ when node was pointed at it directly — launched through the bin the check was
23
+ false, so the process exited 0 with no output, no error and no server. The bin
24
+ now calls the exported `runViewerCli()`.
25
+
26
+ `npx @unotest/web viewer` was never affected: it imports `@unotest/viewer/server`
27
+ and calls `startViewerServer()` itself. That import must stay side-effect free,
28
+ so the entry-point check stays — the bin just no longer depends on it.
29
+
30
+ A build-time smoke (`smoke:bin`) now starts the built bin, fetches the URL it
31
+ reports and kills it, because the failure mode here is silence: a bin that
32
+ exits 0 and serves nothing passes every check that only looks at exit codes.
33
+
34
+ - @unotest/dsl@0.15.0
35
+ - @unotest/protocol@0.15.0
36
+
37
+ ## [0.14.0] - 2026-08-16
38
+
39
+ ### Patch Changes
40
+
41
+ - da5badd: Name the controls that only showed icons. The activity-bar buttons
42
+ (Scenarios, Runs, Variables, …) carried an aria-hidden icon and a tooltip
43
+ that only exists on hover, which left them with no accessible name at all;
44
+ run rows in the history said "5m ago" next to a coloured dot, with the
45
+ scenario and the outcome nowhere in their name. Both now carry an explicit
46
+ label — readable by a screen reader, and addressable by `getByRole`.
47
+
48
+ Found by pointing our own e2e suite at the viewer.
49
+
50
+ - Updated dependencies [0255f2d]
51
+ - Updated dependencies [da5badd]
52
+ - @unotest/dsl@0.14.0
53
+ - @unotest/protocol@0.14.0
54
+
3
55
  ## [0.13.1] - 2026-08-15
4
56
 
5
57
  ### Patch Changes
@@ -3,5 +3,11 @@
3
3
  // invoke this — `npx @unotest/web viewer` is the canonical entry that
4
4
  // spawns the same server. Kept here for dev / debug / future Electron
5
5
  // builds that embed Nest directly.
6
+ //
7
+ // Calls the exported function rather than importing the module for its
8
+ // side effect: main.js only self-starts when node was pointed AT it, so
9
+ // a bare import from here started nothing and exited 0 in silence.
6
10
 
7
- import "./../dist/server/main.js";
11
+ import { runViewerCli } from "./../dist/server/main.js";
12
+
13
+ await runViewerCli();
@@ -43,5 +43,17 @@ interface ViewerHandle {
43
43
  /** Public entry — `@unotest/web`'s viewer subcommand calls this via
44
44
  * `await import('@unotest/viewer/server').startViewerServer({...})`. */
45
45
  declare function startViewerServer(opts: StartViewerOptions): Promise<ViewerHandle>;
46
+ /** Standalone launch: read the environment, start the server, stay up
47
+ * until a signal. Exported because `bin/unotest-viewer.js` has to CALL
48
+ * it — importing this module and hoping the entry-point check below
49
+ * fires is what the bin used to do, and the check is false when node
50
+ * was pointed at the bin (argv[1] is the bin, not this file). The
51
+ * server never started and the process exited 0, saying nothing.
52
+ *
53
+ * No caller injects runners here, so `startViewerServer` auto-detects
54
+ * the installed `@unotest/*` runner packages (by name — DIP boundary
55
+ * intact). `UNOTEST_RUNNER_PKG` (legacy single-runner var) and
56
+ * `UNOTEST_TARGET` just pick which detected target is active at boot. */
57
+ declare function runViewerCli(): Promise<void>;
46
58
 
47
- export { type RunnerEntry, type StartViewerOptions, type ViewerHandle, startViewerServer };
59
+ export { type RunnerEntry, type StartViewerOptions, type ViewerHandle, runViewerCli, startViewerServer };