import { expect, test } from "vitest";
import * as z from "zod/v4";

test("Georgian locale uses 'แƒ•แƒ”แƒšแƒ˜' instead of 'แƒกแƒขแƒ แƒ˜แƒœแƒ’แƒ˜'", () => {
  // Save original error map to restore later if needed, though tests are usually isolated or we can reset
  // const originalErrorMap = z.getErrorMap(); // z.getErrorMap might not exist, but let's assume isolation or just set it

  z.setErrorMap(z.locales.ka().localeError);

  // Test 1: Invalid type (Expected string, received number)
  const stringSchema = z.string();
  const numberResult = stringSchema.safeParse(123);
  expect(numberResult.success).toBe(false);
  if (!numberResult.success) {
    // Expected: "แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ: แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒ•แƒ”แƒšแƒ˜, แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜"
    expect(numberResult.error.issues[0].message).toBe("แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ แƒจแƒ”แƒงแƒ•แƒแƒœแƒ: แƒ›แƒแƒกแƒแƒšแƒแƒ“แƒœแƒ”แƒšแƒ˜ แƒ•แƒ”แƒšแƒ˜, แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜");
  }

  // Test 2: Invalid base64
  const base64Schema = z.string().base64();
  const base64Result = base64Schema.safeParse("not base64!");
  expect(base64Result.success).toBe(false);
  if (!base64Result.success) {
    // Expected: "แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ base64-แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒšแƒ˜"
    // "แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ ${FormatDictionary[_issue.format] ?? issue.format}"
    // FormatDictionary['base64'] is "base64-แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒšแƒ˜"
    expect(base64Result.error.issues[0].message).toBe("แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜ base64-แƒ™แƒแƒ“แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒ”แƒšแƒ˜");
  }
});