| 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' | |
| }); | |
| }); | |
| }); | |