/** * US-27 — Redteam instantiates a template into an engagement. * Covers AC-27.1 → AC-27.7. * AC-27.3 (decoupling) tested via API: modifying instance ≠ modifying template and vice-versa. */ import { test, expect } from '@playwright/test'; import { adminToken, createEngagement, deleteEngagement, deleteUserByUsername, ensureUser, login, makeClient, } from '../fixtures/api'; import { seedTokenInStorage } from '../fixtures/auth'; const REDTEAM_USER = 'us27-redteam'; const SOC_USER = 'us27-soc'; const PASS = 'us27-pass-strong'; interface Template { id: number; name: string; techniques: unknown[]; tactics: unknown[]; [k: string]: unknown; } interface Simulation { id: number; name: string; status: string; techniques: unknown[]; tactic_ids?: unknown[]; [k: string]: unknown; } async function createTemplate(token: string, payload: Record): Promise