zod
Version:
TypeScript-first schema declaration and validation library with static type inference
124 lines (123 loc) • 4.88 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const vitest_1 = require("vitest");
const be_js_1 = __importDefault(require("../../../locales/be.js"));
(0, vitest_1.describe)("Belarusian localization", () => {
const { localeError } = (0, be_js_1.default)();
(0, vitest_1.describe)("pluralization rules", () => {
for (const { type, cases } of TEST_CASES) {
(0, vitest_1.describe)(`${type} pluralization`, () => {
for (const { count, expected } of cases) {
(0, vitest_1.it)(`correctly pluralizes ${count} ${type}`, () => {
const error = localeError({
code: "too_small",
minimum: count,
type: "number",
inclusive: true,
path: [],
origin: type,
input: count - 1,
});
(0, vitest_1.expect)(error).toContain(expected);
});
}
});
}
(0, vitest_1.it)("handles negative numbers correctly", () => {
const error = localeError({
code: "too_small",
minimum: -2,
type: "number",
inclusive: true,
path: [],
origin: "array",
input: -3,
});
(0, vitest_1.expect)(error).toContain("-2 элементы");
});
(0, vitest_1.it)("handles zero correctly", () => {
const error = localeError({
code: "too_small",
minimum: 0,
type: "number",
inclusive: true,
path: [],
origin: "array",
input: -1,
});
(0, vitest_1.expect)(error).toContain("0 элементаў");
});
(0, vitest_1.it)("handles bigint values correctly", () => {
const error = localeError({
code: "too_small",
minimum: BigInt(21),
type: "number",
inclusive: true,
path: [],
origin: "array",
input: BigInt(20),
});
(0, vitest_1.expect)(error).toContain("21 элемент");
});
});
});
const TEST_CASES = [
{
type: "array",
cases: [
{ count: 1, expected: "1 элемент" },
{ count: 2, expected: "2 элементы" },
{ count: 5, expected: "5 элементаў" },
{ count: 11, expected: "11 элементаў" },
{ count: 21, expected: "21 элемент" },
{ count: 22, expected: "22 элементы" },
{ count: 25, expected: "25 элементаў" },
{ count: 101, expected: "101 элемент" },
{ count: 111, expected: "111 элементаў" },
],
},
{
type: "set",
cases: [
{ count: 1, expected: "1 элемент" },
{ count: 2, expected: "2 элементы" },
{ count: 5, expected: "5 элементаў" },
{ count: 11, expected: "11 элементаў" },
{ count: 21, expected: "21 элемент" },
{ count: 22, expected: "22 элементы" },
{ count: 25, expected: "25 элементаў" },
{ count: 101, expected: "101 элемент" },
{ count: 111, expected: "111 элементаў" },
],
},
{
type: "string",
cases: [
{ count: 1, expected: "1 сімвал" },
{ count: 2, expected: "2 сімвалы" },
{ count: 5, expected: "5 сімвалаў" },
{ count: 11, expected: "11 сімвалаў" },
{ count: 21, expected: "21 сімвал" },
{ count: 22, expected: "22 сімвалы" },
{ count: 25, expected: "25 сімвалаў" },
],
},
{
type: "file",
cases: [
{ count: 0, expected: "0 байтаў" },
{ count: 1, expected: "1 байт" },
{ count: 2, expected: "2 байты" },
{ count: 5, expected: "5 байтаў" },
{ count: 11, expected: "11 байтаў" },
{ count: 21, expected: "21 байт" },
{ count: 22, expected: "22 байты" },
{ count: 25, expected: "25 байтаў" },
{ count: 101, expected: "101 байт" },
{ count: 110, expected: "110 байтаў" },
],
},
];