diff --git a/jest.config.js b/jest.config.js index c8e9c87..b0102f3 100644 --- a/jest.config.js +++ b/jest.config.js @@ -8,10 +8,10 @@ module.exports = { '^.+\\.[jt]sx?$': 'babel-jest', }, moduleNameMapper: { + '\\.svg(\\?react)?$': '/test/__mocks__/svgrMock.js', '^@/(.*)$': '/src/$1', '\\.(css|scss|sass)$': 'identity-obj-proxy', '\\.(png|jpg|jpeg|gif|webp)$': '/test/__mocks__/fileMock.js', - '\\.svg(\\?react)?$': '/test/__mocks__/svgrMock.js', '^marked$': '/test/__mocks__/marked.js', '^@weni/webchat-service$': '/test/__mocks__/@weni/webchat-service.js', '^react-i18next$': '/test/__mocks__/react-i18next.js', diff --git a/src/components/ConversationStarters/ConversationStarters.test.jsx b/src/components/ConversationStarters/ConversationStarters.test.jsx index b250a2a..95606c8 100644 --- a/src/components/ConversationStarters/ConversationStarters.test.jsx +++ b/src/components/ConversationStarters/ConversationStarters.test.jsx @@ -88,7 +88,7 @@ describe('ConversationStarterButton', () => { ).toBeInTheDocument(); }); - it('renders using Button component with weni-button class', () => { + it('renders using FSButton component with weni-fs-button class', () => { const { container } = render( { />, ); - const button = container.querySelector('.weni-button'); + const button = container.querySelector('.weni-fs-button'); expect(button).toBeInTheDocument(); }); }); diff --git a/src/components/Product/InlineProduct.jsx b/src/components/Product/InlineProduct.jsx index a80c2d9..6e8ab4a 100644 --- a/src/components/Product/InlineProduct.jsx +++ b/src/components/Product/InlineProduct.jsx @@ -81,9 +81,11 @@ export function InlineProduct({ : null; const productURLObject = useMemo(() => { - return URL.canParse(productURL) - ? new URL(productURL) - : { origin: '', pathname: '' }; + try { + return new URL(productURL); + } catch { + return { origin: '', pathname: '' }; + } }, [productURL]); const canUserNavigateToProductPage = useMemo(() => { diff --git a/src/views/Cart.test.jsx b/src/views/Cart.test.jsx index 559d363..930849e 100644 --- a/src/views/Cart.test.jsx +++ b/src/views/Cart.test.jsx @@ -53,6 +53,7 @@ function setupMockContext(cartItems = {}) { setCart: mockSetCart, clearPageHistory: mockClearPageHistory, sendOrder: mockSendOrder, + config: { addToCart: false }, }); } diff --git a/test/components/VoiceMode/VoiceModeButton.test.jsx b/test/components/VoiceMode/VoiceModeButton.test.jsx index 9a4bf0e..68e78a6 100644 --- a/test/components/VoiceMode/VoiceModeButton.test.jsx +++ b/test/components/VoiceMode/VoiceModeButton.test.jsx @@ -1,15 +1,6 @@ import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -const SvgStub = (props) => ; -jest.mock("@/utils/icons", () => ({ - icons: new Proxy( - {}, - { - get: () => ({ default: SvgStub, filled: SvgStub }), - }, - ), -})); import { VoiceModeButton } from "@/components/VoiceMode/VoiceModeButton"; diff --git a/test/components/VoiceMode/VoiceModeError.test.jsx b/test/components/VoiceMode/VoiceModeError.test.jsx index 3e5d5df..4685f3b 100644 --- a/test/components/VoiceMode/VoiceModeError.test.jsx +++ b/test/components/VoiceMode/VoiceModeError.test.jsx @@ -1,15 +1,6 @@ import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -const SvgStub = (props) => ; -jest.mock("@/utils/icons", () => ({ - icons: new Proxy( - {}, - { - get: () => ({ default: SvgStub, filled: SvgStub }), - }, - ), -})); import { VoiceModeError } from "@/components/VoiceMode/VoiceModeError"; diff --git a/test/services/voice/AudioCapture.test.js b/test/services/voice/AudioCapture.test.js index 1e92fb8..6b7b55e 100644 --- a/test/services/voice/AudioCapture.test.js +++ b/test/services/voice/AudioCapture.test.js @@ -123,9 +123,9 @@ describe("AudioCapture", () => { // -- requestPermission ---------------------------------------------------- - describe("requestPermission()", () => { + describe("requestPermission() (static)", () => { it("returns true when getUserMedia succeeds", async () => { - const result = await capture.requestPermission(); + const result = await AudioCapture.requestPermission(); expect(result).toBe(true); const stream = await navigator.mediaDevices.getUserMedia.mock.results[0].value; @@ -136,26 +136,17 @@ describe("AudioCapture", () => { navigator.mediaDevices.getUserMedia.mockRejectedValueOnce( new DOMException("denied", "NotAllowedError"), ); - const result = await capture.requestPermission(); + const result = await AudioCapture.requestPermission(); expect(result).toBe(false); }); }); - describe("requestPermission() (static)", () => { - it("matches instance requestPermission() success", async () => { - const staticResult = await AudioCapture.requestPermission(); - const instanceResult = await capture.requestPermission(); - expect(staticResult).toBe(true); - expect(instanceResult).toBe(true); - }); - }); - // -- checkPermission ------------------------------------------------------ describe("checkPermission()", () => { it("returns the permission state string", async () => { navigator.permissions.query.mockResolvedValueOnce({ state: "denied" }); - const result = await capture.checkPermission(); + const result = await AudioCapture.checkPermission(); expect(result).toBe("denied"); }); @@ -163,7 +154,7 @@ describe("AudioCapture", () => { navigator.permissions.query.mockRejectedValueOnce( new Error("unsupported"), ); - const result = await capture.checkPermission(); + const result = await AudioCapture.checkPermission(); expect(result).toBe("prompt"); }); });