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

export const terminalIntegrityKnownBad: ProtocolFixture = {
  fixtureId: "protocol/terminal-integrity-known-bad",
  protocolVersion: "1.0",
  scenarios: [
    {
      scenarioId: "missing-terminal",
      kind: "stream-decode",
      frames: ['{"seq":1,"type":"progress","payload":{"pct":50}}'],
      terminalType: "terminal",
      constraints: {
        requireSingleTerminal: true,
        chunkBoundaryIndependent: true,
      },
      chunkings: [
        {
          chunkingId: "whole",
          chunks: ['{"seq":1,"type":"progress","payload":{"pct":50}}\n'],
          observation: {
            events: [{ seq: 1, type: "progress", payload: { pct: 50 } }],
            terminalCount: 0,
            parseErrors: [],
          },
        },
      ],
    },
    {
      scenarioId: "duplicate-terminal",
      kind: "stream-decode",
      frames: [
        '{"seq":1,"type":"terminal","payload":{"status":"ok"}}',
        '{"seq":2,"type":"terminal","payload":{"status":"ok"}}',
      ],
      terminalType: "terminal",
      constraints: {
        requireSingleTerminal: true,
      },
      chunkings: [
        {
          chunkingId: "whole",
          chunks: [
            '{"seq":1,"type":"terminal","payload":{"status":"ok"}}\n{"seq":2,"type":"terminal","payload":{"status":"ok"}}\n',
          ],
          observation: {
            events: [
              { seq: 1, type: "terminal", payload: { status: "ok" } },
              { seq: 2, type: "terminal", payload: { status: "ok" } },
            ],
            terminalCount: 2,
            parseErrors: [],
          },
        },
      ],
    },
  ],
};
