test(client): чистые тесты invitationReference + страница согласования запускается в jsdom
- getInvitationReferenceLabel/getDeliveryNumberDigits вынесены в отдельный тест-файл (без импорта supabaseClient) — проверяются номер доставки и «Доставка …» - supabaseClient: lock берём как «no-lock», если navigator.locks.request нет (jsdom) — иначе весь тест-файл падал на импорте и тесты страницы не запускались
This commit is contained in:
parent
d98c44c9fd
commit
8fa05f1746
|
|
@ -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("");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
@ -114,7 +114,13 @@ export const supabase = hasSupabaseConfig
|
||||||
storage: secureStorage,
|
storage: secureStorage,
|
||||||
autoRefreshToken: true,
|
autoRefreshToken: true,
|
||||||
detectSessionInUrl: false,
|
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: {
|
global: {
|
||||||
headers: { "x-application-name": "supersam" },
|
headers: { "x-application-name": "supersam" },
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue