@sudobility/testomniac_ui 0.0.20 → 0.0.22

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":"BundlesPage.d.ts","sourceRoot":"","sources":["../../src/pages/BundlesPage.tsx"],"names":[],"mappings":"AAuBA,wBAAgB,WAAW,gCAsJ1B"}
1
+ {"version":3,"file":"BundlesPage.d.ts","sourceRoot":"","sources":["../../src/pages/BundlesPage.tsx"],"names":[],"mappings":"AA+EA,wBAAgB,WAAW,gCA6S1B"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
- import { useRunnerTestSurfaceBundles, useCreateTestSurfaceBundle, } from '@sudobility/testomniac_client';
4
- import { Button, ActionButton, Card, Input, Label, ContentLayout, CardGrid, } from '@sudobility/components';
3
+ import { useEffectiveEnvironmentScanSettings, useEnvironmentScanSettings, useProductScanSettings, useRunnerTestSurfaceBundles, useCreateTestSurfaceBundle, useUpdateEnvironmentScanSettings, useUpdateProductScanSettings, } from '@sudobility/testomniac_client';
4
+ import { Button, ActionButton, Alert, Card, Checkbox, Input, Label, ContentLayout, CardGrid, } from '@sudobility/components';
5
+ import { EXPERTISE_OPTIONS } from '@sudobility/testomniac_lib';
5
6
  import { SEOHead, useTestomniacApi } from '../context/config';
6
7
  import { AddButton } from '../components/ui/AddButton';
7
8
  import { BundleCell } from '../components/cells';
@@ -9,15 +10,22 @@ import { useDashboardEnvironmentContext } from '../hooks/useDashboardEnvironment
9
10
  import { useEnvRoutes } from '../context/routing';
10
11
  import { useLocalizedNavigate } from '../hooks/useLocalizedNavigate';
11
12
  import { EmptyState } from '../components/states';
13
+ function ScanSettingsPanel({ title, description, selectedExpertises, onToggle, onSave, isSaving, overrideCount, }) {
14
+ return (_jsxs(Card, { variant: "bordered", className: "space-y-3", children: [_jsxs("div", { children: [_jsx("h2", { className: "text-sm font-semibold text-gray-900 dark:text-gray-100", children: title }), _jsx("p", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: description })] }), _jsx("div", { className: "grid grid-cols-1 gap-2 sm:grid-cols-2", children: EXPERTISE_OPTIONS.map(option => (_jsx(Checkbox, { checked: selectedExpertises.includes(option.slug), onChange: checked => onToggle(option.slug, checked), label: option.label }, option.slug))) }), _jsxs("div", { className: "flex items-center justify-between gap-3 text-xs text-gray-500 dark:text-gray-400", children: [_jsxs("span", { children: [overrideCount, " rule override(s)"] }), _jsx(ActionButton, { variant: "primary", onClick: () => void onSave(), isLoading: isSaving, loadingText: "Saving...", children: "Save" })] })] }));
15
+ }
12
16
  export function BundlesPage() {
13
17
  const { navigate } = useLocalizedNavigate();
14
18
  const { baseUrl } = useTestomniacApi();
15
- const { networkClient, token, primaryRunner, isLoading: contextLoading, error: contextError, } = useDashboardEnvironmentContext();
19
+ const { networkClient, token, primaryRunner, productId, envId, isLoading: contextLoading, error: contextError, } = useDashboardEnvironmentContext();
16
20
  const [showForm, setShowForm] = useState(false);
17
21
  const [title, setTitle] = useState('');
18
22
  const [description, setDescription] = useState('');
19
23
  const [formError, setFormError] = useState(null);
24
+ const [settingsError, setSettingsError] = useState(null);
25
+ const [productExpertisesOverride, setProductExpertisesOverride] = useState(null);
26
+ const [environmentExpertisesOverride, setEnvironmentExpertisesOverride] = useState(null);
20
27
  const runnerId = primaryRunner?.id ?? 0;
28
+ const environmentId = envId;
21
29
  const r = useEnvRoutes();
22
30
  const bundlesQuery = useRunnerTestSurfaceBundles(networkClient, baseUrl, token ?? '', runnerId, {
23
31
  enabled: !!token && !!primaryRunner,
@@ -28,6 +36,64 @@ export function BundlesPage() {
28
36
  const refetch = bundlesQuery.refetch;
29
37
  const createBundleMutation = useCreateTestSurfaceBundle(networkClient, baseUrl);
30
38
  const isCreating = createBundleMutation.isPending;
39
+ const productScanSettingsQuery = useProductScanSettings(networkClient, baseUrl, token ?? '', productId ?? 0, {
40
+ enabled: !!token && !!productId,
41
+ });
42
+ const environmentScanSettingsQuery = useEnvironmentScanSettings(networkClient, baseUrl, token ?? '', productId ?? 0, environmentId, {
43
+ enabled: !!token && !!productId && !!environmentId,
44
+ });
45
+ const effectiveScanSettingsQuery = useEffectiveEnvironmentScanSettings(networkClient, baseUrl, token ?? '', productId ?? 0, environmentId, {
46
+ enabled: !!token && !!productId && !!environmentId,
47
+ });
48
+ const updateProductScanSettingsMutation = useUpdateProductScanSettings(networkClient, baseUrl);
49
+ const updateEnvironmentScanSettingsMutation = useUpdateEnvironmentScanSettings(networkClient, baseUrl);
50
+ const productExpertises = productExpertisesOverride ?? productScanSettingsQuery.data?.data?.expertiseSlugs ?? [];
51
+ const environmentExpertises = environmentExpertisesOverride ?? environmentScanSettingsQuery.data?.data?.expertiseSlugs ?? [];
52
+ function toggleSelection(setter, slug, checked) {
53
+ setter(prev => {
54
+ const source = prev ?? [];
55
+ return checked ? [...source, slug] : source.filter(item => item !== slug);
56
+ });
57
+ }
58
+ async function saveProductSettings() {
59
+ if (!productId)
60
+ return;
61
+ setSettingsError(null);
62
+ try {
63
+ await updateProductScanSettingsMutation.mutateAsync({
64
+ token: token ?? '',
65
+ productId,
66
+ data: {
67
+ expertiseSlugs: productExpertises,
68
+ ruleOverrides: productScanSettingsQuery.data?.data?.ruleOverrides ?? null,
69
+ },
70
+ });
71
+ setProductExpertisesOverride(null);
72
+ }
73
+ catch (err) {
74
+ setSettingsError(err instanceof Error ? err.message : 'Failed to save product scan settings');
75
+ }
76
+ }
77
+ async function saveEnvironmentSettings() {
78
+ if (!productId || !environmentId)
79
+ return;
80
+ setSettingsError(null);
81
+ try {
82
+ await updateEnvironmentScanSettingsMutation.mutateAsync({
83
+ token: token ?? '',
84
+ productId,
85
+ environmentId,
86
+ data: {
87
+ expertiseSlugs: environmentExpertises,
88
+ ruleOverrides: environmentScanSettingsQuery.data?.data?.ruleOverrides ?? null,
89
+ },
90
+ });
91
+ setEnvironmentExpertisesOverride(null);
92
+ }
93
+ catch (err) {
94
+ setSettingsError(err instanceof Error ? err.message : 'Failed to save environment scan settings');
95
+ }
96
+ }
31
97
  const handleCreate = async () => {
32
98
  if (!title.trim())
33
99
  return;
@@ -57,6 +123,6 @@ export function BundlesPage() {
57
123
  if (contextError || error) {
58
124
  return (_jsx("div", { className: "p-6", children: _jsxs("div", { className: "text-center text-red-600 dark:text-red-400 py-8", children: ["Error: ", contextError || error] }) }));
59
125
  }
60
- return (_jsx(ContentLayout, { header: _jsxs("div", { className: "border-b border-gray-200 bg-white px-4 pb-4 pt-4 dark:border-gray-800 dark:bg-gray-900 sm:px-6 sm:pt-6", children: [_jsx(SEOHead, { title: "Bundles", description: "", noIndex: true }), _jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: "Test Bundles" }), primaryRunner && (_jsx(AddButton, { label: "New Bundle", active: showForm, onClick: () => setShowForm(!showForm) }))] })] }), children: _jsxs("div", { className: "px-4 py-4 sm:px-6", children: [showForm && (_jsxs(Card, { variant: "bordered", className: "mb-6 space-y-3", children: [_jsxs("div", { children: [_jsx(Label, { className: "mb-1 block", children: "Title" }), _jsx(Input, { type: "text", value: title, onChange: e => setTitle(e.target.value), placeholder: "e.g., Checkout Flow Tests", className: "w-full" })] }), _jsxs("div", { children: [_jsx(Label, { className: "mb-1 block", children: "Description" }), _jsx(Input, { type: "text", value: description, onChange: e => setDescription(e.target.value), placeholder: "Optional description", className: "w-full" })] }), formError && _jsx("p", { className: "text-sm text-red-600 dark:text-red-400", children: formError }), _jsxs("div", { className: "flex gap-2", children: [_jsx(ActionButton, { type: "button", variant: "primary", onClick: handleCreate, disabled: !title.trim(), isLoading: isCreating, loadingText: "Creating...", children: "Create Bundle" }), _jsx(Button, { variant: "outline", type: "button", onClick: () => setShowForm(false), children: "Cancel" })] })] })), bundles.length === 0 && !showForm ? (_jsx(EmptyState, { title: "No bundles yet", description: "Bundles are created during discovery scans or can be composed manually." })) : (_jsx(CardGrid, { children: bundles.map((bundle) => (_jsx(BundleCell, { bundle: bundle, variant: "tile", onClick: () => navigate(r.bundle(bundle.id)) }, bundle.id))) }))] }) }));
126
+ return (_jsx(ContentLayout, { header: _jsxs("div", { className: "border-b border-gray-200 bg-white px-4 pb-4 pt-4 dark:border-gray-800 dark:bg-gray-900 sm:px-6 sm:pt-6", children: [_jsx(SEOHead, { title: "Bundles", description: "", noIndex: true }), _jsxs("div", { className: "flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between", children: [_jsx("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: "Test Bundles" }), primaryRunner && (_jsx(AddButton, { label: "New Bundle", active: showForm, onClick: () => setShowForm(!showForm) }))] })] }), children: _jsxs("div", { className: "px-4 py-4 sm:px-6", children: [settingsError && _jsx(Alert, { variant: "error", className: "mb-6", description: settingsError }), productId && environmentId && (_jsxs("div", { className: "mb-6 grid gap-4 lg:grid-cols-2", children: [_jsx(ScanSettingsPanel, { title: "Product Scan Defaults", description: "These defaults apply to every environment unless an environment override replaces them.", selectedExpertises: productExpertises, onToggle: (slug, checked) => toggleSelection(setProductExpertisesOverride, slug, checked), onSave: saveProductSettings, isSaving: updateProductScanSettingsMutation.isPending, overrideCount: productScanSettingsQuery.data?.data?.ruleOverrides?.length ?? 0 }), _jsx(ScanSettingsPanel, { title: "Environment Overrides", description: "These overrides apply before a scan starts in this environment.", selectedExpertises: environmentExpertises, onToggle: (slug, checked) => toggleSelection(setEnvironmentExpertisesOverride, slug, checked), onSave: saveEnvironmentSettings, isSaving: updateEnvironmentScanSettingsMutation.isPending, overrideCount: environmentScanSettingsQuery.data?.data?.ruleOverrides?.length ?? 0 }), _jsxs(Card, { variant: "bordered", className: "lg:col-span-2", children: [_jsx("h2", { className: "text-sm font-semibold text-gray-900 dark:text-gray-100", children: "Effective Scan Settings" }), _jsx("p", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: "This is the merged configuration the API will apply before request-level overrides." }), _jsxs("div", { className: "mt-3 flex flex-wrap gap-2", children: [(effectiveScanSettingsQuery.data?.data?.expertiseSlugs ?? []).map((expertise) => (_jsx("span", { className: "rounded bg-gray-100 px-2 py-1 text-xs capitalize text-gray-700 dark:bg-gray-800 dark:text-gray-300", children: expertise }, expertise))), (effectiveScanSettingsQuery.data?.data?.expertiseSlugs ?? []).length === 0 && (_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "No expertise settings configured." }))] })] })] })), showForm && (_jsxs(Card, { variant: "bordered", className: "mb-6 space-y-3", children: [_jsxs("div", { children: [_jsx(Label, { className: "mb-1 block", children: "Title" }), _jsx(Input, { type: "text", value: title, onChange: e => setTitle(e.target.value), placeholder: "e.g., Checkout Flow Tests", className: "w-full" })] }), _jsxs("div", { children: [_jsx(Label, { className: "mb-1 block", children: "Description" }), _jsx(Input, { type: "text", value: description, onChange: e => setDescription(e.target.value), placeholder: "Optional description", className: "w-full" })] }), formError && _jsx("p", { className: "text-sm text-red-600 dark:text-red-400", children: formError }), _jsxs("div", { className: "flex gap-2", children: [_jsx(ActionButton, { type: "button", variant: "primary", onClick: handleCreate, disabled: !title.trim(), isLoading: isCreating, loadingText: "Creating...", children: "Create Bundle" }), _jsx(Button, { variant: "outline", type: "button", onClick: () => setShowForm(false), children: "Cancel" })] })] })), bundles.length === 0 && !showForm ? (_jsx(EmptyState, { title: "No bundles yet", description: "Bundles are created during discovery scans or can be composed manually." })) : (_jsx(CardGrid, { children: bundles.map((bundle) => (_jsx(BundleCell, { bundle: bundle, variant: "tile", onClick: () => navigate(r.bundle(bundle.id)) }, bundle.id))) }))] }) }));
61
127
  }
62
128
  //# sourceMappingURL=BundlesPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BundlesPage.js","sourceRoot":"","sources":["../../src/pages/BundlesPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BundlesPage.js","sourceRoot":"","sources":["../../src/pages/BundlesPage.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TestRunDetailPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestRunDetailPage.tsx"],"names":[],"mappings":"AAmCA,wBAAgB,iBAAiB,gCAwZhC"}
1
+ {"version":3,"file":"TestRunDetailPage.d.ts","sourceRoot":"","sources":["../../src/pages/TestRunDetailPage.tsx"],"names":[],"mappings":"AAwCA,wBAAgB,iBAAiB,gCA0gBhC"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState } from 'react';
3
- import { useRun, useRunSummary, useRunStructure, useTestInteractionRun, useTestRunFindings, } from '@sudobility/testomniac_client';
3
+ import { useRun, useRunFindingExpertiseSummary, useRunFindingSummary, useRunSummary, useRunStructure, useTestInteractionRun, useTestRunFindings, } from '@sudobility/testomniac_client';
4
4
  import { formatDate, formatMultilineLog, getFindingDisplayTitle, getFindingExpertiseSlug, getFindingRemediation, groupFindingsByRule, } from '@sudobility/testomniac_lib';
5
5
  import { useTestomniacApi } from '../context/config';
6
6
  import { useRouteParams, useEnvRoutes } from '../context/routing';
@@ -31,6 +31,8 @@ export function TestRunDetailPage() {
31
31
  enabled: !!runId && !!token,
32
32
  });
33
33
  const summary = summaryQuery.data?.data;
34
+ const rootFindingSummaryQuery = useRunFindingSummary(networkClient, baseUrl, token ?? '', testRunId, { enabled: !!runId && !!token && run?.testInteractionRunId === null });
35
+ const rootFindingExpertiseSummaryQuery = useRunFindingExpertiseSummary(networkClient, baseUrl, token ?? '', testRunId, { enabled: !!runId && !!token && run?.testInteractionRunId === null });
34
36
  const structureQuery = useRunStructure(networkClient, baseUrl, token ?? '', testRunId, {
35
37
  enabled: !!runId && !!token,
36
38
  });
@@ -50,7 +52,11 @@ export function TestRunDetailPage() {
50
52
  return (_jsx("div", { className: "p-4 sm:p-6", children: _jsx("div", { className: "text-center text-gray-500 dark:text-gray-400 py-8", children: "Loading run..." }) }));
51
53
  }
52
54
  const isRootLikeRun = run.testInteractionRunId === null;
53
- const expertiseEntries = Object.entries(summary?.expertiseSummary ?? {}).sort(([left], [right]) => left.localeCompare(right));
55
+ const rootFindingSummaries = rootFindingSummaryQuery.data?.data ?? [];
56
+ const rootExpertiseSummary = rootFindingExpertiseSummaryQuery.data?.data ?? [];
57
+ const expertiseEntries = rootExpertiseSummary
58
+ .map(item => [item.expertiseId ?? 'unknown', item])
59
+ .sort(([left], [right]) => left.localeCompare(right));
54
60
  const surfaceCoverage = structure?.surfaces.map(surface => ({
55
61
  id: surface.id,
56
62
  title: surface.title,
@@ -61,24 +67,44 @@ export function TestRunDetailPage() {
61
67
  const consoleLog = formatMultilineLog(testInteractionRun?.consoleLog);
62
68
  const networkLog = formatMultilineLog(testInteractionRun?.networkLog);
63
69
  const typedFindings = findings;
64
- const expertiseFilters = Array.from(new Set(typedFindings
65
- .map(finding => getFindingExpertiseSlug(finding))
66
- .filter((expertise) => Boolean(expertise)))).sort();
70
+ const expertiseFilters = Array.from(new Set(isRootLikeRun
71
+ ? rootFindingSummaries
72
+ .map(finding => finding.expertiseId)
73
+ .filter((expertise) => expertise !== null)
74
+ : typedFindings
75
+ .map(finding => getFindingExpertiseSlug(finding))
76
+ .filter((expertise) => Boolean(expertise)))).sort();
67
77
  const filteredFindings = typedFindings.filter(finding => {
68
78
  const matchesType = findingTypeFilter === 'all' || finding.type === findingTypeFilter;
69
79
  const matchesExpertise = expertiseFilter === 'all' || getFindingExpertiseSlug(finding) === expertiseFilter;
70
80
  return matchesType && matchesExpertise;
71
81
  });
72
82
  const findingGroups = Array.from(groupFindingsByRule(filteredFindings).values());
83
+ const filteredRootFindingSummaries = rootFindingSummaries.filter(finding => {
84
+ const matchesType = findingTypeFilter === 'all' || finding.type === findingTypeFilter;
85
+ const matchesExpertise = expertiseFilter === 'all' || finding.expertiseId === expertiseFilter;
86
+ return matchesType && matchesExpertise;
87
+ });
88
+ const rootFindingsLoading = rootFindingSummaryQuery.isLoading;
89
+ const effectiveExpertises = run.expertiseSlugsJson ?? [];
90
+ const effectiveRuleOverrides = run.ruleOverridesJson ?? [];
73
91
  return (_jsx(ContentLayout, { header: _jsxs("div", { className: "border-b border-gray-200 bg-white px-4 pb-4 pt-4 dark:border-gray-800 dark:bg-gray-900 sm:px-6 sm:pt-6", children: [_jsx(BackLink, { label: "Back to Runs", onClick: () => navigate(r.runs()) }), _jsxs("nav", { className: "flex items-center gap-1 text-sm text-gray-500 dark:text-gray-400 mb-4", children: [_jsx("button", { onClick: () => navigate(r.runs()), className: "hover:text-blue-600 dark:hover:text-blue-400 transition-colors", children: "Runs" }), _jsx("span", { children: "/" }), _jsxs("span", { className: "text-gray-900 dark:text-gray-100 font-medium", children: ["Run #", runId] })] }), _jsxs("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100 mb-2", children: ["Test Run #", runId] }), _jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(StatusBadge, { status: run.status }), _jsx(StatusBadge, { status: run.sizeClass }), _jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: ["ID: ", runId] }), run.createdAt && (_jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: ["Created ", formatDate(run.createdAt)] })), run.startedAt && (_jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: ["Started ", formatDate(run.startedAt)] })), run.completedAt && (_jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: ["Completed ", formatDate(run.completedAt)] }))] })] }), children: _jsxs("div", { className: "px-4 py-4 sm:px-6", children: [isRootLikeRun && summary && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "mb-8 grid grid-cols-2 gap-4 md:grid-cols-4", children: [_jsxs(Card, { variant: "bordered", padding: "md", children: [_jsx("div", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: summary.pagesFound ?? 0 }), _jsx("div", { className: "text-xs text-gray-500", children: "Pages Found" })] }), _jsxs(Card, { variant: "bordered", padding: "md", children: [_jsx("div", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: summary.pageStatesFound ?? 0 }), _jsx("div", { className: "text-xs text-gray-500", children: "Page States" })] }), _jsxs(Card, { variant: "bordered", padding: "md", children: [_jsx("div", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: summary.testRunsCompleted ?? 0 }), _jsx("div", { className: "text-xs text-gray-500", children: "Completed Runs" })] }), _jsxs(Card, { variant: "bordered", padding: "md", children: [_jsx("div", { className: "text-2xl font-bold text-red-600 dark:text-red-400", children: summary.totalFindings }), _jsx("div", { className: "text-xs text-gray-500", children: "Findings" })] })] }), summary.aiSummary && (_jsxs(Card, { variant: "bordered", padding: "md", className: "mb-8", children: [_jsx("h2", { className: "mb-2 text-sm font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400", children: "Summary" }), _jsx("p", { className: "text-sm leading-6 text-gray-700 dark:text-gray-300", children: summary.aiSummary })] })), _jsxs("div", { className: "mb-8 grid grid-cols-1 gap-3 sm:grid-cols-3", children: [_jsxs("button", { onClick: () => navigate(r.runSurfaceRuns(runId)), className: "rounded-lg border border-gray-200 bg-white p-4 text-left transition-colors hover:border-blue-300 dark:border-gray-700 dark:bg-gray-800 dark:hover:border-blue-600", children: [_jsx("div", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: "Surface Runs" }), _jsx("div", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: "Navigate the run hierarchy by surface run, then interaction runs and run details." })] }), _jsxs("button", { onClick: () => navigate(r.runPages(runId)), className: "rounded-lg border border-gray-200 bg-white p-4 text-left transition-colors hover:border-blue-300 dark:border-gray-700 dark:bg-gray-800 dark:hover:border-blue-600", children: [_jsx("div", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: "Pages" }), _jsx("div", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: "Browse discovered pages and drill into captured page states." })] }), _jsxs("button", { onClick: () => navigate(r.runIssues(runId)), className: "rounded-lg border border-gray-200 bg-white p-4 text-left transition-colors hover:border-blue-300 dark:border-gray-700 dark:bg-gray-800 dark:hover:border-blue-600", children: [_jsx("div", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: "Findings" }), _jsx("div", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: "Review grouped warnings and errors for this scan run." })] })] }), surfaceCoverage.length > 0 && (_jsxs("div", { className: "mb-8", children: [_jsx("h2", { className: "mb-4 text-lg font-semibold text-gray-900 dark:text-gray-100", children: "Coverage Tree" }), _jsx(CardGrid, { children: surfaceCoverage.map(surface => (_jsx(GridTile, { topRight: _jsx(StatusBadge, { status: surface.status }), title: surface.title, footer: _jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [surface.interactionCount, " interaction", surface.interactionCount === 1 ? '' : 's'] }), onClick: surface.surfaceRunId != null
74
92
  ? () => navigate(r.runSurfaceRun(runId, surface.surfaceRunId))
75
- : undefined }, surface.id))) })] })), expertiseEntries.length > 0 && (_jsxs("div", { className: "mb-8", children: [_jsx("h2", { className: "mb-4 text-lg font-semibold text-gray-900 dark:text-gray-100", children: "Findings by Expertise" }), _jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3", children: expertiseEntries.map(([name, counts]) => (_jsxs(Card, { variant: "bordered", padding: "md", children: [_jsx("div", { className: "text-sm font-medium capitalize text-gray-900 dark:text-gray-100", children: name }), _jsxs("div", { className: "mt-3 flex gap-4 text-xs", children: [_jsxs("span", { className: "text-red-600 dark:text-red-400", children: [counts.errors, " error", counts.errors === 1 ? '' : 's'] }), _jsxs("span", { className: "text-amber-600 dark:text-amber-400", children: [counts.warnings, " warning", counts.warnings === 1 ? '' : 's'] }), _jsxs("span", { className: "text-gray-500 dark:text-gray-400", children: [counts.findings, " total"] })] })] }, name))) })] }))] })), _jsx("h2", { className: "text-sm font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider mb-3", children: "Findings" }), run.testInteractionRunId === null && (_jsx(EmptyState, { description: "This test run tracks a surface or discovery workflow and does not map directly to a single test interaction run." })), run.testInteractionRunId !== null && isLoading && (_jsx("div", { className: "text-sm text-gray-500 dark:text-gray-400 py-8 text-center", children: "Loading findings..." })), run.testInteractionRunId !== null && !isLoading && findings.length === 0 && (_jsx(EmptyState, { description: "No findings for this test run." })), run.testInteractionRunId !== null && !isLoading && findings.length > 0 && (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-3 border-b border-gray-200 pb-3 dark:border-gray-800", children: [_jsx("div", { className: "inline-flex overflow-hidden rounded border border-gray-300 dark:border-gray-700", children: ['all', 'error', 'warning'].map(type => (_jsx("button", { type: "button", onClick: () => setFindingTypeFilter(type), className: `px-3 py-1.5 text-xs font-medium capitalize ${findingTypeFilter === type
93
+ : undefined }, surface.id))) })] })), expertiseEntries.length > 0 && (_jsxs("div", { className: "mb-8", children: [_jsx("h2", { className: "mb-4 text-lg font-semibold text-gray-900 dark:text-gray-100", children: "Findings by Expertise" }), _jsx("div", { className: "grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3", children: expertiseEntries.map(([name, counts]) => (_jsxs(Card, { variant: "bordered", padding: "md", children: [_jsx("div", { className: "text-sm font-medium capitalize text-gray-900 dark:text-gray-100", children: name }), _jsxs("div", { className: "mt-3 flex gap-4 text-xs", children: [_jsxs("span", { className: "text-red-600 dark:text-red-400", children: [counts.errorCount, " error", counts.errorCount === 1 ? '' : 's'] }), _jsxs("span", { className: "text-amber-600 dark:text-amber-400", children: [counts.warningCount, " warning", counts.warningCount === 1 ? '' : 's'] }), _jsxs("span", { className: "text-gray-500 dark:text-gray-400", children: [counts.findingCount, " total"] })] })] }, name))) })] })), _jsxs(Card, { variant: "bordered", padding: "md", className: "mb-8", children: [_jsx("h2", { className: "mb-3 text-sm font-semibold uppercase tracking-wide text-gray-500 dark:text-gray-400", children: "Effective Scan Settings" }), _jsxs("div", { className: "space-y-3 text-sm text-gray-700 dark:text-gray-300", children: [_jsxs("div", { children: [_jsx("div", { className: "text-xs text-gray-500 dark:text-gray-400", children: "Expertises" }), _jsx("div", { className: "mt-1 flex flex-wrap gap-2", children: effectiveExpertises.length > 0 ? (effectiveExpertises.map(expertise => (_jsx("span", { className: "rounded bg-gray-100 px-2 py-1 text-xs capitalize dark:bg-gray-800", children: expertise }, expertise)))) : (_jsx("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: "No expertise settings recorded." })) })] }), _jsxs("div", { className: "flex flex-wrap gap-4 text-xs text-gray-500 dark:text-gray-400", children: [_jsxs("span", { children: [effectiveRuleOverrides.length, " rule override(s)"] }), _jsxs("span", { children: ["Scan mode: ", run.scanMode] }), _jsx("span", { children: run.quickScan ? 'Quick scan enabled' : 'Full discovery flow' })] })] })] })] })), _jsx("h2", { className: "text-sm font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider mb-3", children: "Findings" }), run.testInteractionRunId !== null && isLoading && (_jsx("div", { className: "text-sm text-gray-500 dark:text-gray-400 py-8 text-center", children: "Loading findings..." })), run.testInteractionRunId === null && rootFindingsLoading && (_jsx("div", { className: "text-sm text-gray-500 dark:text-gray-400 py-8 text-center", children: "Loading findings..." })), run.testInteractionRunId !== null && !isLoading && findings.length === 0 && (_jsx(EmptyState, { description: "No findings for this test run." })), run.testInteractionRunId === null &&
94
+ !rootFindingsLoading &&
95
+ rootFindingSummaries.length === 0 && (_jsx(EmptyState, { description: "No grouped findings for this scan run." })), ((run.testInteractionRunId !== null && !isLoading && findings.length > 0) ||
96
+ (run.testInteractionRunId === null &&
97
+ !rootFindingsLoading &&
98
+ rootFindingSummaries.length > 0)) && (_jsxs("div", { className: "space-y-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-3 border-b border-gray-200 pb-3 dark:border-gray-800", children: [_jsx("div", { className: "inline-flex overflow-hidden rounded border border-gray-300 dark:border-gray-700", children: ['all', 'error', 'warning'].map(type => (_jsx("button", { type: "button", onClick: () => setFindingTypeFilter(type), className: `px-3 py-1.5 text-xs font-medium capitalize ${findingTypeFilter === type
76
99
  ? 'bg-gray-900 text-white dark:bg-gray-100 dark:text-gray-900'
77
- : 'bg-white text-gray-600 hover:bg-gray-50 dark:bg-gray-900 dark:text-gray-300 dark:hover:bg-gray-800'}`, children: type }, type))) }), _jsxs("select", { value: expertiseFilter, onChange: event => setExpertiseFilter(event.target.value), className: "h-8 rounded border border-gray-300 bg-white px-2 text-xs text-gray-700 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-200", "aria-label": "Filter findings by expertise", children: [_jsx("option", { value: "all", children: "All expertises" }), expertiseFilters.map(expertise => (_jsx("option", { value: expertise, children: expertise }, expertise)))] })] }), findingGroups.map(group => {
78
- const finding = group[0];
79
- const tag = getFindingExpertiseSlug(finding);
80
- const remediation = getFindingRemediation(finding);
81
- return (_jsx(Card, { variant: "bordered", padding: "md", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx(FindingTypeBadge, { type: finding.type }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [tag && (_jsx("span", { className: "inline-flex shrink-0 rounded bg-gray-100 px-1.5 py-0.5 text-[10px] font-medium text-gray-500 dark:bg-gray-700 dark:text-gray-400", children: tag })), _jsx("span", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: getFindingDisplayTitle(finding) }), group.length > 1 && (_jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [group.length, " occurrences"] }))] }), _jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: finding.description }), remediation && (_jsx("p", { className: "text-xs text-gray-600 dark:text-gray-300 mt-2", children: remediation })), finding.createdAt && (_jsx("p", { className: "text-xs text-gray-400 dark:text-gray-500 mt-2", children: formatDate(finding.createdAt) }))] })] }) }, `${finding.ruleId ?? finding.id}`));
82
- }), findingGroups.length === 0 && (_jsx(EmptyState, { description: "No findings match the active filters." }))] })), run.testInteractionRunId !== null && !isCaseRunLoading && (consoleLog || networkLog) && (_jsxs("div", { className: "mt-8 space-y-6", children: [_jsx("h2", { className: "text-sm font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider", children: "Runtime Signals" }), consoleLog && (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-sm font-medium text-gray-900 dark:text-gray-100", children: "Console Log" }), _jsx("pre", { className: "max-h-80 overflow-auto rounded-lg border border-gray-200 bg-gray-50 p-4 text-xs leading-5 text-gray-700 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300", children: consoleLog })] })), networkLog && (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-sm font-medium text-gray-900 dark:text-gray-100", children: "Network Log" }), _jsx("pre", { className: "max-h-80 overflow-auto rounded-lg border border-gray-200 bg-gray-50 p-4 text-xs leading-5 text-gray-700 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300", children: networkLog })] }))] }))] }) }));
100
+ : 'bg-white text-gray-600 hover:bg-gray-50 dark:bg-gray-900 dark:text-gray-300 dark:hover:bg-gray-800'}`, children: type }, type))) }), _jsxs("select", { value: expertiseFilter, onChange: event => setExpertiseFilter(event.target.value), className: "h-8 rounded border border-gray-300 bg-white px-2 text-xs text-gray-700 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-200", "aria-label": "Filter findings by expertise", children: [_jsx("option", { value: "all", children: "All expertises" }), expertiseFilters.map(expertise => (_jsx("option", { value: expertise, children: expertise }, expertise)))] })] }), run.testInteractionRunId === null
101
+ ? filteredRootFindingSummaries.map((finding) => (_jsx(Card, { variant: "bordered", padding: "md", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx(FindingTypeBadge, { type: finding.type }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-1.5", children: [finding.expertiseId && (_jsx("span", { className: "inline-flex shrink-0 rounded bg-gray-100 px-1.5 py-0.5 text-[10px] font-medium capitalize text-gray-500 dark:bg-gray-700 dark:text-gray-400", children: finding.expertiseId })), _jsx("span", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: finding.label }), _jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [finding.findingCount, " occurrence", finding.findingCount === 1 ? '' : 's'] }), _jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [finding.affectedPages, " page", finding.affectedPages === 1 ? '' : 's'] })] }), _jsx("p", { className: "mt-1 text-xs text-gray-500 dark:text-gray-400", children: finding.description }), finding.remediation && (_jsx("p", { className: "mt-2 text-xs text-gray-600 dark:text-gray-300", children: finding.remediation })), finding.samplePaths.length > 0 && (_jsx("p", { className: "mt-2 text-xs text-gray-400 dark:text-gray-500", children: finding.samplePaths.join(' | ') }))] })] }) }, `${finding.ruleId ?? finding.title}`)))
102
+ : findingGroups.map(group => {
103
+ const finding = group[0];
104
+ const tag = getFindingExpertiseSlug(finding);
105
+ const remediation = getFindingRemediation(finding);
106
+ return (_jsx(Card, { variant: "bordered", padding: "md", children: _jsxs("div", { className: "flex items-start gap-3", children: [_jsx(FindingTypeBadge, { type: finding.type }), _jsxs("div", { className: "flex-1 min-w-0", children: [_jsxs("div", { className: "flex items-center gap-1.5", children: [tag && (_jsx("span", { className: "inline-flex shrink-0 rounded bg-gray-100 px-1.5 py-0.5 text-[10px] font-medium text-gray-500 dark:bg-gray-700 dark:text-gray-400", children: tag })), _jsx("span", { className: "text-sm font-medium text-gray-900 dark:text-gray-100", children: getFindingDisplayTitle(finding) }), group.length > 1 && (_jsxs("span", { className: "text-xs text-gray-500 dark:text-gray-400", children: [group.length, " occurrences"] }))] }), _jsx("p", { className: "text-xs text-gray-500 dark:text-gray-400 mt-1", children: finding.description }), remediation && (_jsx("p", { className: "text-xs text-gray-600 dark:text-gray-300 mt-2", children: remediation })), finding.createdAt && (_jsx("p", { className: "text-xs text-gray-400 dark:text-gray-500 mt-2", children: formatDate(finding.createdAt) }))] })] }) }, `${finding.ruleId ?? finding.id}`));
107
+ }), ((run.testInteractionRunId === null && filteredRootFindingSummaries.length === 0) ||
108
+ (run.testInteractionRunId !== null && findingGroups.length === 0)) && (_jsx(EmptyState, { description: "No findings match the active filters." }))] })), run.testInteractionRunId !== null && !isCaseRunLoading && (consoleLog || networkLog) && (_jsxs("div", { className: "mt-8 space-y-6", children: [_jsx("h2", { className: "text-sm font-semibold text-gray-500 dark:text-gray-400 uppercase tracking-wider", children: "Runtime Signals" }), consoleLog && (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-sm font-medium text-gray-900 dark:text-gray-100", children: "Console Log" }), _jsx("pre", { className: "max-h-80 overflow-auto rounded-lg border border-gray-200 bg-gray-50 p-4 text-xs leading-5 text-gray-700 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300", children: consoleLog })] })), networkLog && (_jsxs("div", { children: [_jsx("h3", { className: "mb-2 text-sm font-medium text-gray-900 dark:text-gray-100", children: "Network Log" }), _jsx("pre", { className: "max-h-80 overflow-auto rounded-lg border border-gray-200 bg-gray-50 p-4 text-xs leading-5 text-gray-700 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300", children: networkLog })] }))] }))] }) }));
83
109
  }
84
110
  //# sourceMappingURL=TestRunDetailPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestRunDetailPage.js","sourceRoot":"","sources":["../../src/pages/TestRunDetailPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestRunDetailPage.js","sourceRoot":"","sources":["../../src/pages/TestRunDetailPage.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/testomniac_ui",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "description": "Shared dashboard UI components, pages, and hooks for Testomniac apps (router/i18n-agnostic)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -29,9 +29,9 @@
29
29
  "@heroicons/react": ">=2.0.0",
30
30
  "@sudobility/components": "^5.0.82",
31
31
  "@sudobility/design": "^1.1.32",
32
- "@sudobility/testomniac_client": "^0.0.108",
33
- "@sudobility/testomniac_lib": "^0.0.119",
34
- "@sudobility/testomniac_types": "^0.0.83",
32
+ "@sudobility/testomniac_client": "^0.0.110",
33
+ "@sudobility/testomniac_lib": "^0.0.120",
34
+ "@sudobility/testomniac_types": "^0.0.85",
35
35
  "@sudobility/types": "^1.9.62",
36
36
  "@tanstack/react-query": ">=5.0.0",
37
37
  "@tanstack/react-table": ">=8.0.0",
@@ -44,9 +44,9 @@
44
44
  "@heroicons/react": "^2.2.0",
45
45
  "@sudobility/components": "^5.0.82",
46
46
  "@sudobility/design": "^1.1.32",
47
- "@sudobility/testomniac_client": "^0.0.108",
48
- "@sudobility/testomniac_lib": "^0.0.119",
49
- "@sudobility/testomniac_types": "^0.0.83",
47
+ "@sudobility/testomniac_client": "^0.0.110",
48
+ "@sudobility/testomniac_lib": "^0.0.120",
49
+ "@sudobility/testomniac_types": "^0.0.85",
50
50
  "@sudobility/types": "^1.9.62",
51
51
  "@tanstack/react-query": "^5.90.5",
52
52
  "@tanstack/react-table": "^8.21.3",