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

export const childProcessKnownBad: BoundedFixture = {
  fixtureId: "bounded/child-process-known-bad",
  boundedVersion: "1.0",
  scenarios: [
    {
      scenarioId: "leaked-file-descriptor",
      kind: "child-process",
      declared: {
        descriptors: [0, 1, 2],
        environmentKeys: ["PATH", "HOME"],
        signals: ["SIGTERM", "SIGINT"],
        workingDirectory: "/srv/app",
        processGroup: "app-workers",
      },
      observed: {
        descriptors: [0, 1, 2, 5],
        environment: {
          PATH: "/usr/bin",
          HOME: "/srv/app",
        },
        signals: ["SIGTERM", "SIGINT"],
        workingDirectory: "/srv/app",
        processGroup: "app-workers",
      },
    },
    {
      scenarioId: "undeclared-environment-variable",
      kind: "child-process",
      declared: {
        descriptors: [0, 1, 2],
        environmentKeys: ["PATH"],
        workingDirectory: "/srv/app",
        processGroup: 42_000,
      },
      observed: {
        descriptors: [0, 1, 2],
        environment: {
          PATH: "/usr/bin",
          DATABASE_URL: "postgres://prod/db",
        },
        workingDirectory: "/srv/app",
        processGroup: 42_000,
      },
    },
    {
      scenarioId: "wrong-process-group",
      kind: "child-process",
      declared: {
        descriptors: [0, 1, 2],
        environmentKeys: ["PATH"],
        workingDirectory: "/srv/app",
        processGroup: "isolated-sidecar",
      },
      observed: {
        descriptors: [0, 1, 2],
        environment: {
          PATH: "/usr/bin",
        },
        workingDirectory: "/srv/app",
        processGroup: "parent-shell",
      },
    },
    {
      scenarioId: "undeclared-signal-handler",
      kind: "child-process",
      declared: {
        descriptors: [0, 1, 2],
        environmentKeys: ["PATH"],
        signals: ["SIGTERM"],
        workingDirectory: "/tmp/work",
        processGroup: "batch-runner",
      },
      observed: {
        descriptors: [0, 1, 2],
        environment: {
          PATH: "/usr/bin",
        },
        signals: ["SIGTERM", "SIGHUP"],
        workingDirectory: "/tmp/work",
        processGroup: "batch-runner",
      },
    },
    {
      scenarioId: "wrong-working-directory",
      kind: "child-process",
      declared: {
        descriptors: [0, 1, 2],
        environmentKeys: ["PATH"],
        workingDirectory: "/srv/app",
        processGroup: "app-workers",
      },
      observed: {
        descriptors: [0, 1, 2],
        environment: {
          PATH: "/usr/bin",
        },
        workingDirectory: "/home/user",
        processGroup: "app-workers",
      },
    },
  ],
};
