Skip to article
Documentation

src/features/reviews/review-error-message.test.ts

Linked repository file from this build.

import { expect, test } from "bun:test";
import { reviewErrorMessage } from "./review-error-message";

test("serialized validation issues become a single readable message without duplicates", () => {
  expect(
    reviewErrorMessage(
      JSON.stringify([
        {
          code: "custom",
          path: ["value", "householdSize"],
          message: "Household size must be 1 through 20.",
        },
        { code: "custom", path: ["value", "income"], message: "Enter an income type." },
        { message: "Enter an income type." },
      ]),
    ),
  ).toBe("Household size must be 1 through 20. Enter an income type.");
});

test("ordinary and unexpected error payloads remain intact", () => {
  for (const message of [
    "Unable to save review.",
    "[]",
    '[{"code":"custom"}]',
    '{"error":"Unavailable"}',
  ]) {
    expect(reviewErrorMessage(message)).toBe(message);
  }
});