test(client): чистые тесты invitationReference + страница согласования запускается в jsdom

- getInvitationReferenceLabel/getDeliveryNumberDigits вынесены в отдельный тест-файл
  (без импорта supabaseClient) — проверяются номер доставки и «Доставка …»
- supabaseClient: lock берём как «no-lock», если navigator.locks.request нет
  (jsdom) — иначе весь тест-файл падал на импорте и тесты страницы не запускались
This commit is contained in:
Hermes 2026-09-28 12:25:06 +02:00
parent d98c44c9fd
commit 8fa05f1746
2 changed files with 37 additions and 1 deletions

View File

@ -0,0 +1,30 @@
import { describe, expect, it } from "vitest";
import {
getDeliveryNumberDigits,
getInvitationReferenceLabel,
} from "./invitationReference";
describe("invitationReference", () => {
it("показывает номер заказа как «Доставка …», без экранирования из 1С", () => {
expect(getInvitationReferenceLabel({ orderItems: [{ name: "ТП\\-010796" }] })).toBe(
"Доставка ТП-010796",
);
expect(getInvitationReferenceLabel({ orderNumber: "CD-240032" })).toBe("Доставка CD-240032");
expect(getInvitationReferenceLabel({})).toBe("Доставка —");
});
it("несколько счетов — через запятую", () => {
expect(
getInvitationReferenceLabel({
orderItems: [{ name: "СФ Т\\ЕА-28687" }, { name: "СФ Т\\ЕА-28700" }],
}),
).toBe("Доставки: СФ ТЕА-28687, СФ ТЕА-28700");
});
it("номер доставки — только цифры, «ТП\\-010796» → «010796»", () => {
expect(getDeliveryNumberDigits({ orderItems: [{ name: "ТП\\-010796" }] })).toBe("010796");
expect(getDeliveryNumberDigits({ orderNumbers: ["ТП\\-010557", "ТП\\-010599"] })).toBe("010557");
expect(getDeliveryNumberDigits({ orderNumber: "9788324113|28.09.2026" })).toBe("978832411328092026");
expect(getDeliveryNumberDigits({})).toBe("");
});
});

View File

@ -114,7 +114,13 @@ export const supabase = hasSupabaseConfig
storage: secureStorage,
autoRefreshToken: true,
detectSessionInUrl: false,
lock: navigator.locks ? undefined : "no-lock",
// navigator.locks есть не везде (jsdom/старые окружения): тогда фиксированный lock
lock:
typeof navigator !== "undefined" &&
navigator.locks &&
typeof navigator.locks.request === "function"
? undefined
: "no-lock",
},
global: {
headers: { "x-application-name": "supersam" },