export default async function caserunNativeSmoke({ page, goto, wait, screenshot, recordStep }) {
  await goto("/caserun");
  const panel = page.locator("#caserun-panel");
  await panel.waitFor({ state: "visible", timeout: 20000 });
  const nativeCase = page.locator(".caserun-case-row").filter({ hasText: "native-completed" }).first();
  await nativeCase.waitFor({ state: "visible", timeout: 20000 });
  await nativeCase.click();
  await page.locator("#caserun-start").click();
  await page.locator("#caserun-refresh").click();
  await wait(300);

  const mode = (await page.locator("#caserun-mode").textContent())?.trim() || "";
  const runId = (await page.locator("#caserun-run-id").textContent())?.trim() || "";
  const events = await page.locator("#caserun-event-text").textContent();
  const aggregateStatus = (await page.locator("#caserun-aggregate-status").textContent())?.trim() || "";
  const aggregateRunId = (await page.locator("#caserun-aggregate-run-id").textContent())?.trim() || "";
  const aggregateSha = (await page.locator("#caserun-aggregate-sha").textContent())?.trim() || "";
  const evidenceStatus = (await page.locator("#caserun-evidence-status").textContent())?.trim() || "";
  await page.getByRole("tab", { name: "产物" }).click();
  const artifactText = (await page.locator(".caserun-artifact-row").textContent()) || "";
  await page.getByRole("tab", { name: "编排" }).click();
  const workflowId = (await page.locator("#caserun-workflow-id").textContent())?.trim() || "";
  await page.getByRole("tab", { name: "结果" }).click();
  const conditions = {
    mode: mode.includes("native-test"),
    aggregateStatus: aggregateStatus === "已完成",
    aggregateRunId: aggregateRunId === runId && runId.startsWith("native-completed-"),
    aggregateSha: /^[a-f0-9]{64}$/.test(aggregateSha),
    evidenceStatus: evidenceStatus === "已完成",
    artifact: artifactText.includes("native-result.json") && artifactText.includes("335 B"),
    workflow: workflowId === `harnessrl-caserun-${runId}`,
    queuedEvent: events?.includes("进入队列") === true,
    buildEvent: events?.includes("构建完成") === true,
    completedEvent: events?.includes("运行完成") === true
  };
  const image = await screenshot("caserun-native-completed.png");
  recordStep("caserun-native-completed", { ok: Object.values(conditions).every(Boolean), conditions });
  return {
    ok: Object.values(conditions).every(Boolean),
    mode: "native-test",
    conditions,
    screenshot: image,
    finalUrl: page.url(),
    valuesRedacted: true
  };
}
