import type { ProtocolFixture } from "./types.js";

export const stdoutContaminationKnownBad: ProtocolFixture = {
  fixtureId: "protocol/stdout-contamination-known-bad",
  protocolVersion: "1.0",
  scenarios: [
    {
      scenarioId: "human-log-on-stdout",
      kind: "stdout-purity",
      stdout:
        '{"seq":1,"type":"progress","payload":{"pct":50}}\n[INFO] worker started\n{"seq":2,"type":"terminal","payload":{"status":"ok"}}\n',
      declaredSideChannels: ["stderr"],
      terminalType: "terminal",
      observation: {
        protocolFrames: [
          '{"seq":1,"type":"progress","payload":{"pct":50}}',
          '{"seq":2,"type":"terminal","payload":{"status":"ok"}}',
        ],
        contaminations: [{ offset: 52, text: "[INFO] worker started\n" }],
        partialFrames: 0,
        terminalCount: 1,
        duplicateTerminalCount: 0,
        postTerminalEvents: 0,
      },
    },
    {
      scenarioId: "partial-frame-on-stdout",
      kind: "stdout-purity",
      stdout: '{"seq":1,"type":"progress","payload":{"pct":50}}\n{"seq":2,"type":"term',
      terminalType: "terminal",
      observation: {
        protocolFrames: ['{"seq":1,"type":"progress","payload":{"pct":50}}'],
        contaminations: [],
        partialFrames: 1,
        terminalCount: 0,
        duplicateTerminalCount: 0,
        postTerminalEvents: 0,
      },
    },
    {
      scenarioId: "duplicate-terminal-on-stdout",
      kind: "stdout-purity",
      stdout:
        '{"seq":1,"type":"terminal","payload":{"status":"ok"}}\n{"seq":2,"type":"terminal","payload":{"status":"ok"}}\n',
      terminalType: "terminal",
      observation: {
        protocolFrames: [
          '{"seq":1,"type":"terminal","payload":{"status":"ok"}}',
          '{"seq":2,"type":"terminal","payload":{"status":"ok"}}',
        ],
        contaminations: [],
        partialFrames: 0,
        terminalCount: 2,
        duplicateTerminalCount: 1,
        postTerminalEvents: 0,
      },
    },
    {
      scenarioId: "post-terminal-event-on-stdout",
      kind: "stdout-purity",
      stdout:
        '{"seq":1,"type":"terminal","payload":{"status":"ok"}}\n{"seq":2,"type":"progress","payload":{"pct":10}}\n',
      terminalType: "terminal",
      observation: {
        protocolFrames: [
          '{"seq":1,"type":"terminal","payload":{"status":"ok"}}',
          '{"seq":2,"type":"progress","payload":{"pct":10}}',
        ],
        contaminations: [],
        partialFrames: 0,
        terminalCount: 1,
        duplicateTerminalCount: 0,
        postTerminalEvents: 1,
      },
    },
  ],
};
