feat(tests): attack_success 3-value UI, data classification badge, reorder containment options
Aegis CI / lint-and-test (push) Has been cancelled
Snyk Security Scan / Python vulnerabilities (backend) (push) Has been cancelled
Snyk Security Scan / npm vulnerabilities (frontend) (push) Has been cancelled
Snyk Security Scan / Docker image vulnerabilities (backend) (push) Has been cancelled

This commit is contained in:
kitos
2026-07-06 16:19:50 +02:00
parent 022c1c756a
commit c0a88fc489
9 changed files with 236 additions and 50 deletions
@@ -18,8 +18,9 @@ import {
} from "lucide-react";
import { useMutation } from "@tanstack/react-query";
import { requestDiscussion } from "../../api/tests";
import type { Test, TestState, User } from "../../types/models";
import type { Test, TestState, User, DataClassification } from "../../types/models";
import LiveTimer from "./LiveTimer";
import DataClassificationBadge from "./DataClassificationBadge";
// ── Progress steps ─────────────────────────────────────────────────
@@ -87,6 +88,8 @@ interface TestDetailHeaderProps {
onHold: () => void;
onResume: () => void;
isTogglingHold: boolean;
onUpdateClassification: (value: DataClassification) => void;
isUpdatingClassification: boolean;
}
// ── Component ──────────────────────────────────────────────────────
@@ -109,6 +112,8 @@ export default function TestDetailHeader({
onHold,
onResume,
isTogglingHold,
onUpdateClassification,
isUpdatingClassification,
}: TestDetailHeaderProps) {
const role = user?.role ?? "";
const currentIdx = STATE_INDEX[test.state];
@@ -524,6 +529,12 @@ export default function TestDetailHeader({
>
{getStateLabel(test)}
</span>
<DataClassificationBadge
value={test.data_classification}
canEdit={role === "admin"}
isSaving={isUpdatingClassification}
onChange={onUpdateClassification}
/>
</div>
<p className="mt-1 text-sm text-gray-400">
Created {formatDate(test.created_at)}