/* eslint-disable @typescript-eslint/no-explicit-any */ import { MessageRate } from "../../types/message.types" import { messageHandler } from "./eventHandler" import { ratingMessageHandler } from "./onMessageHandlers/ratingMessageHandler" jest.mock("./onMessageHandlers/ratingMessageHandler") describe("messageHandler", () => { const sendResponseMock = jest.fn() beforeEach(() => { jest.clearAllMocks() }) it('should delegate "rating" message to ratingMessageHandler and return true', () => { const message: Message<MessageRate> = { type: "rating", subType: "update", data: { url: "http://example.com", rate: 5 }, } const sender = { tab: { id: 1 } } const result = messageHandler(message, sender as any, sendResponseMock) expect(ratingMessageHandler).toHaveBeenCalledWith( message, sendResponseMock, ) expect(result).toBe(true) }) it("Should respond synchronously and immediately to the content script when an incorrect message type is detected", () => { // ... Full example can be found on https://github.com/EduardoAC/site-review-extension/blob/master/src/serviceWorker/events/eventHandler.test.ts }) it("Should respond synchronously if sender.tab is absent, immediately returning a response to the content script", () => { //... Full example can be found on https://github.com/EduardoAC/site-review-extension/blob/master/src/serviceWorker/events/eventHandler.test.ts }) it("Should respond synchronously if message.type is missing, immediately returning a response to the content script", () => { //... Full example can be found on https://github.com/EduardoAC/site-review-extension/blob/master/src/serviceWorker/events/eventHandler.test.ts }) })