test: align three tests with Michael's cluster order, optional app read and Data Hub donut props
This commit is contained in:
parent
09a60e6a9f
commit
fbd73819dd
|
|
@ -91,7 +91,8 @@ describe('Work facet Context Cluster', () => {
|
||||||
const index = contextClusterIndex(syntheticContext());
|
const index = contextClusterIndex(syntheticContext());
|
||||||
const facet = selectWorkFacets(sheet, { ...options, contextClusters: index }).find(item => item.id === CONTEXT_CLUSTER_FACET_ID)!;
|
const facet = selectWorkFacets(sheet, { ...options, contextClusters: index }).find(item => item.id === CONTEXT_CLUSTER_FACET_ID)!;
|
||||||
expect(facet.label).toBe('Context Cluster');
|
expect(facet.label).toBe('Context Cluster');
|
||||||
expect(facet.values.map(value => value.value)).toEqual(['credential-relay-exposure', 'kerberos-delegation-abuse']);
|
// Published heatmap positions govern the order (Michael, 2026-10-11).
|
||||||
|
expect(facet.values.map(value => value.value)).toEqual(['kerberos-delegation-abuse', 'credential-relay-exposure']);
|
||||||
const count = (id: string) => facet.values.find(value => value.value === id)!.count;
|
const count = (id: string) => facet.values.find(value => value.value === id)!.count;
|
||||||
expect(count('credential-relay-exposure')).toBe(2);
|
expect(count('credential-relay-exposure')).toBe(2);
|
||||||
expect(count('kerberos-delegation-abuse')).toBe(1);
|
expect(count('kerberos-delegation-abuse')).toBe(1);
|
||||||
|
|
@ -224,7 +225,7 @@ describe('Work facet Context Cluster in the filter bar', () => {
|
||||||
mockApp({});
|
mockApp({});
|
||||||
await act(async () => { root.render(<SearchFilterBar/>); await new Promise(resolve => setTimeout(resolve, 0)); });
|
await act(async () => { root.render(<SearchFilterBar/>); await new Promise(resolve => setTimeout(resolve, 0)); });
|
||||||
const select = () => host.querySelector<HTMLSelectElement>('select[aria-label="Context Cluster"]')!;
|
const select = () => host.querySelector<HTMLSelectElement>('select[aria-label="Context Cluster"]')!;
|
||||||
expect([...select().options].map(option => option.value)).toEqual(['', 'credential-relay-exposure', 'kerberos-delegation-abuse']);
|
expect([...select().options].map(option => option.value)).toEqual(['', 'kerberos-delegation-abuse', 'credential-relay-exposure']);
|
||||||
await act(async () => { select().value = 'credential-relay-exposure'; select().dispatchEvent(new Event('change', { bubbles: true })); });
|
await act(async () => { select().value = 'credential-relay-exposure'; select().dispatchEvent(new Event('change', { bubbles: true })); });
|
||||||
expect(setFacetFilter).toHaveBeenLastCalledWith(CONTEXT_CLUSTER_FACET_ID, { values: ['credential-relay-exposure'] });
|
expect(setFacetFilter).toHaveBeenLastCalledWith(CONTEXT_CLUSTER_FACET_ID, { values: ['credential-relay-exposure'] });
|
||||||
mockApp({ [CONTEXT_CLUSTER_FACET_ID]: { values: ['credential-relay-exposure'] } });
|
mockApp({ [CONTEXT_CLUSTER_FACET_ID]: { values: ['credential-relay-exposure'] } });
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ describe('Datahub centered reference rack layout', () => {
|
||||||
expect(componentStyles).not.toContain('@keyframes donut-accent-build');
|
expect(componentStyles).not.toContain('@keyframes donut-accent-build');
|
||||||
|
|
||||||
expect(overview).toContain('datahub-reference-controls donut-metric-rack');
|
expect(overview).toContain('datahub-reference-controls donut-metric-rack');
|
||||||
expect(overview).toContain('DonutMetricCard className="datahub-reference-knob" label="Results All" value={resultMetrics.all} percentage={resultMetrics.all !== null ? 100 : 0} tone="all"');
|
expect(overview).toContain('DonutMetricCard className="datahub-reference-knob" label="Results All" value={resultMetrics.all} percentage={resultMetrics.all !== null ? 100 : 0} percentageBasisLabel="Of all records" tone="all"');
|
||||||
expect(overview).toContain('DonutMetricCard className="datahub-reference-knob" label="Deviation"');
|
expect(overview).toContain('DonutMetricCard className="datahub-reference-knob" label="Deviation"');
|
||||||
expect(overview).toContain('DonutMetricCard className="datahub-reference-knob" label="Passed"');
|
expect(overview).toContain('DonutMetricCard className="datahub-reference-knob" label="Passed"');
|
||||||
expect(overview).toContain('DonutMetricCard className="datahub-reference-knob" label="Not Applicable"');
|
expect(overview).toContain('DonutMetricCard className="datahub-reference-knob" label="Not Applicable"');
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,11 @@ import { clearStoredMitreMatrix, MITRE_MATRIX_CHANGED_EVENT, saveStoredMitreMatr
|
||||||
import { useFilteredRecords } from '../../src/features/search-filter/use-filtered-records';
|
import { useFilteredRecords } from '../../src/features/search-filter/use-filtered-records';
|
||||||
import { makeSheet } from '../../src/importers/sheet-factory';
|
import { makeSheet } from '../../src/importers/sheet-factory';
|
||||||
|
|
||||||
vi.mock('../../src/app/AppProvider', () => ({ useApp: vi.fn() }));
|
vi.mock('../../src/app/AppProvider', () => {
|
||||||
|
const useApp = vi.fn();
|
||||||
|
// The Context cluster index reads the app optionally; it sees the same mocked app.
|
||||||
|
return { useApp, useOptionalApp: () => useApp() };
|
||||||
|
});
|
||||||
vi.mock('../../src/features/search-filter/use-filtered-records', () => ({ useFilteredRecords: vi.fn() }));
|
vi.mock('../../src/features/search-filter/use-filtered-records', () => ({ useFilteredRecords: vi.fn() }));
|
||||||
vi.mock('../../src/features/search-filter/SearchFilterBar', () => ({ SearchFilterBar: () => null, SearchTextControl: () => null }));
|
vi.mock('../../src/features/search-filter/SearchFilterBar', () => ({ SearchFilterBar: () => null, SearchTextControl: () => null }));
|
||||||
vi.mock('../../src/features/view-bookmarks/ViewBookmarks', () => ({ ViewBookmarks: () => null }));
|
vi.mock('../../src/features/view-bookmarks/ViewBookmarks', () => ({ ViewBookmarks: () => null }));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue