import { describe, it, expect, vi } from "vitest"; import { render, screen } from "@testing-library/react"; import * as ChatSlice from "#/state/chat-slice"; import { updateStatusWhenErrorMessagePresent, } from "#/context/ws-client-provider"; describe("Propagate error message", () => { it("should do nothing when no message was passed from server", () => { const addErrorMessageSpy = vi.spyOn(ChatSlice, "addErrorMessage"); updateStatusWhenErrorMessagePresent(null) updateStatusWhenErrorMessagePresent(undefined) updateStatusWhenErrorMessagePresent({}) updateStatusWhenErrorMessagePresent({message: null}) expect(addErrorMessageSpy).not.toHaveBeenCalled(); }); it("should display error to user when present", () => { const message = "We have a problem!" const addErrorMessageSpy = vi.spyOn(ChatSlice, "addErrorMessage") updateStatusWhenErrorMessagePresent({message}) expect(addErrorMessageSpy).toHaveBeenCalledWith({ message, status_update: true, type: 'error' }); }); it("should display error including translation id when present", () => { const message = "We have a problem!" const addErrorMessageSpy = vi.spyOn(ChatSlice, "addErrorMessage") updateStatusWhenErrorMessagePresent({message, data: {msg_id: '..id..'}}) expect(addErrorMessageSpy).toHaveBeenCalledWith({ message, id: '..id..', status_update: true, type: 'error' }); }); });