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

export const canonicalizationKnownBad: DecoderFixture = {
  fixtureId: "decoder/canonicalization-known-bad",
  scenarios: [
    {
      scenarioId: "non-idempotent-canonicalization",
      kind: "canonicalization",
      passes: {
        input: "User-Name",
        firstPass: "user_name",
        secondPass: "user__name",
      },
      constraints: { idempotent: true },
    },
    {
      scenarioId: "case-separator-collision",
      kind: "canonicalization",
      passes: {
        input: "user_name",
        firstPass: "username",
        secondPass: "username",
      },
      constraints: { collisionSafe: true },
      collisionPair: {
        left: "user_name",
        right: "UserName",
        canonical: "username",
      },
    },
    {
      scenarioId: "non-round-trip-canonicalization",
      kind: "canonicalization",
      passes: {
        input: "café",
        firstPass: "cafe",
        secondPass: "cafe",
        decodeAfterCanonicalize: "cafe",
      },
      constraints: { reversible: true },
    },
  ],
};
