@opensip-cli/dashboard 0.1.10 → 0.1.12
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 +4 -2
- package/dist/client-bundle.generated.d.ts.map +1 -1
- package/dist/client-bundle.generated.js +1 -1
- package/dist/client-bundle.generated.js.map +1 -1
- package/dist/code-paths/graph-view-model.js +0 -1
- package/dist/code-paths/graph-view-model.js.map +1 -1
- package/dist/css/theme.js +1 -1
- package/dist/generator.d.ts +2 -0
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +10 -4
- package/dist/generator.js.map +1 -1
- package/dist/report-cup-icon.d.ts +17 -0
- package/dist/report-cup-icon.d.ts.map +1 -0
- package/dist/report-cup-icon.js +34 -0
- package/dist/report-cup-icon.js.map +1 -0
- package/dist/tool-tabs-registrations.js +10 -0
- package/dist/tool-tabs-registrations.js.map +1 -1
- package/package.json +3 -3
- package/dist/__tests__/catalog-provenance.test.d.ts +0 -11
- package/dist/__tests__/catalog-provenance.test.d.ts.map +0 -1
- package/dist/__tests__/catalog-provenance.test.js +0 -112
- package/dist/__tests__/catalog-provenance.test.js.map +0 -1
- package/dist/__tests__/coupling-attribution.test.d.ts +0 -9
- package/dist/__tests__/coupling-attribution.test.d.ts.map +0 -1
- package/dist/__tests__/coupling-attribution.test.js +0 -95
- package/dist/__tests__/coupling-attribution.test.js.map +0 -1
- package/dist/__tests__/dashboard-bundle-weight.test.d.ts +0 -23
- package/dist/__tests__/dashboard-bundle-weight.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-bundle-weight.test.js +0 -80
- package/dist/__tests__/dashboard-bundle-weight.test.js.map +0 -1
- package/dist/__tests__/dashboard-cell-containment.test.d.ts +0 -2
- package/dist/__tests__/dashboard-cell-containment.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-cell-containment.test.js +0 -52
- package/dist/__tests__/dashboard-cell-containment.test.js.map +0 -1
- package/dist/__tests__/dashboard-cytoscape-vendor.test.d.ts +0 -10
- package/dist/__tests__/dashboard-cytoscape-vendor.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-cytoscape-vendor.test.js +0 -40
- package/dist/__tests__/dashboard-cytoscape-vendor.test.js.map +0 -1
- package/dist/__tests__/dashboard-editor-link.test.d.ts +0 -14
- package/dist/__tests__/dashboard-editor-link.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-editor-link.test.js +0 -87
- package/dist/__tests__/dashboard-editor-link.test.js.map +0 -1
- package/dist/__tests__/dashboard-el.test.d.ts +0 -18
- package/dist/__tests__/dashboard-el.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-el.test.js +0 -90
- package/dist/__tests__/dashboard-el.test.js.map +0 -1
- package/dist/__tests__/dashboard-filters.test.d.ts +0 -9
- package/dist/__tests__/dashboard-filters.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-filters.test.js +0 -87
- package/dist/__tests__/dashboard-filters.test.js.map +0 -1
- package/dist/__tests__/dashboard-function-card-singleton.test.d.ts +0 -9
- package/dist/__tests__/dashboard-function-card-singleton.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-function-card-singleton.test.js +0 -75
- package/dist/__tests__/dashboard-function-card-singleton.test.js.map +0 -1
- package/dist/__tests__/dashboard-function-card.test.d.ts +0 -10
- package/dist/__tests__/dashboard-function-card.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-function-card.test.js +0 -439
- package/dist/__tests__/dashboard-function-card.test.js.map +0 -1
- package/dist/__tests__/dashboard-function-row.test.d.ts +0 -11
- package/dist/__tests__/dashboard-function-row.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-function-row.test.js +0 -102
- package/dist/__tests__/dashboard-function-row.test.js.map +0 -1
- package/dist/__tests__/dashboard-generator-graph-catalog.test.d.ts +0 -9
- package/dist/__tests__/dashboard-generator-graph-catalog.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-generator-graph-catalog.test.js +0 -77
- package/dist/__tests__/dashboard-generator-graph-catalog.test.js.map +0 -1
- package/dist/__tests__/dashboard-graph-offline.integration.test.d.ts +0 -13
- package/dist/__tests__/dashboard-graph-offline.integration.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-graph-offline.integration.test.js +0 -57
- package/dist/__tests__/dashboard-graph-offline.integration.test.js.map +0 -1
- package/dist/__tests__/dashboard-graph-scc.test.d.ts +0 -17
- package/dist/__tests__/dashboard-graph-scc.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-graph-scc.test.js +0 -89
- package/dist/__tests__/dashboard-graph-scc.test.js.map +0 -1
- package/dist/__tests__/dashboard-graph-view-model.test.d.ts +0 -12
- package/dist/__tests__/dashboard-graph-view-model.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-graph-view-model.test.js +0 -331
- package/dist/__tests__/dashboard-graph-view-model.test.js.map +0 -1
- package/dist/__tests__/dashboard-help-drawer.test.d.ts +0 -9
- package/dist/__tests__/dashboard-help-drawer.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-help-drawer.test.js +0 -95
- package/dist/__tests__/dashboard-help-drawer.test.js.map +0 -1
- package/dist/__tests__/dashboard-html.test.d.ts +0 -2
- package/dist/__tests__/dashboard-html.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-html.test.js +0 -169
- package/dist/__tests__/dashboard-html.test.js.map +0 -1
- package/dist/__tests__/dashboard-indexes.test.d.ts +0 -11
- package/dist/__tests__/dashboard-indexes.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-indexes.test.js +0 -214
- package/dist/__tests__/dashboard-indexes.test.js.map +0 -1
- package/dist/__tests__/dashboard-pagination.test.d.ts +0 -15
- package/dist/__tests__/dashboard-pagination.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-pagination.test.js +0 -140
- package/dist/__tests__/dashboard-pagination.test.js.map +0 -1
- package/dist/__tests__/dashboard-path-utils.test.d.ts +0 -13
- package/dist/__tests__/dashboard-path-utils.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-path-utils.test.js +0 -62
- package/dist/__tests__/dashboard-path-utils.test.js.map +0 -1
- package/dist/__tests__/dashboard-search.test.d.ts +0 -10
- package/dist/__tests__/dashboard-search.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-search.test.js +0 -52
- package/dist/__tests__/dashboard-search.test.js.map +0 -1
- package/dist/__tests__/dashboard-sessions.test.d.ts +0 -14
- package/dist/__tests__/dashboard-sessions.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-sessions.test.js +0 -332
- package/dist/__tests__/dashboard-sessions.test.js.map +0 -1
- package/dist/__tests__/dashboard-trace.test.d.ts +0 -16
- package/dist/__tests__/dashboard-trace.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-trace.test.js +0 -170
- package/dist/__tests__/dashboard-trace.test.js.map +0 -1
- package/dist/__tests__/dashboard-validation.integration.test.d.ts +0 -14
- package/dist/__tests__/dashboard-validation.integration.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-validation.integration.test.js +0 -221
- package/dist/__tests__/dashboard-validation.integration.test.js.map +0 -1
- package/dist/__tests__/dashboard-view-conformance.test.d.ts +0 -12
- package/dist/__tests__/dashboard-view-conformance.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-view-conformance.test.js +0 -52
- package/dist/__tests__/dashboard-view-conformance.test.js.map +0 -1
- package/dist/__tests__/dashboard-view-coupling.test.d.ts +0 -7
- package/dist/__tests__/dashboard-view-coupling.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-view-coupling.test.js +0 -360
- package/dist/__tests__/dashboard-view-coupling.test.js.map +0 -1
- package/dist/__tests__/dashboard-view-distribution.test.d.ts +0 -10
- package/dist/__tests__/dashboard-view-distribution.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-view-distribution.test.js +0 -249
- package/dist/__tests__/dashboard-view-distribution.test.js.map +0 -1
- package/dist/__tests__/dashboard-view-graph.test.d.ts +0 -13
- package/dist/__tests__/dashboard-view-graph.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-view-graph.test.js +0 -299
- package/dist/__tests__/dashboard-view-graph.test.js.map +0 -1
- package/dist/__tests__/dashboard-view-template.test.d.ts +0 -20
- package/dist/__tests__/dashboard-view-template.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard-view-template.test.js +0 -206
- package/dist/__tests__/dashboard-view-template.test.js.map +0 -1
- package/dist/__tests__/dashboard.test.d.ts +0 -2
- package/dist/__tests__/dashboard.test.d.ts.map +0 -1
- package/dist/__tests__/dashboard.test.js +0 -129
- package/dist/__tests__/dashboard.test.js.map +0 -1
- package/dist/__tests__/graph-tab.test.d.ts +0 -10
- package/dist/__tests__/graph-tab.test.d.ts.map +0 -1
- package/dist/__tests__/graph-tab.test.js +0 -78
- package/dist/__tests__/graph-tab.test.js.map +0 -1
- package/dist/client/el.d.ts +0 -17
- package/dist/client/el.d.ts.map +0 -1
- package/dist/client/el.js +0 -36
- package/dist/client/el.js.map +0 -1
- package/dist/code-paths/__tests__/views-registry.test.d.ts +0 -18
- package/dist/code-paths/__tests__/views-registry.test.d.ts.map +0 -1
- package/dist/code-paths/__tests__/views-registry.test.js +0 -41
- package/dist/code-paths/__tests__/views-registry.test.js.map +0 -1
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
// @fitness-ignore-file no-stub-tests -- expect(true).toBe(true) is used as a deliberate "skip-marker" when the dashboard report isn't present; test bodies are gated by readReportOrSkip()
|
|
2
|
-
/// <reference lib="dom" />
|
|
3
|
-
/**
|
|
4
|
-
* @vitest-environment jsdom
|
|
5
|
-
*
|
|
6
|
-
* Phase V — End-to-end validation against OpenSIP CLI's own
|
|
7
|
-
* generated dashboard. Reads the live latest.html (produced by the
|
|
8
|
-
* preceding `pnpm dashboard` run during workspace test bootstrap)
|
|
9
|
-
* and exercises every view + the Function Card flow.
|
|
10
|
-
*
|
|
11
|
-
* Skipped when latest.html is missing or contains no graph catalog
|
|
12
|
-
* (e.g. fresh checkout without a dogfood run). The harness can re-
|
|
13
|
-
* run the dashboard CLI separately and re-execute this test.
|
|
14
|
-
*/
|
|
15
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
16
|
-
import { dirname, join } from 'node:path';
|
|
17
|
-
import { fileURLToPath } from 'node:url';
|
|
18
|
-
import { beforeAll, beforeEach, describe, expect, it } from 'vitest';
|
|
19
|
-
const HERE = dirname(fileURLToPath(import.meta.url));
|
|
20
|
-
// HERE is packages/contracts/src/__tests__; repo root is four levels up.
|
|
21
|
-
const REPO_ROOT = join(HERE, '..', '..', '..', '..');
|
|
22
|
-
const REPORT = join(REPO_ROOT, 'opensip-cli', '.runtime', 'reports', 'latest.html');
|
|
23
|
-
function readReportOrSkip() {
|
|
24
|
-
if (!existsSync(REPORT))
|
|
25
|
-
return null;
|
|
26
|
-
const html = readFileSync(REPORT, 'utf8');
|
|
27
|
-
if (!html.includes('id="graph-catalog"'))
|
|
28
|
-
return null;
|
|
29
|
-
return html;
|
|
30
|
-
}
|
|
31
|
-
function bootDashboard(html) {
|
|
32
|
-
// Render the full HTML into the jsdom document, then evaluate the
|
|
33
|
-
// inlined script bodies in a single sandbox. Returns the local
|
|
34
|
-
// bindings (views, activateView, openFunctionCard) — they're const
|
|
35
|
-
// so they never reach globalThis.
|
|
36
|
-
//
|
|
37
|
-
// Booted ONCE per file (see beforeAll): the live report embeds the full
|
|
38
|
-
// graph catalog (tens of MB), and each boot parses it, builds indexes, and
|
|
39
|
-
// attaches document-level listeners that capture that state. Re-booting per
|
|
40
|
-
// test never releases the prior boots' listeners/closures, so the worker
|
|
41
|
-
// heap climbs with each `it` and eventually OOMs. One boot keeps it flat.
|
|
42
|
-
document.documentElement.innerHTML = html
|
|
43
|
-
.replace(/^[\s\S]*?<html[^>]*>/i, '')
|
|
44
|
-
.replace(/<\/html>[\s\S]*$/i, '');
|
|
45
|
-
// eslint-disable-next-line unicorn/prefer-spread -- NodeListOf<HTMLScriptElement> spread requires lib.dom.iterable.
|
|
46
|
-
const scripts = Array.from(document.querySelectorAll('script'));
|
|
47
|
-
let combined = '';
|
|
48
|
-
for (const s of scripts) {
|
|
49
|
-
const type = s.getAttribute('type');
|
|
50
|
-
if (type && type !== 'text/javascript' && type !== '')
|
|
51
|
-
continue;
|
|
52
|
-
const src = s.textContent ?? '';
|
|
53
|
-
if (src.length === 0)
|
|
54
|
-
continue;
|
|
55
|
-
combined += '\n' + src;
|
|
56
|
-
}
|
|
57
|
-
combined += '\nreturn { views, activateView, openFunctionCard, openCodePathsSession };';
|
|
58
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval, sonarjs/code-eval -- Trusted source: our own emitted HTML.
|
|
59
|
-
return new Function(combined).call(globalThis);
|
|
60
|
-
}
|
|
61
|
-
function activateExploreSubtab() {
|
|
62
|
-
const exploreTab = document.querySelector('#panel-code-paths .subtab[data-subtab="explore"]');
|
|
63
|
-
if (exploreTab)
|
|
64
|
-
exploreTab.click();
|
|
65
|
-
}
|
|
66
|
-
describe.runIf(existsSync(REPORT))('Phase V — dashboard end-to-end validation', () => {
|
|
67
|
-
// The report embeds the full graph catalog (tens of MB). Boot the dashboard
|
|
68
|
-
// exactly ONCE for the whole file (see bootDashboard) and share the result —
|
|
69
|
-
// re-booting per test accumulated listeners/closures and OOM'd the worker.
|
|
70
|
-
let env = null;
|
|
71
|
-
let reportHtml = null;
|
|
72
|
-
beforeAll(() => {
|
|
73
|
-
reportHtml = readReportOrSkip();
|
|
74
|
-
if (reportHtml)
|
|
75
|
-
env = bootDashboard(reportHtml);
|
|
76
|
-
});
|
|
77
|
-
// Strip transient overlays/drawers between tests so the single shared boot
|
|
78
|
-
// doesn't leak UI state across `it` blocks.
|
|
79
|
-
beforeEach(() => {
|
|
80
|
-
if (!env)
|
|
81
|
-
return;
|
|
82
|
-
for (const sel of ['.function-card-overlay', '.help-drawer-overlay', '.help-drawer']) {
|
|
83
|
-
for (const node of document.querySelectorAll(sel))
|
|
84
|
-
node.remove();
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
it('latest.html embeds the graph catalog', () => {
|
|
88
|
-
if (!reportHtml) {
|
|
89
|
-
expect(true).toBe(true);
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
expect(reportHtml).toContain('id="graph-catalog"');
|
|
93
|
-
});
|
|
94
|
-
it('boots without throwing and registers the 3 restructured Code Paths views', () => {
|
|
95
|
-
if (!env) {
|
|
96
|
-
expect(true).toBe(true);
|
|
97
|
-
return;
|
|
98
|
-
}
|
|
99
|
-
expect(env.views).toBeDefined();
|
|
100
|
-
// The restructured explore set: graph (node-link, with the SCC cycle
|
|
101
|
-
// highlight fold) / coupling / distribution. The single-metric views
|
|
102
|
-
// (hot/big/wide/untested) and the standalone SCCs view were dropped
|
|
103
|
-
// once their signal moved into the engine gate rules; the standalone
|
|
104
|
-
// Search subtab was folded into the Functions (distribution) view.
|
|
105
|
-
expect(env.views.length).toBe(3);
|
|
106
|
-
expect(new Set(env.views.map((v) => v.id))).toEqual(new Set(['graph', 'coupling', 'distribution']));
|
|
107
|
-
});
|
|
108
|
-
it('Code Paths panel hosts Sessions and Explore subtabs', () => {
|
|
109
|
-
if (!env) {
|
|
110
|
-
expect(true).toBe(true);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
expect(document.querySelector('#panel-code-paths-sessions')).not.toBeNull();
|
|
114
|
-
expect(document.querySelector('#panel-code-paths-explore')).not.toBeNull();
|
|
115
|
-
expect(document.querySelector('#panel-code-paths .subtab[data-subtab="sessions"]')).not.toBeNull();
|
|
116
|
-
expect(document.querySelector('#panel-code-paths .subtab[data-subtab="explore"]')).not.toBeNull();
|
|
117
|
-
});
|
|
118
|
-
it('renders the name-filter search input inside the Functions (distribution) view', () => {
|
|
119
|
-
if (!env) {
|
|
120
|
-
expect(true).toBe(true);
|
|
121
|
-
return;
|
|
122
|
-
}
|
|
123
|
-
activateExploreSubtab();
|
|
124
|
-
env.activateView('distribution');
|
|
125
|
-
const input = document.querySelector('#code-paths-view-distribution #code-paths-search-distribution');
|
|
126
|
-
expect(input).not.toBeNull();
|
|
127
|
-
// The standalone Search view is gone — no #code-paths-view-search container.
|
|
128
|
-
expect(document.querySelector('#code-paths-view-search')).toBeNull();
|
|
129
|
-
});
|
|
130
|
-
it('every Explore view container exists and the active one renders something', () => {
|
|
131
|
-
if (!env) {
|
|
132
|
-
expect(true).toBe(true);
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
activateExploreSubtab();
|
|
136
|
-
for (const id of ['graph', 'coupling', 'distribution']) {
|
|
137
|
-
const c = document.querySelector('#code-paths-view-' + id);
|
|
138
|
-
expect(c).not.toBeNull();
|
|
139
|
-
}
|
|
140
|
-
const active = document.querySelector('.code-paths-view.active');
|
|
141
|
-
expect(active).not.toBeNull();
|
|
142
|
-
const hasRows = active.querySelector('[data-body-hash]');
|
|
143
|
-
const hasEmpty = active.querySelector('.empty');
|
|
144
|
-
expect(Boolean(hasRows) || Boolean(hasEmpty)).toBe(true);
|
|
145
|
-
});
|
|
146
|
-
it('Function Card overlay opens for the first row of the distribution view', () => {
|
|
147
|
-
if (!env) {
|
|
148
|
-
expect(true).toBe(true);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
activateExploreSubtab();
|
|
152
|
-
env.activateView('distribution');
|
|
153
|
-
const firstRow = document.querySelector('#code-paths-view-distribution [data-body-hash]');
|
|
154
|
-
if (!firstRow) {
|
|
155
|
-
expect(true).toBe(true);
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
env.openFunctionCard(firstRow.dataset.bodyHash);
|
|
159
|
-
const overlays = document.querySelectorAll('.function-card-overlay');
|
|
160
|
-
expect(overlays.length).toBe(1);
|
|
161
|
-
});
|
|
162
|
-
it('typing into the Functions name filter re-filters the table in place', () => {
|
|
163
|
-
if (!env) {
|
|
164
|
-
expect(true).toBe(true);
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
activateExploreSubtab();
|
|
168
|
-
env.activateView('distribution');
|
|
169
|
-
const view = document.querySelector('#code-paths-view-distribution');
|
|
170
|
-
const allRowsBefore = view.querySelectorAll('[data-body-hash]').length;
|
|
171
|
-
const input = view.querySelector('#code-paths-search-distribution');
|
|
172
|
-
// A query that should match nothing collapses to the empty state.
|
|
173
|
-
input.value = 'zzz_no_such_function_xyzzy';
|
|
174
|
-
input.dispatchEvent(new Event('input', { bubbles: true }));
|
|
175
|
-
const afterNoMatch = view.querySelectorAll('[data-body-hash]').length;
|
|
176
|
-
const hasEmpty = view.querySelector('.empty');
|
|
177
|
-
expect(afterNoMatch === 0 || Boolean(hasEmpty)).toBe(true);
|
|
178
|
-
// Clearing the query restores the full distribution.
|
|
179
|
-
input.value = '';
|
|
180
|
-
input.dispatchEvent(new Event('input', { bubbles: true }));
|
|
181
|
-
const afterClear = view.querySelectorAll('[data-body-hash]').length;
|
|
182
|
-
expect(afterClear).toBe(allRowsBefore);
|
|
183
|
-
});
|
|
184
|
-
it('the active view section heading exposes an info button that opens the help drawer', () => {
|
|
185
|
-
if (!env) {
|
|
186
|
-
expect(true).toBe(true);
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
activateExploreSubtab();
|
|
190
|
-
env.activateView('distribution');
|
|
191
|
-
const info = document.querySelector('#code-paths-view-distribution .section-info');
|
|
192
|
-
expect(info).not.toBeNull();
|
|
193
|
-
info.click();
|
|
194
|
-
const drawer = document.querySelector('.help-drawer');
|
|
195
|
-
expect(drawer).not.toBeNull();
|
|
196
|
-
expect(drawer.querySelector('h3').textContent).toBe('Functions (distribution)');
|
|
197
|
-
// Close.
|
|
198
|
-
document.querySelector('.help-drawer-close').click();
|
|
199
|
-
expect(document.querySelector('.help-drawer-overlay')).toBeNull();
|
|
200
|
-
});
|
|
201
|
-
it('openCodePathsSession switches to Code Paths and selects the session row', () => {
|
|
202
|
-
if (!env) {
|
|
203
|
-
expect(true).toBe(true);
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
const firstGraphRow = document.querySelector('#panel-code-paths-sessions tr[data-session-id]');
|
|
207
|
-
if (!firstGraphRow) {
|
|
208
|
-
expect(true).toBe(true);
|
|
209
|
-
return;
|
|
210
|
-
} // No graph sessions yet.
|
|
211
|
-
const sessionId = firstGraphRow.dataset.sessionId;
|
|
212
|
-
env.openCodePathsSession(sessionId);
|
|
213
|
-
const codePathsTab = document.querySelector('.tab[data-tab="code-paths"]');
|
|
214
|
-
expect(codePathsTab.classList.contains('active')).toBe(true);
|
|
215
|
-
expect(document.querySelector('#panel-code-paths-sessions').classList.contains('active')).toBe(true);
|
|
216
|
-
const selected = document.querySelector('#panel-code-paths-sessions tr.selected');
|
|
217
|
-
expect(selected).not.toBeNull();
|
|
218
|
-
expect(selected.dataset.sessionId).toBe(sessionId);
|
|
219
|
-
});
|
|
220
|
-
});
|
|
221
|
-
//# sourceMappingURL=dashboard-validation.integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-validation.integration.test.js","sourceRoot":"","sources":["../../src/__tests__/dashboard-validation.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @vitest-environment jsdom
|
|
3
|
-
*
|
|
4
|
-
* View conformance — §10.1 invariant asserted at runtime.
|
|
5
|
-
*
|
|
6
|
-
* Every registered View must have:
|
|
7
|
-
* - id ∈ {graph, coupling, distribution}
|
|
8
|
-
* - label: non-empty string
|
|
9
|
-
* - render: a function
|
|
10
|
-
*/
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=dashboard-view-conformance.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-view-conformance.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/dashboard-view-conformance.test.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
/**
|
|
3
|
-
* @vitest-environment jsdom
|
|
4
|
-
*
|
|
5
|
-
* View conformance — §10.1 invariant asserted at runtime.
|
|
6
|
-
*
|
|
7
|
-
* Every registered View must have:
|
|
8
|
-
* - id ∈ {graph, coupling, distribution}
|
|
9
|
-
* - label: non-empty string
|
|
10
|
-
* - render: a function
|
|
11
|
-
*/
|
|
12
|
-
import { describe, expect, it } from 'vitest';
|
|
13
|
-
import { DASHBOARD_CLIENT_BUNDLE } from '../client-bundle.generated.js';
|
|
14
|
-
const expectedIds = new Set(['graph', 'coupling', 'distribution']);
|
|
15
|
-
function loadViews() {
|
|
16
|
-
// The whole Code Paths panel + its three views now live in the typed client
|
|
17
|
-
// bundle (L4): loading the bundle registers coupling / distribution / graph
|
|
18
|
-
// into the bundle's `views` global at IIFE eval. Declare the page globals the
|
|
19
|
-
// bundle reads at load.
|
|
20
|
-
const head = `
|
|
21
|
-
var sessions = [];
|
|
22
|
-
var EDITOR_PROTOCOL = null;
|
|
23
|
-
`;
|
|
24
|
-
const tail = `
|
|
25
|
-
return { views };
|
|
26
|
-
`;
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval, sonarjs/code-eval -- Trusted source: our own bundled dashboard JS.
|
|
28
|
-
const factory = new Function(head + DASHBOARD_CLIENT_BUNDLE + tail);
|
|
29
|
-
return factory().views;
|
|
30
|
-
}
|
|
31
|
-
describe('view conformance — §10.1', () => {
|
|
32
|
-
it('exactly three views are registered', () => {
|
|
33
|
-
const views = loadViews();
|
|
34
|
-
expect(views.length).toBe(3);
|
|
35
|
-
});
|
|
36
|
-
it('every view has a known id, non-empty label, and a render function', () => {
|
|
37
|
-
const views = loadViews();
|
|
38
|
-
for (const v of views) {
|
|
39
|
-
expect(expectedIds.has(v.id)).toBe(true);
|
|
40
|
-
expect(typeof v.label).toBe('string');
|
|
41
|
-
expect(v.label.length).toBeGreaterThan(0);
|
|
42
|
-
expect(typeof v.render).toBe('function');
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
it('all expected ids are present', () => {
|
|
46
|
-
const views = loadViews();
|
|
47
|
-
const ids = new Set(views.map((v) => v.id));
|
|
48
|
-
for (const id of expectedIds)
|
|
49
|
-
expect(ids.has(id)).toBe(true);
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=dashboard-view-conformance.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-view-conformance.test.js","sourceRoot":"","sources":["../../src/__tests__/dashboard-view-conformance.test.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;AAMnE,SAAS,SAAS;IAChB,4EAA4E;IAC5E,4EAA4E;IAC5E,8EAA8E;IAC9E,wBAAwB;IACxB,MAAM,IAAI,GAAG;;;CAGd,CAAC;IACA,MAAM,IAAI,GAAG;;CAEd,CAAC;IACA,kIAAkI;IAClI,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,IAAI,GAAG,uBAAuB,GAAG,IAAI,CAAC,CAAC;IACpE,OAAQ,OAAO,EAAY,CAAC,KAAK,CAAC;AACpC,CAAC;AAED,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5C,KAAK,MAAM,EAAE,IAAI,WAAW;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-view-coupling.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/dashboard-view-coupling.test.ts"],"names":[],"mappings":"AACA;;;;GAIG"}
|