import { describe, it, expect } from "vitest";
import { TEMPLATES } from "../src/templates/proactive-tips.js";
import { SUPPORTED_LANGUAGE_TAGS } from "@app/shared-types";

describe("proactive tip i18n parity", () => {
  const canonical = new Set<string>(SUPPORTED_LANGUAGE_TAGS);

  for (const [variant, locales] of Object.entries(TEMPLATES)) {
    it(`${variant} täcker exakt de kanoniska språken utan dubbletter`, () => {
      const keys = Object.keys(locales);
      const uniqueKeys = new Set(keys);

      expect(keys).toHaveLength(SUPPORTED_LANGUAGE_TAGS.length);
      expect(uniqueKeys.size).toBe(keys.length);

      for (const tag of SUPPORTED_LANGUAGE_TAGS) {
        expect(keys).toContain(tag);
      }

      for (const key of keys) {
        expect(canonical.has(key)).toBe(true);
      }
    });
  }
});
