@opensip-cli/dashboard 0.1.11 → 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 +2 -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/generator.d.ts.map +1 -1
- package/dist/generator.js +4 -3
- 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/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 -400
- 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/__tests__/yagni-tab.test.d.ts +0 -13
- package/dist/__tests__/yagni-tab.test.d.ts.map +0 -1
- package/dist/__tests__/yagni-tab.test.js +0 -85
- package/dist/__tests__/yagni-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,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vendored Cytoscape emitter — smoke + byte-size guard.
|
|
3
|
-
*
|
|
4
|
-
* The emitter reads the committed `src/vendor/cytoscape-bundle.js` blob
|
|
5
|
-
* and returns it verbatim. These tests assert the version-stamp banner is
|
|
6
|
-
* present, the renderer globals are declared, and the raw size stays
|
|
7
|
-
* within the Phase 0 budget so a careless version bump fails CI.
|
|
8
|
-
*/
|
|
9
|
-
import { describe, expect, it } from 'vitest';
|
|
10
|
-
import { dashboardCytoscapeVendorJs } from '../code-paths/cytoscape-vendor.js';
|
|
11
|
-
/** Phase 0 raw-byte budget (matches scripts/vendor-cytoscape.mjs). */
|
|
12
|
-
const BUDGET_KB = 600;
|
|
13
|
-
describe('dashboardCytoscapeVendorJs', () => {
|
|
14
|
-
it('starts with the vendor version-stamp banner', () => {
|
|
15
|
-
const js = dashboardCytoscapeVendorJs();
|
|
16
|
-
expect(js.startsWith('/*')).toBe(true);
|
|
17
|
-
expect(js).toContain('VENDORED — DO NOT EDIT BY HAND.');
|
|
18
|
-
expect(js).toContain('cytoscape@');
|
|
19
|
-
expect(js).toContain('cytoscape-dagre@');
|
|
20
|
-
});
|
|
21
|
-
it('declares the cytoscape + cytoscapeDagre UMD globals', () => {
|
|
22
|
-
const js = dashboardCytoscapeVendorJs();
|
|
23
|
-
// UMD wrappers assign the global via `root["cytoscape"]` / `root.cytoscape`.
|
|
24
|
-
expect(js.includes('cytoscape')).toBe(true);
|
|
25
|
-
expect(/cytoscapeDagre|cytoscape-dagre/.test(js)).toBe(true);
|
|
26
|
-
});
|
|
27
|
-
it('does not vendor a standalone dagre global (self-bundled by cytoscape-dagre)', () => {
|
|
28
|
-
const js = dashboardCytoscapeVendorJs();
|
|
29
|
-
// The banner documents the deliberate omission.
|
|
30
|
-
expect(js).toContain('no standalone dagre is');
|
|
31
|
-
});
|
|
32
|
-
it('stays within the raw-byte budget', () => {
|
|
33
|
-
const bytes = Buffer.byteLength(dashboardCytoscapeVendorJs(), 'utf8');
|
|
34
|
-
expect(bytes).toBeLessThan(BUDGET_KB * 1024);
|
|
35
|
-
});
|
|
36
|
-
it('is deterministic across calls (cached)', () => {
|
|
37
|
-
expect(dashboardCytoscapeVendorJs()).toBe(dashboardCytoscapeVendorJs());
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
//# sourceMappingURL=dashboard-cytoscape-vendor.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-cytoscape-vendor.test.js","sourceRoot":"","sources":["../../src/__tests__/dashboard-cytoscape-vendor.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,sEAAsE;AACtE,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,EAAE,GAAG,0BAA0B,EAAE,CAAC;QACxC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACxD,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,EAAE,GAAG,0BAA0B,EAAE,CAAC;QACxC,6EAA6E;QAC7E,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,gCAAgC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACrF,MAAM,EAAE,GAAG,0BAA0B,EAAE,CAAC;QACxC,gDAAgD;QAChD,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,0BAA0B,EAAE,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,0BAA0B,EAAE,CAAC,CAAC,IAAI,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @vitest-environment jsdom
|
|
3
|
-
*
|
|
4
|
-
* Editor deep-link URL generator tests.
|
|
5
|
-
*
|
|
6
|
-
* `editorLinkUrl` is a module-internal prelude helper in the typed client bundle
|
|
7
|
-
* (L4) — NOT a page global. Its sole consumer is the Function Card's action row
|
|
8
|
-
* (an "Open in editor" anchor when the URL resolves, a "Copy path" button
|
|
9
|
-
* otherwise), so the test drives it through that public surface: define the
|
|
10
|
-
* `EDITOR_PROTOCOL` page global, boot the bundle (which exposes `openFunctionCard`
|
|
11
|
-
* / `buildIndexes`), open a card, and read the resulting anchor href.
|
|
12
|
-
*/
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=dashboard-editor-link.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-editor-link.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/dashboard-editor-link.test.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;GAWG"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
/**
|
|
3
|
-
* @vitest-environment jsdom
|
|
4
|
-
*
|
|
5
|
-
* Editor deep-link URL generator tests.
|
|
6
|
-
*
|
|
7
|
-
* `editorLinkUrl` is a module-internal prelude helper in the typed client bundle
|
|
8
|
-
* (L4) — NOT a page global. Its sole consumer is the Function Card's action row
|
|
9
|
-
* (an "Open in editor" anchor when the URL resolves, a "Copy path" button
|
|
10
|
-
* otherwise), so the test drives it through that public surface: define the
|
|
11
|
-
* `EDITOR_PROTOCOL` page global, boot the bundle (which exposes `openFunctionCard`
|
|
12
|
-
* / `buildIndexes`), open a card, and read the resulting anchor href.
|
|
13
|
-
*/
|
|
14
|
-
import { describe, expect, it, beforeEach } from 'vitest';
|
|
15
|
-
import { DASHBOARD_CLIENT_BUNDLE } from '../client-bundle.generated.js';
|
|
16
|
-
const CATALOG = {
|
|
17
|
-
version: '2.0',
|
|
18
|
-
tool: 'graph',
|
|
19
|
-
language: 'typescript',
|
|
20
|
-
builtAt: 'now',
|
|
21
|
-
functions: {
|
|
22
|
-
f: [
|
|
23
|
-
{
|
|
24
|
-
qualifiedName: 'f',
|
|
25
|
-
simpleName: 'f',
|
|
26
|
-
bodyHash: 'h1',
|
|
27
|
-
filePath: 'packages/x/src/x.ts',
|
|
28
|
-
line: 42,
|
|
29
|
-
column: 0,
|
|
30
|
-
endLine: 50,
|
|
31
|
-
kind: 'function-declaration',
|
|
32
|
-
params: [],
|
|
33
|
-
returnType: null,
|
|
34
|
-
enclosingClass: null,
|
|
35
|
-
decorators: [],
|
|
36
|
-
visibility: 'exported',
|
|
37
|
-
inTestFile: false,
|
|
38
|
-
definedInGenerated: false,
|
|
39
|
-
calls: [],
|
|
40
|
-
},
|
|
41
|
-
],
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
/** Boot the bundle with the given EDITOR_PROTOCOL, open the card for h1, return its action anchor href (or null). */
|
|
45
|
-
function editorHref(protocol, line = 42) {
|
|
46
|
-
document.body.innerHTML = '';
|
|
47
|
-
const protoSrc = protocol === null
|
|
48
|
-
? 'var EDITOR_PROTOCOL = null;'
|
|
49
|
-
: 'var EDITOR_PROTOCOL = ' + JSON.stringify(protocol) + ';';
|
|
50
|
-
const cat = {
|
|
51
|
-
...CATALOG,
|
|
52
|
-
functions: {
|
|
53
|
-
f: [{ ...CATALOG.functions.f[0], line }],
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
const head = 'var sessions = [];\n' + protoSrc + '\nvar graphCatalog = null;\nvar graphIndexes = null;\n';
|
|
57
|
-
const tail = `
|
|
58
|
-
graphCatalog = ${JSON.stringify(cat)};
|
|
59
|
-
graphIndexes = buildIndexes(graphCatalog);
|
|
60
|
-
globalThis.openFunctionCard = openFunctionCard;
|
|
61
|
-
`;
|
|
62
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval, sonarjs/code-eval -- Trusted source: our own bundled dashboard JS.
|
|
63
|
-
new Function(head + DASHBOARD_CLIENT_BUNDLE + tail).call(globalThis);
|
|
64
|
-
globalThis.openFunctionCard('h1');
|
|
65
|
-
const anchor = document.querySelector('.fc-actions a.fc-action');
|
|
66
|
-
return anchor ? anchor.getAttribute('href') : null;
|
|
67
|
-
}
|
|
68
|
-
beforeEach(() => {
|
|
69
|
-
document.body.innerHTML = '';
|
|
70
|
-
});
|
|
71
|
-
describe('editorLinkUrl (via the Function Card action row)', () => {
|
|
72
|
-
it('produces vscode://file/<path>:<line> for vscode', () => {
|
|
73
|
-
expect(editorHref('vscode', 42)).toBe('vscode://file/packages/x/src/x.ts:42');
|
|
74
|
-
});
|
|
75
|
-
it('produces cursor://file/<path>:<line> for cursor', () => {
|
|
76
|
-
expect(editorHref('cursor', 7)).toBe('cursor://file/packages/x/src/x.ts:7');
|
|
77
|
-
});
|
|
78
|
-
it('renders no editor anchor (Copy path fallback) when EDITOR_PROTOCOL is null', () => {
|
|
79
|
-
expect(editorHref(null)).toBeNull();
|
|
80
|
-
// The fallback is a Copy path button, not an anchor.
|
|
81
|
-
expect(document.querySelector('.fc-actions button.fc-action')?.textContent).toBe('Copy path');
|
|
82
|
-
});
|
|
83
|
-
it('renders no editor anchor for an unrecognized protocol', () => {
|
|
84
|
-
expect(editorHref('mystery')).toBeNull();
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
//# sourceMappingURL=dashboard-editor-link.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-editor-link.test.js","sourceRoot":"","sources":["../../src/__tests__/dashboard-editor-link.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @vitest-environment jsdom
|
|
3
|
-
*
|
|
4
|
-
* `el(tag, attrs, children)` DOM-builder unit tests.
|
|
5
|
-
*
|
|
6
|
-
* Imports `el` DIRECTLY from `src/client/el.ts` (not via the eval'd client
|
|
7
|
-
* bundle) so the call graph sees a real test→`el` edge: `el` is a high-blast
|
|
8
|
-
* helper used across every client view, and exercising it here makes it
|
|
9
|
-
* test-reachable (clears graph:high-blast-untested). The direct import also
|
|
10
|
-
* type-checks the helper against DOM lib at the call site.
|
|
11
|
-
*
|
|
12
|
-
* Branch coverage: the tag, every special attribute key (`text`, `class`,
|
|
13
|
-
* `on*` event handler, plain pass-through attribute), and every child shape
|
|
14
|
-
* (string → text node, Node → appended, `null`/`undefined` → skipped, and the
|
|
15
|
-
* '' empty-string child which is still appended).
|
|
16
|
-
*/
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=dashboard-el.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-el.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/dashboard-el.test.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
/**
|
|
3
|
-
* @vitest-environment jsdom
|
|
4
|
-
*
|
|
5
|
-
* `el(tag, attrs, children)` DOM-builder unit tests.
|
|
6
|
-
*
|
|
7
|
-
* Imports `el` DIRECTLY from `src/client/el.ts` (not via the eval'd client
|
|
8
|
-
* bundle) so the call graph sees a real test→`el` edge: `el` is a high-blast
|
|
9
|
-
* helper used across every client view, and exercising it here makes it
|
|
10
|
-
* test-reachable (clears graph:high-blast-untested). The direct import also
|
|
11
|
-
* type-checks the helper against DOM lib at the call site.
|
|
12
|
-
*
|
|
13
|
-
* Branch coverage: the tag, every special attribute key (`text`, `class`,
|
|
14
|
-
* `on*` event handler, plain pass-through attribute), and every child shape
|
|
15
|
-
* (string → text node, Node → appended, `null`/`undefined` → skipped, and the
|
|
16
|
-
* '' empty-string child which is still appended).
|
|
17
|
-
*/
|
|
18
|
-
import { describe, expect, it } from 'vitest';
|
|
19
|
-
import { el } from '../client/el.js';
|
|
20
|
-
describe('el', () => {
|
|
21
|
-
it('creates an element of the requested tag', () => {
|
|
22
|
-
const node = el('section');
|
|
23
|
-
expect(node.tagName).toBe('SECTION');
|
|
24
|
-
expect(node.attributes.length).toBe(0);
|
|
25
|
-
expect(node.childNodes.length).toBe(0);
|
|
26
|
-
});
|
|
27
|
-
it('sets textContent via the `text` key', () => {
|
|
28
|
-
const node = el('span', { text: 'hello' });
|
|
29
|
-
expect(node.textContent).toBe('hello');
|
|
30
|
-
// `text` is a special key — it must NOT appear as a DOM attribute.
|
|
31
|
-
expect(node.hasAttribute('text')).toBe(false);
|
|
32
|
-
});
|
|
33
|
-
it('sets className via the `class` key', () => {
|
|
34
|
-
const node = el('div', { class: 'a b' });
|
|
35
|
-
expect(node.className).toBe('a b');
|
|
36
|
-
expect(node.hasAttribute('class')).toBe(true);
|
|
37
|
-
});
|
|
38
|
-
it('wires an `on*` key as an event listener', () => {
|
|
39
|
-
let clicks = 0;
|
|
40
|
-
const node = el('button', {
|
|
41
|
-
onclick: () => {
|
|
42
|
-
clicks++;
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
// The handler is attached, not stored as an attribute.
|
|
46
|
-
expect(node.hasAttribute('onclick')).toBe(false);
|
|
47
|
-
node.dispatchEvent(new MouseEvent('click', { bubbles: true }));
|
|
48
|
-
node.dispatchEvent(new MouseEvent('click', { bubbles: true }));
|
|
49
|
-
expect(clicks).toBe(2);
|
|
50
|
-
});
|
|
51
|
-
it('passes any other key through to setAttribute', () => {
|
|
52
|
-
const node = el('a', { href: '/x', 'data-body-hash': 'h1', 'aria-label': 'go' });
|
|
53
|
-
expect(node.getAttribute('href')).toBe('/x');
|
|
54
|
-
expect(node.dataset.bodyHash).toBe('h1');
|
|
55
|
-
expect(node.getAttribute('aria-label')).toBe('go');
|
|
56
|
-
});
|
|
57
|
-
it('appends string children as text nodes', () => {
|
|
58
|
-
const node = el('p', undefined, ['one', 'two']);
|
|
59
|
-
expect(node.textContent).toBe('onetwo');
|
|
60
|
-
expect(node.childNodes.length).toBe(2);
|
|
61
|
-
expect(node.firstChild.nodeType).toBe(3 /* TEXT_NODE */);
|
|
62
|
-
});
|
|
63
|
-
it('appends Node children directly', () => {
|
|
64
|
-
const child = el('strong', { text: 'bold' });
|
|
65
|
-
const node = el('div', undefined, [child]);
|
|
66
|
-
expect(node.childNodes.length).toBe(1);
|
|
67
|
-
expect(node.firstChild).toBe(child);
|
|
68
|
-
expect(node.querySelector('strong').textContent).toBe('bold');
|
|
69
|
-
});
|
|
70
|
-
it('skips null and undefined children', () => {
|
|
71
|
-
const node = el('div', undefined, [null, undefined, 'kept', null]);
|
|
72
|
-
expect(node.childNodes.length).toBe(1);
|
|
73
|
-
expect(node.textContent).toBe('kept');
|
|
74
|
-
});
|
|
75
|
-
it('still appends an empty-string child (falsy but not null/undefined)', () => {
|
|
76
|
-
const node = el('div', undefined, ['']);
|
|
77
|
-
expect(node.childNodes.length).toBe(1);
|
|
78
|
-
expect(node.firstChild.nodeType).toBe(3 /* TEXT_NODE */);
|
|
79
|
-
expect(node.textContent).toBe('');
|
|
80
|
-
});
|
|
81
|
-
it('combines attrs and mixed children in one call', () => {
|
|
82
|
-
const inner = el('em', { text: 'x' });
|
|
83
|
-
const node = el('li', { class: 'item', 'data-id': '7' }, ['a', inner, null, 'b']);
|
|
84
|
-
expect(node.className).toBe('item');
|
|
85
|
-
expect(node.dataset.id).toBe('7');
|
|
86
|
-
expect(node.childNodes.length).toBe(3);
|
|
87
|
-
expect(node.textContent).toBe('axb');
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
//# sourceMappingURL=dashboard-el.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-el.test.js","sourceRoot":"","sources":["../../src/__tests__/dashboard-el.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @vitest-environment jsdom
|
|
3
|
-
*
|
|
4
|
-
* Filter chip predicate tests. Exercises the per-row `passesFilter`
|
|
5
|
-
* predicate (per-view filter behavior is asserted in each view's
|
|
6
|
-
* own test file; this file covers the predicate shape).
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=dashboard-filters.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-filters.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/dashboard-filters.test.ts"],"names":[],"mappings":"AACA;;;;;;GAMG"}
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
/**
|
|
3
|
-
* @vitest-environment jsdom
|
|
4
|
-
*
|
|
5
|
-
* Filter chip predicate tests. Exercises the per-row `passesFilter`
|
|
6
|
-
* predicate (per-view filter behavior is asserted in each view's
|
|
7
|
-
* own test file; this file covers the predicate shape).
|
|
8
|
-
*/
|
|
9
|
-
import { describe, expect, it } from 'vitest';
|
|
10
|
-
import { DASHBOARD_CLIENT_BUNDLE } from '../client-bundle.generated.js';
|
|
11
|
-
function loadFilterEnv() {
|
|
12
|
-
// `passesFilter` / `packageOfPath` now live in the typed client bundle (L4)
|
|
13
|
-
// and are exposed as page globals; `var sessions = []` satisfies checks.ts's
|
|
14
|
-
// load-time `computeCheckStats()` read.
|
|
15
|
-
const tail = `
|
|
16
|
-
return { passesFilter, packageOfPath };
|
|
17
|
-
`;
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval, sonarjs/code-eval -- Trusted source: our own bundled dashboard JS.
|
|
19
|
-
const factory = new Function('var sessions = [];\n' + DASHBOARD_CLIENT_BUNDLE + tail);
|
|
20
|
-
return factory();
|
|
21
|
-
}
|
|
22
|
-
function makeOcc(over) {
|
|
23
|
-
return {
|
|
24
|
-
qualifiedName: over.simpleName,
|
|
25
|
-
filePath: 'packages/contracts/src/x.ts',
|
|
26
|
-
line: 1,
|
|
27
|
-
column: 0,
|
|
28
|
-
endLine: 5,
|
|
29
|
-
kind: 'function-declaration',
|
|
30
|
-
params: [],
|
|
31
|
-
returnType: null,
|
|
32
|
-
enclosingClass: null,
|
|
33
|
-
decorators: [],
|
|
34
|
-
visibility: 'exported',
|
|
35
|
-
inTestFile: false,
|
|
36
|
-
definedInGenerated: false,
|
|
37
|
-
calls: [],
|
|
38
|
-
...over,
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
describe('passesFilter (filter chip predicate)', () => {
|
|
42
|
-
it('rejects test files by default (includeTests=false)', () => {
|
|
43
|
-
const env = loadFilterEnv();
|
|
44
|
-
const occ = makeOcc({ bodyHash: 'h', simpleName: 'f', inTestFile: true });
|
|
45
|
-
const fs = { packages: new Set(), kinds: new Set(), includeTests: false };
|
|
46
|
-
expect(env.passesFilter(occ, fs)).toBe(false);
|
|
47
|
-
});
|
|
48
|
-
it('accepts test files when includeTests=true', () => {
|
|
49
|
-
const env = loadFilterEnv();
|
|
50
|
-
const occ = makeOcc({ bodyHash: 'h', simpleName: 'f', inTestFile: true });
|
|
51
|
-
const fs = { packages: new Set(), kinds: new Set(), includeTests: true };
|
|
52
|
-
expect(env.passesFilter(occ, fs)).toBe(true);
|
|
53
|
-
});
|
|
54
|
-
it('rejects functions whose package is not in the active set (when set is non-empty)', () => {
|
|
55
|
-
const env = loadFilterEnv();
|
|
56
|
-
const occ = makeOcc({ bodyHash: 'h', simpleName: 'f', filePath: 'packages/cli/src/x.ts' });
|
|
57
|
-
const fs = {
|
|
58
|
-
packages: new Set(['contracts']),
|
|
59
|
-
kinds: new Set(),
|
|
60
|
-
includeTests: false,
|
|
61
|
-
};
|
|
62
|
-
expect(env.passesFilter(occ, fs)).toBe(false);
|
|
63
|
-
});
|
|
64
|
-
it('accepts functions whose package is in the active set', () => {
|
|
65
|
-
const env = loadFilterEnv();
|
|
66
|
-
const occ = makeOcc({ bodyHash: 'h', simpleName: 'f', filePath: 'packages/cli/src/x.ts' });
|
|
67
|
-
const fs = { packages: new Set(['cli']), kinds: new Set(), includeTests: false };
|
|
68
|
-
expect(env.passesFilter(occ, fs)).toBe(true);
|
|
69
|
-
});
|
|
70
|
-
it('rejects functions whose kind is not in the active kinds set', () => {
|
|
71
|
-
const env = loadFilterEnv();
|
|
72
|
-
const occ = makeOcc({ bodyHash: 'h', simpleName: 'f', kind: 'arrow' });
|
|
73
|
-
const fs = {
|
|
74
|
-
packages: new Set(),
|
|
75
|
-
kinds: new Set(['method']),
|
|
76
|
-
includeTests: false,
|
|
77
|
-
};
|
|
78
|
-
expect(env.passesFilter(occ, fs)).toBe(false);
|
|
79
|
-
});
|
|
80
|
-
it('empty packages set means "all allowed"', () => {
|
|
81
|
-
const env = loadFilterEnv();
|
|
82
|
-
const occ = makeOcc({ bodyHash: 'h', simpleName: 'f', filePath: 'packages/anywhere/src/x.ts' });
|
|
83
|
-
const fs = { packages: new Set(), kinds: new Set(), includeTests: false };
|
|
84
|
-
expect(env.passesFilter(occ, fs)).toBe(true);
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
//# sourceMappingURL=dashboard-filters.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-filters.test.js","sourceRoot":"","sources":["../../src/__tests__/dashboard-filters.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @vitest-environment jsdom
|
|
3
|
-
*
|
|
4
|
-
* §10.2 invariant: at most one .function-card-overlay element exists
|
|
5
|
-
* in the DOM at any moment, even when opening cards in rapid
|
|
6
|
-
* succession.
|
|
7
|
-
*/
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=dashboard-function-card-singleton.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-function-card-singleton.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/dashboard-function-card-singleton.test.ts"],"names":[],"mappings":"AACA;;;;;;GAMG"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/// <reference lib="dom" />
|
|
2
|
-
/**
|
|
3
|
-
* @vitest-environment jsdom
|
|
4
|
-
*
|
|
5
|
-
* §10.2 invariant: at most one .function-card-overlay element exists
|
|
6
|
-
* in the DOM at any moment, even when opening cards in rapid
|
|
7
|
-
* succession.
|
|
8
|
-
*/
|
|
9
|
-
import { describe, expect, it, beforeEach } from 'vitest';
|
|
10
|
-
import { DASHBOARD_CLIENT_BUNDLE } from '../client-bundle.generated.js';
|
|
11
|
-
function makeOcc(over) {
|
|
12
|
-
return {
|
|
13
|
-
qualifiedName: over.simpleName,
|
|
14
|
-
filePath: 'packages/x/src/x.ts',
|
|
15
|
-
line: 1,
|
|
16
|
-
column: 0,
|
|
17
|
-
endLine: 5,
|
|
18
|
-
kind: 'function-declaration',
|
|
19
|
-
params: [],
|
|
20
|
-
returnType: null,
|
|
21
|
-
enclosingClass: null,
|
|
22
|
-
decorators: [],
|
|
23
|
-
visibility: 'exported',
|
|
24
|
-
inTestFile: false,
|
|
25
|
-
definedInGenerated: false,
|
|
26
|
-
calls: [],
|
|
27
|
-
...over,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function loadEnv(catalog) {
|
|
31
|
-
// `openFunctionCard` (with `el`, `buildIndexes`, `editorLinkUrl`, `traceFromEntry`,
|
|
32
|
-
// path-utils) now lives in the typed client bundle (L4) and is exposed as a page
|
|
33
|
-
// global; it reads the `graphCatalog` / `graphIndexes` page globals as free
|
|
34
|
-
// identifiers. Declare those (plus `EDITOR_PROTOCOL` and `sessions`) in the eval
|
|
35
|
-
// scope so the bundle's IIFE closes over them; the tail seeds graphCatalog /
|
|
36
|
-
// graphIndexes after the bundle has defined `buildIndexes`.
|
|
37
|
-
const head = `
|
|
38
|
-
var sessions = [];
|
|
39
|
-
var EDITOR_PROTOCOL = null;
|
|
40
|
-
var graphCatalog = null;
|
|
41
|
-
var graphIndexes = null;
|
|
42
|
-
`;
|
|
43
|
-
const tail = `
|
|
44
|
-
graphCatalog = ${JSON.stringify(catalog)};
|
|
45
|
-
graphIndexes = buildIndexes(graphCatalog);
|
|
46
|
-
return { open: openFunctionCard };
|
|
47
|
-
`;
|
|
48
|
-
// eslint-disable-next-line @typescript-eslint/no-implied-eval, sonarjs/code-eval -- Trusted source: our own bundled dashboard JS.
|
|
49
|
-
return new Function(head + DASHBOARD_CLIENT_BUNDLE + tail)();
|
|
50
|
-
}
|
|
51
|
-
beforeEach(() => {
|
|
52
|
-
document.body.innerHTML = '';
|
|
53
|
-
});
|
|
54
|
-
describe('Function Card singleton — §10.2', () => {
|
|
55
|
-
it('opening three cards in succession leaves exactly one overlay in the DOM', () => {
|
|
56
|
-
const env = loadEnv({
|
|
57
|
-
version: '2.0',
|
|
58
|
-
tool: 'graph',
|
|
59
|
-
language: 'typescript',
|
|
60
|
-
builtAt: 'now',
|
|
61
|
-
functions: {
|
|
62
|
-
a: [makeOcc({ bodyHash: 'ha', simpleName: 'a' })],
|
|
63
|
-
b: [makeOcc({ bodyHash: 'hb', simpleName: 'b' })],
|
|
64
|
-
c: [makeOcc({ bodyHash: 'hc', simpleName: 'c' })],
|
|
65
|
-
},
|
|
66
|
-
});
|
|
67
|
-
env.open('ha');
|
|
68
|
-
env.open('hb');
|
|
69
|
-
env.open('hc');
|
|
70
|
-
const overlays = document.querySelectorAll('.function-card-overlay');
|
|
71
|
-
expect(overlays.length).toBe(1);
|
|
72
|
-
expect(overlays[0].textContent).toContain('c');
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
//# sourceMappingURL=dashboard-function-card-singleton.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-function-card-singleton.test.js","sourceRoot":"","sources":["../../src/__tests__/dashboard-function-card-singleton.test.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAE1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAQxE,SAAS,OAAO,CACd,IAAiF;IAEjF,OAAO;QACL,aAAa,EAAE,IAAI,CAAC,UAAU;QAC9B,QAAQ,EAAE,qBAAqB;QAC/B,IAAI,EAAE,CAAC;QACP,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,sBAAsB;QAC5B,MAAM,EAAE,EAAE;QACV,UAAU,EAAE,IAAI;QAChB,cAAc,EAAE,IAAI;QACpB,UAAU,EAAE,EAAE;QACd,UAAU,EAAE,UAAU;QACtB,UAAU,EAAE,KAAK;QACjB,kBAAkB,EAAE,KAAK;QACzB,KAAK,EAAE,EAAE;QACT,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,OAAqB;IACpC,oFAAoF;IACpF,iFAAiF;IACjF,4EAA4E;IAC5E,iFAAiF;IACjF,6EAA6E;IAC7E,4DAA4D;IAC5D,MAAM,IAAI,GAAG;;;;;CAKd,CAAC;IACA,MAAM,IAAI,GAAG;iBACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;;;CAGvC,CAAC;IACA,kIAAkI;IAClI,OAAO,IAAI,QAAQ,CAAC,IAAI,GAAG,uBAAuB,GAAG,IAAI,CAAC,EAAS,CAAC;AACtE,CAAC;AAED,UAAU,CAAC,GAAG,EAAE;IACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,GAAG,GAAG,OAAO,CAAC;YAClB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE;gBACT,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBACjD,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBACjD,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;aAClD;SACF,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACf,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CAAC;QACrE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @vitest-environment jsdom
|
|
3
|
-
*
|
|
4
|
-
* Function Card overlay behavior tests. Loads the typed client bundle (L4) —
|
|
5
|
-
* which carries indexes + function-card + path-utils + editor-link + trace —
|
|
6
|
-
* into the jsdom global scope, then exercises the public API (openFunctionCard,
|
|
7
|
-
* closeFunctionCard, both exposed as page globals).
|
|
8
|
-
*/
|
|
9
|
-
export {};
|
|
10
|
-
//# sourceMappingURL=dashboard-function-card.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-function-card.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/dashboard-function-card.test.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG"}
|