diff --git a/src/components/client/invitationReference.test.js b/src/components/client/invitationReference.test.js new file mode 100644 index 0000000..8d86670 --- /dev/null +++ b/src/components/client/invitationReference.test.js @@ -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(""); + }); +}); diff --git a/src/supabaseClient.jsx b/src/supabaseClient.jsx index 05f1200..b90f0d4 100644 --- a/src/supabaseClient.jsx +++ b/src/supabaseClient.jsx @@ -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" },