@unotest/viewer 0.30.0 → 0.31.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 +103 -0
- package/dist/server/main.js +1 -1
- package/dist/server/session.js +1 -1
- package/dist/web/assets/{DslEditor-B1VKaBDd.js → DslEditor-v0x2qlN8.js} +3 -3
- package/dist/web/assets/index-COpZ6sQr.js +55 -0
- package/dist/web/assets/index-Fjo2H4WW.css +32 -0
- package/dist/web/index.html +2 -2
- package/package.json +6 -6
- package/dist/web/assets/index-CBlBZ0xa.css +0 -32
- package/dist/web/assets/index-feeefcEd.js +0 -55
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,108 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.31.0] - 2026-09-04
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- b8e105b: Steps tree shows what a step attached to itself: a row that called
|
|
8
|
+
`note(...)`, `log(...)` or `assertJudge(...)` gets an `ⓘ N` chip, and the
|
|
9
|
+
list under it renders notes as `label → value`, log lines, and the
|
|
10
|
+
verdict as `judge ✓/✗ · rubric · text` — open by default under a failed
|
|
11
|
+
step and under a verdict that said no, with open/closed choices
|
|
12
|
+
remembered per scenario and step. A note from inside a helper lands
|
|
13
|
+
under the entry step that called it (the runner records the entry
|
|
14
|
+
position; older journals fall back to the step in flight). The error
|
|
15
|
+
card of a failed judge step carries the whole verdict. After the run the
|
|
16
|
+
System pane lists the scenario's `log(...)` lines with their time. The
|
|
17
|
+
server keeps `note` / `log` lines when it reads a finished run's journal.
|
|
18
|
+
- 100ab9d: Steps view reads the `step-block:*` envelopes of a run: a block's duration
|
|
19
|
+
is now the whole block (a step wrapping a loop of three navigations shows
|
|
20
|
+
the loop's 4.8s, not the last statement's 66ms), a `{tag}` step shows its
|
|
21
|
+
evaluated tag as a chip (the source expression before the run), a
|
|
22
|
+
`step.soft` block is marked `soft`, and a group with soft descendants
|
|
23
|
+
rolls them up as "1 of 10 soft failed" and reads as failed. A run with
|
|
24
|
+
soft failures gets a card above the tree listing every one with its tag,
|
|
25
|
+
line and error. Journals recorded before 0.31.0 render as before. The
|
|
26
|
+
server keeps `step-block:*` and `judge:verdict` lines when it reads a
|
|
27
|
+
finished run's journal from disk (it used to drop every kind it did not
|
|
28
|
+
list, so a verdict never reached the page); the error card under a
|
|
29
|
+
failed step shows that step's own error, not the run's last one; the
|
|
30
|
+
status bar counts soft steps ("2 of 3 soft failed").
|
|
31
|
+
- ad7c918: Trace view — the execution tree of a run, next to Steps and Code. Built
|
|
32
|
+
from the journal alone: a helper call opens into the helper's statements
|
|
33
|
+
and `step(...)` blocks (file named on the row), a loop into one group per
|
|
34
|
+
iteration (an iteration that ran nothing included), a block into its
|
|
35
|
+
envelope with tag and duration. Helper calls and passed iterations start
|
|
36
|
+
folded with a summary ("10 iterations · 1 failed"); the failed branch is
|
|
37
|
+
open down to the failing statement, which carries the error card.
|
|
38
|
+
Double-click opens the row's file — a helper too — at that line in Code.
|
|
39
|
+
Notes, log lines and verdicts sit under their statement; screenshots
|
|
40
|
+
open from the row, helper-frame captures included. The chosen view is
|
|
41
|
+
remembered across reloads (a debug session always opens in Code). The
|
|
42
|
+
inspector's flat event list is now the **Events** tab, so Trace names
|
|
43
|
+
one thing. The server keeps `loop:iteration` lines when it reads a
|
|
44
|
+
finished run's journal.
|
|
45
|
+
|
|
46
|
+
### Patch Changes
|
|
47
|
+
|
|
48
|
+
- e048334: The viewer's editor flags an undeclared external variable
|
|
49
|
+
(`lint:external-variable-undeclared`), the way `unotest-web lint` and the
|
|
50
|
+
pre-run lint already do: a bare `UPPER_SNAKE` identifier that no
|
|
51
|
+
`unotest/.env` / `.secrets` file of the active environment declares is an
|
|
52
|
+
error in the editor, naming the files searched. Protocol:
|
|
53
|
+
`DslValidateContext` gains `externalNames` / `externalSources`; the
|
|
54
|
+
viewer supplies them from the active target + environment's layer files
|
|
55
|
+
(the same files the variables panel shows) and `@unotest/web`'s language
|
|
56
|
+
service turns them into the linter's lookup.
|
|
57
|
+
- dcf4c9e: Viewer editor: lint markers appear as soon as a file opens (or the page
|
|
58
|
+
reloads), not only after the first keystroke — the editor validates the
|
|
59
|
+
source it mounted with instead of waiting for a change event that a
|
|
60
|
+
reopened tab never fires.
|
|
61
|
+
- 9ae6d59: A scenario that finished in the same instant the viewer looked at it is no
|
|
62
|
+
longer recorded as `interrupted` with a finish an hour before its start.
|
|
63
|
+
The runner ends a run by appending `run:finished` and then backdating the
|
|
64
|
+
heartbeat; the viewer read those two files in the opposite order, so a
|
|
65
|
+
steps snapshot taken a few milliseconds early could meet the backdated
|
|
66
|
+
heartbeat, and the provisional verdict stuck in the run index while the
|
|
67
|
+
collection reported the scenario passed. The heartbeat is read first now.
|
|
68
|
+
A viewer restart (which rebuilds the index from disk) already corrected
|
|
69
|
+
such records; runs indexed live are right the first time.
|
|
70
|
+
- 13a2d51: Viewer, Home tab: the tile of a scenario that is running now breathes
|
|
71
|
+
through colour and shadow only — the scale pulse is gone. It moved the
|
|
72
|
+
tile's box every frame, so an automation driver never saw the tile as
|
|
73
|
+
stable and a click on it waited out its timeout. A tile that never ran
|
|
74
|
+
no longer carries `data-age="fresh"`: it has no age, so the attribute is
|
|
75
|
+
absent.
|
|
76
|
+
- 91fb562: Viewer, Home tab: clicking a scenario tile opens the scenario's LAST RUN —
|
|
77
|
+
the run whose verdict the tile's colour is showing — instead of the test
|
|
78
|
+
file. A tile that has never run still opens the test (there is no run to
|
|
79
|
+
open), and so does every tile in schedule mode, where the schedule is
|
|
80
|
+
edited from the test. The legend now reads "hover for history · click to
|
|
81
|
+
open the last run".
|
|
82
|
+
- dcf4c9e: Viewer, Home tab: the tile field no longer refits itself in a loop. The
|
|
83
|
+
header and legend take the grid's width; when the legend wrapped at one
|
|
84
|
+
width and not at the next, the field's height changed, the fit followed,
|
|
85
|
+
the width changed back — at 60 fps every tile's box moved every frame,
|
|
86
|
+
and an automation click on ANY tile ("element is not stable") waited out
|
|
87
|
+
its timeout unless forced. Header and legend now never wrap (they grow
|
|
88
|
+
past the grid instead), so the fit converges and tiles stay put. A run
|
|
89
|
+
opened from a tile is titled by its scenario, like one opened from the
|
|
90
|
+
Runs tree, instead of by its run id.
|
|
91
|
+
- Updated dependencies [b8e105b]
|
|
92
|
+
- Updated dependencies [b8e105b]
|
|
93
|
+
- Updated dependencies [9ae6d59]
|
|
94
|
+
- Updated dependencies [56784b3]
|
|
95
|
+
- Updated dependencies [e048334]
|
|
96
|
+
- Updated dependencies [100ab9d]
|
|
97
|
+
- Updated dependencies [100ab9d]
|
|
98
|
+
- Updated dependencies [100ab9d]
|
|
99
|
+
- Updated dependencies [ad7c918]
|
|
100
|
+
- Updated dependencies [ad7c918]
|
|
101
|
+
- Updated dependencies [dcf4c9e]
|
|
102
|
+
- @unotest/core@0.31.0
|
|
103
|
+
- @unotest/protocol@0.31.0
|
|
104
|
+
- @unotest/dsl@0.31.0
|
|
105
|
+
|
|
3
106
|
## [0.30.0] - 2026-09-03
|
|
4
107
|
|
|
5
108
|
### Minor Changes
|