@scenetest/vite-plugin 0.6.0 → 0.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAgpB9C"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA+5B9C"}
package/dist/dashboard.js CHANGED
@@ -35,12 +35,15 @@ export function generateDashboardHtml() {
35
35
  }
36
36
 
37
37
  header {
38
+ position: sticky;
39
+ top: 0;
38
40
  padding: 16px 24px;
39
41
  border-bottom: 1px solid var(--border);
40
42
  display: flex;
41
43
  align-items: center;
42
44
  gap: 16px;
43
45
  background: var(--bg2);
46
+ z-index: 100;
44
47
  }
45
48
 
46
49
  header h1 {
@@ -91,6 +94,116 @@ export function generateDashboardHtml() {
91
94
  .connection.connected { background: var(--green); }
92
95
  .connection.disconnected { background: var(--red); }
93
96
 
97
+ /* ─── Replay buttons ─────────────────────────────── */
98
+ .replay-btn {
99
+ display: inline-flex;
100
+ align-items: center;
101
+ gap: 5px;
102
+ padding: 4px 12px;
103
+ border: 1px solid var(--border);
104
+ border-radius: 4px;
105
+ background: transparent;
106
+ color: var(--text2);
107
+ font-family: inherit;
108
+ font-size: 12px;
109
+ cursor: pointer;
110
+ transition: all 0.15s;
111
+ }
112
+
113
+ .replay-btn:hover {
114
+ background: rgba(59, 130, 246, 0.15);
115
+ border-color: var(--blue);
116
+ color: var(--blue);
117
+ }
118
+
119
+ .replay-btn:disabled {
120
+ opacity: 0.4;
121
+ cursor: not-allowed;
122
+ }
123
+
124
+ .replay-btn:disabled:hover {
125
+ background: transparent;
126
+ border-color: var(--border);
127
+ color: var(--text2);
128
+ }
129
+
130
+ .replay-btn .play-icon {
131
+ font-size: 10px;
132
+ }
133
+
134
+ .replay-all-btn {
135
+ margin-left: 12px;
136
+ }
137
+
138
+ .scene-replay-btn {
139
+ margin-left: auto;
140
+ }
141
+
142
+ .stop-btn, .pause-btn {
143
+ display: none;
144
+ align-items: center;
145
+ gap: 5px;
146
+ padding: 4px 12px;
147
+ border: 1px solid var(--border);
148
+ border-radius: 4px;
149
+ background: transparent;
150
+ color: var(--text2);
151
+ font-family: inherit;
152
+ font-size: 12px;
153
+ cursor: pointer;
154
+ transition: all 0.15s;
155
+ }
156
+
157
+ .stop-btn:hover {
158
+ background: rgba(239, 68, 68, 0.15);
159
+ border-color: var(--red);
160
+ color: var(--red);
161
+ }
162
+
163
+ .pause-btn:hover {
164
+ background: rgba(245, 158, 11, 0.15);
165
+ border-color: var(--amber);
166
+ color: var(--amber);
167
+ }
168
+
169
+ .stop-btn .btn-icon, .pause-btn .btn-icon {
170
+ font-size: 10px;
171
+ }
172
+
173
+ .running .stop-btn, .running .pause-btn {
174
+ display: inline-flex;
175
+ }
176
+
177
+ /* ─── Progress bar ───────────────────────────────── */
178
+ .progress-bar {
179
+ position: absolute;
180
+ bottom: 0;
181
+ left: 0;
182
+ right: 0;
183
+ height: 3px;
184
+ background: var(--border);
185
+ display: none;
186
+ }
187
+
188
+ .progress-bar.visible {
189
+ display: block;
190
+ }
191
+
192
+ .progress-bar .progress-fill {
193
+ height: 100%;
194
+ background: var(--blue);
195
+ transition: width 0.3s ease;
196
+ width: 0%;
197
+ }
198
+
199
+ .progress-bar.done .progress-fill {
200
+ background: var(--green);
201
+ }
202
+
203
+ .progress-bar.has-failures .progress-fill {
204
+ background: var(--red);
205
+ }
206
+
94
207
  main {
95
208
  padding: 24px;
96
209
  }
@@ -146,12 +259,44 @@ export function generateDashboardHtml() {
146
259
  font-size: 12px;
147
260
  }
148
261
 
262
+ /* ─── Scene errors ────────────────────────────────── */
263
+ .scene-errors {
264
+ border: 1px solid var(--border);
265
+ border-top: none;
266
+ background: rgba(239, 68, 68, 0.05);
267
+ padding: 8px 14px;
268
+ display: flex;
269
+ flex-direction: column;
270
+ gap: 4px;
271
+ }
272
+
273
+ .scene-error-line {
274
+ font-size: 12px;
275
+ color: var(--red);
276
+ display: flex;
277
+ align-items: baseline;
278
+ gap: 8px;
279
+ line-height: 1.4;
280
+ }
281
+
282
+ .scene-error-line .error-icon {
283
+ flex-shrink: 0;
284
+ font-size: 10px;
285
+ }
286
+
287
+ .scene-error-line .error-action {
288
+ color: var(--text2);
289
+ flex-shrink: 0;
290
+ }
291
+
292
+ .scene-error-line .error-msg {
293
+ word-break: break-word;
294
+ }
295
+
149
296
  /* ─── Swim lanes ──────────────────────────────────── */
150
297
  .swim-lanes {
151
298
  border: 1px solid var(--border);
152
299
  border-top: none;
153
- border-radius: 0 0 8px 8px;
154
- overflow: hidden;
155
300
  }
156
301
 
157
302
  .lane {
@@ -183,7 +328,6 @@ export function generateDashboardHtml() {
183
328
  position: relative;
184
329
  padding: 6px 8px;
185
330
  min-height: 48px;
186
- overflow: hidden;
187
331
  }
188
332
 
189
333
  .action-bar {
@@ -242,8 +386,9 @@ export function generateDashboardHtml() {
242
386
  padding: 4px 8px;
243
387
  font-size: 11px;
244
388
  white-space: nowrap;
245
- z-index: 10;
389
+ z-index: 50;
246
390
  color: var(--text);
391
+ pointer-events: none;
247
392
  }
248
393
 
249
394
  /* ─── Assertion markers ───────────────────────────── */
@@ -344,6 +489,15 @@ export function generateDashboardHtml() {
344
489
  <body>
345
490
  <header>
346
491
  <h1><span class="logo">S</span> Scenetest Dashboard</h1>
492
+ <button class="replay-btn replay-all-btn" id="replay-all" onclick="replayAll()">
493
+ <span class="play-icon">&#9654;</span> Replay All
494
+ </button>
495
+ <button class="pause-btn" id="pause-btn" onclick="togglePause()">
496
+ <span class="btn-icon" id="pause-icon">&#9646;&#9646;</span> <span id="pause-label">Pause</span>
497
+ </button>
498
+ <button class="stop-btn" id="stop-btn" onclick="stopRun()">
499
+ <span class="btn-icon">&#9632;</span> Stop
500
+ </button>
347
501
  <div class="status-bar">
348
502
  <div class="stat scenes">
349
503
  <span class="label">Scenes:</span>
@@ -363,6 +517,7 @@ export function generateDashboardHtml() {
363
517
  </div>
364
518
  <div class="connection" id="connection" title="SSE connection"></div>
365
519
  </div>
520
+ <div class="progress-bar" id="progress-bar"><div class="progress-fill" id="progress-fill"></div></div>
366
521
  </header>
367
522
 
368
523
  <main id="main">
@@ -420,6 +575,7 @@ export function generateDashboardHtml() {
420
575
  state.sceneCount = event.sceneCount
421
576
  document.getElementById('waiting').style.display = 'none'
422
577
  document.getElementById('scenes').innerHTML = ''
578
+ setRunning(true)
423
579
  updateStats()
424
580
  break
425
581
 
@@ -441,6 +597,9 @@ export function generateDashboardHtml() {
441
597
  state.scenes.push(scene)
442
598
  state.currentScene = scene
443
599
  renderScene(scene)
600
+ // Auto-scroll to keep the running scene visible
601
+ var sceneEl = document.getElementById('scene-' + (state.scenes.length - 1))
602
+ if (sceneEl) sceneEl.scrollIntoView({ behavior: 'smooth', block: 'start' })
444
603
  break
445
604
  }
446
605
 
@@ -519,6 +678,7 @@ export function generateDashboardHtml() {
519
678
  state.passCount = event.summary?.assertions?.passed || state.passCount
520
679
  state.failCount = event.summary?.assertions?.failed || state.failCount
521
680
  document.getElementById('elapsed').textContent = event.duration + 'ms'
681
+ setRunning(false)
522
682
  updateStats()
523
683
  break
524
684
  }
@@ -536,6 +696,17 @@ export function generateDashboardHtml() {
536
696
  document.getElementById('elapsed').textContent =
537
697
  (Date.now() - state.runStartTime) + 'ms'
538
698
  }
699
+
700
+ // Progress bar
701
+ var bar = document.getElementById('progress-bar')
702
+ var fill = document.getElementById('progress-fill')
703
+ if (state.sceneCount > 0) {
704
+ bar.classList.add('visible')
705
+ var pct = Math.round((completed / state.sceneCount) * 100)
706
+ fill.style.width = pct + '%'
707
+ bar.classList.toggle('done', completed === state.sceneCount && state.failCount === 0)
708
+ bar.classList.toggle('has-failures', state.failCount > 0)
709
+ }
539
710
  }
540
711
 
541
712
  // Update elapsed timer
@@ -630,20 +801,59 @@ export function generateDashboardHtml() {
630
801
  '</div>'
631
802
  }
632
803
 
804
+ const replayDisabled = state.scenes.some(s => s.status === 'running') ? ' disabled' : ''
805
+ const replayFileAttr = scene.file ? ' data-file="' + escapeHtml(scene.file) + '"' : ''
806
+
807
+ // Collect errors from failed actions and scene-level error
808
+ var errors = []
809
+ for (var _a of scene.actions.values()) {
810
+ for (var _act of _a) {
811
+ if (_act.error) {
812
+ errors.push({ action: _act.action, target: _act.target, msg: _act.error })
813
+ }
814
+ }
815
+ }
816
+ if (scene.error && !errors.some(function(e) { return e.msg === scene.error })) {
817
+ errors.push({ action: null, target: null, msg: scene.error })
818
+ }
819
+
820
+ var errorsHtml = ''
821
+ if (errors.length > 0) {
822
+ var lines = ''
823
+ for (var _e of errors) {
824
+ var actionLabel = _e.action
825
+ ? '<span class="error-action">' + escapeHtml(_e.action + (_e.target ? '(' + _e.target + ')' : '')) + '</span> '
826
+ : ''
827
+ lines += '<div class="scene-error-line">' +
828
+ '<span class="error-icon">\\u2717</span> ' +
829
+ actionLabel +
830
+ '<span class="error-msg">' + escapeHtml(_e.msg) + '</span>' +
831
+ '</div>'
832
+ }
833
+ errorsHtml = '<div class="scene-errors" style="border-radius: 0 0 8px 8px;">' + lines + '</div>'
834
+ }
835
+
836
+ var lanesRadius = errors.length > 0 ? '' : ' style="border-radius: 0 0 8px 8px;"'
837
+
633
838
  el.innerHTML =
634
839
  '<div class="scene-header">' +
635
840
  '<span class="icon" style="color:' + statusColor + '">' + statusIcon + '</span>' +
636
841
  '<span class="name">' + escapeHtml(scene.name) + '</span>' +
637
842
  '<span class="file">' + escapeHtml(scene.file || '') + '</span>' +
638
843
  '<span class="duration">' + durationStr + '</span>' +
844
+ '<button class="replay-btn scene-replay-btn"' + replayFileAttr + replayDisabled +
845
+ ' onclick="replayScene(this)">' +
846
+ '<span class="play-icon">&#9654;</span> Replay' +
847
+ '</button>' +
639
848
  '</div>' +
640
- '<div class="swim-lanes">' +
849
+ '<div class="swim-lanes"' + lanesRadius + '>' +
641
850
  '<div class="time-ruler">' +
642
851
  '<div class="lane-label" style="font-size:10px;color:var(--text2)">time</div>' +
643
852
  '<div class="ruler-track">' + rulerHtml + '</div>' +
644
853
  '</div>' +
645
854
  lanesHtml +
646
- '</div>'
855
+ '</div>' +
856
+ errorsHtml
647
857
  }
648
858
 
649
859
  function formatMs(ms) {
@@ -655,6 +865,67 @@ export function generateDashboardHtml() {
655
865
  if (!str) return ''
656
866
  return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;')
657
867
  }
868
+
869
+ // ─── Run controls ─────────────────────────────────
870
+ var isPaused = false
871
+
872
+ function setRunning(running) {
873
+ document.querySelectorAll('.replay-btn').forEach(function(btn) {
874
+ btn.disabled = running
875
+ })
876
+ if (running) {
877
+ document.querySelector('header').classList.add('running')
878
+ } else {
879
+ document.querySelector('header').classList.remove('running')
880
+ isPaused = false
881
+ updatePauseButton()
882
+ }
883
+ }
884
+
885
+ function updatePauseButton() {
886
+ document.getElementById('pause-icon').innerHTML = isPaused ? '&#9654;' : '&#9646;&#9646;'
887
+ document.getElementById('pause-label').textContent = isPaused ? 'Resume' : 'Pause'
888
+ }
889
+
890
+ function replayAll() {
891
+ setRunning(true)
892
+ fetch('/__scenetest/replay', {
893
+ method: 'POST',
894
+ headers: { 'Content-Type': 'application/json' },
895
+ body: '{}',
896
+ }).catch(function() {
897
+ setRunning(false)
898
+ })
899
+ }
900
+
901
+ function replayScene(btn) {
902
+ var file = btn.getAttribute('data-file')
903
+ if (!file) return
904
+ setRunning(true)
905
+ fetch('/__scenetest/replay', {
906
+ method: 'POST',
907
+ headers: { 'Content-Type': 'application/json' },
908
+ body: JSON.stringify({ file: file }),
909
+ }).catch(function() {
910
+ setRunning(false)
911
+ })
912
+ }
913
+
914
+ function stopRun() {
915
+ fetch('/__scenetest/stop', { method: 'POST' })
916
+ .then(function() { setRunning(false) })
917
+ .catch(function() { setRunning(false) })
918
+ }
919
+
920
+ function togglePause() {
921
+ fetch('/__scenetest/pause', { method: 'POST' })
922
+ .then(function(r) { return r.json() })
923
+ .then(function(data) {
924
+ isPaused = data.paused
925
+ updatePauseButton()
926
+ })
927
+ .catch(function() {})
928
+ }
658
929
  </script>
659
930
  </body>
660
931
  </html>`;
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA8oBD,CAAA;AACR,CAAC"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../src/dashboard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA65BD,CAAA;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAalD;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWvG;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAmIzG"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAelD;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWvG;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAWnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAgNzG"}
@@ -1,4 +1,6 @@
1
1
  import { AsyncLocalStorage } from 'async_hooks';
2
+ import { spawn } from 'child_process';
3
+ import path from 'path';
2
4
  import { RESOLVED_VIRTUAL_MODULE_ID } from './virtual-module.js';
3
5
  import { loadConfig } from './config.js';
4
6
  import { EventHub } from './event-hub.js';
@@ -51,6 +53,8 @@ export function failed(description, context) {
51
53
  */
52
54
  export function createScenetestMiddleware(server, root) {
53
55
  const eventHub = new EventHub();
56
+ let activeReplay = null;
57
+ let paused = false;
54
58
  return async (req, res, next) => {
55
59
  // ── Dashboard page ──────────────────────────────────────
56
60
  if (req.method === 'GET' && req.url === '/__scenetest/dashboard') {
@@ -86,6 +90,74 @@ export function createScenetestMiddleware(server, root) {
86
90
  res.end('{"ok":true}');
87
91
  return;
88
92
  }
93
+ // ── Replay endpoint ──────────────────────────────────────
94
+ if (req.method === 'POST' && req.url === '/__scenetest/replay') {
95
+ let body = '';
96
+ for await (const chunk of req) {
97
+ body += chunk;
98
+ }
99
+ let file;
100
+ try {
101
+ const parsed = JSON.parse(body);
102
+ file = parsed.file;
103
+ }
104
+ catch {
105
+ // No body or invalid JSON — replay all
106
+ }
107
+ // If a replay is already running, kill it first
108
+ if (activeReplay && activeReplay.exitCode === null) {
109
+ activeReplay.kill();
110
+ }
111
+ // Build the CLI args
112
+ const args = [];
113
+ if (file) {
114
+ // file is relative to scenetest/scenes/, resolve to full path
115
+ args.push(path.resolve(root, 'scenetest', 'scenes', file));
116
+ }
117
+ // Spawn the scenetest CLI as a child process
118
+ activeReplay = spawn('npx', ['scenetest', ...args], {
119
+ cwd: root,
120
+ stdio: 'ignore',
121
+ shell: true,
122
+ });
123
+ activeReplay.on('error', () => {
124
+ // Silently ignore spawn errors
125
+ });
126
+ paused = false;
127
+ res.statusCode = 200;
128
+ res.setHeader('Content-Type', 'application/json');
129
+ res.end(JSON.stringify({ ok: true }));
130
+ return;
131
+ }
132
+ // ── Stop running tests ──────────────────────────────────
133
+ if (req.method === 'POST' && req.url === '/__scenetest/stop') {
134
+ if (activeReplay && activeReplay.exitCode === null) {
135
+ activeReplay.kill();
136
+ activeReplay = null;
137
+ }
138
+ paused = false;
139
+ res.statusCode = 200;
140
+ res.setHeader('Content-Type', 'application/json');
141
+ res.end(JSON.stringify({ ok: true }));
142
+ return;
143
+ }
144
+ // ── Pause / resume running tests ────────────────────────
145
+ if (req.method === 'POST' && req.url === '/__scenetest/pause') {
146
+ if (activeReplay && activeReplay.exitCode === null && activeReplay.pid) {
147
+ if (paused) {
148
+ process.kill(activeReplay.pid, 'SIGCONT');
149
+ paused = false;
150
+ }
151
+ else {
152
+ process.kill(activeReplay.pid, 'SIGSTOP');
153
+ paused = true;
154
+ }
155
+ }
156
+ res.statusCode = 200;
157
+ res.setHeader('Content-Type', 'application/json');
158
+ res.end(JSON.stringify({ ok: true, paused }));
159
+ return;
160
+ }
89
161
  // ── Assertion RPC (existing) ────────────────────────────
90
162
  if (req.method !== 'POST' || req.url !== '/__scenetest/run') {
91
163
  return next();
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@scenetest/vite-plugin",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Vite plugin for scenetest - strips assertions in production, injects dev panel",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -40,9 +40,9 @@
40
40
  "@babel/traverse": "^7.24.0",
41
41
  "@babel/types": "^7.24.0",
42
42
  "magic-string": "^0.30.10",
43
- "@scenetest/checks": "0.6.0",
44
- "@scenetest/scenes-panel": "0.6.0",
45
- "@scenetest/checks-panel": "0.6.0"
43
+ "@scenetest/checks": "0.7.0",
44
+ "@scenetest/scenes-panel": "0.7.0",
45
+ "@scenetest/checks-panel": "0.7.0"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"