From 57c15a26eb1cf035593df677420b677cd8ac3ecd Mon Sep 17 00:00:00 2001 From: Oscar Hinton Date: Thu, 20 Mar 2025 11:17:46 +0100 Subject: [PATCH] [PM-18657] Fix clipboard tests calling console.warn (#13580) * Fix clipboard tests calling console.warn * Change to jest.SpyInstance --- .../offscreen-document.spec.ts | 21 ++++++++++++------- .../browser-clipboard.service.spec.ts | 5 ++--- .../browser-platform-utils.service.spec.ts | 8 +++++-- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/apps/browser/src/platform/offscreen-document/offscreen-document.spec.ts b/apps/browser/src/platform/offscreen-document/offscreen-document.spec.ts index 67fa920d18d..37731f17fbe 100644 --- a/apps/browser/src/platform/offscreen-document/offscreen-document.spec.ts +++ b/apps/browser/src/platform/offscreen-document/offscreen-document.spec.ts @@ -3,14 +3,19 @@ import { BrowserApi } from "../browser/browser-api"; import BrowserClipboardService from "../services/browser-clipboard.service"; describe("OffscreenDocument", () => { - const browserApiMessageListenerSpy = jest.spyOn(BrowserApi, "messageListener"); - const browserClipboardServiceCopySpy = jest.spyOn(BrowserClipboardService, "copy"); - const browserClipboardServiceReadSpy = jest.spyOn(BrowserClipboardService, "read"); - const consoleErrorSpy = jest.spyOn(console, "error"); + let browserClipboardServiceCopySpy: jest.SpyInstance; + let browserClipboardServiceReadSpy: jest.SpyInstance; + let browserApiMessageListenerSpy: jest.SpyInstance; + let consoleErrorSpy: jest.SpyInstance; - // FIXME: Remove when updating file. Eslint update - // eslint-disable-next-line @typescript-eslint/no-require-imports - require("../offscreen-document/offscreen-document"); + beforeEach(async () => { + browserApiMessageListenerSpy = jest.spyOn(BrowserApi, "messageListener"); + browserClipboardServiceCopySpy = jest.spyOn(BrowserClipboardService, "copy"); + browserClipboardServiceReadSpy = jest.spyOn(BrowserClipboardService, "read"); + consoleErrorSpy = jest.spyOn(console, "error").mockImplementation(); + + await import("./offscreen-document"); + }); describe("init", () => { it("sets up a `chrome.runtime.onMessage` listener", () => { @@ -47,6 +52,7 @@ describe("OffscreenDocument", () => { it("copies the message text", async () => { const text = "test"; + browserClipboardServiceCopySpy.mockResolvedValueOnce(undefined); sendMockExtensionMessage({ command: "offscreenCopyToClipboard", text }); await flushPromises(); @@ -56,6 +62,7 @@ describe("OffscreenDocument", () => { describe("handleOffscreenReadFromClipboard", () => { it("reads the value from the clipboard service", async () => { + browserClipboardServiceReadSpy.mockResolvedValueOnce(""); sendMockExtensionMessage({ command: "offscreenReadFromClipboard" }); await flushPromises(); diff --git a/apps/browser/src/platform/services/browser-clipboard.service.spec.ts b/apps/browser/src/platform/services/browser-clipboard.service.spec.ts index cf0d7c46004..1d6904c7eb0 100644 --- a/apps/browser/src/platform/services/browser-clipboard.service.spec.ts +++ b/apps/browser/src/platform/services/browser-clipboard.service.spec.ts @@ -2,9 +2,10 @@ import BrowserClipboardService from "./browser-clipboard.service"; describe("BrowserClipboardService", () => { let windowMock: any; - const consoleWarnSpy = jest.spyOn(console, "warn"); + let consoleWarnSpy: any; beforeEach(() => { + consoleWarnSpy = jest.spyOn(console, "warn").mockImplementation(); windowMock = { navigator: { clipboard: { @@ -104,8 +105,6 @@ describe("BrowserClipboardService", () => { }); await BrowserClipboardService.read(windowMock as Window); - - expect(consoleWarnSpy).toHaveBeenCalled(); }); }); }); diff --git a/apps/browser/src/platform/services/platform-utils/browser-platform-utils.service.spec.ts b/apps/browser/src/platform/services/platform-utils/browser-platform-utils.service.spec.ts index fe049c4f1db..38166d10a08 100644 --- a/apps/browser/src/platform/services/platform-utils/browser-platform-utils.service.spec.ts +++ b/apps/browser/src/platform/services/platform-utils/browser-platform-utils.service.spec.ts @@ -185,7 +185,9 @@ describe("Browser Utils Service", () => { describe("copyToClipboard", () => { const getManifestVersionSpy = jest.spyOn(BrowserApi, "manifestVersion", "get"); const sendMessageToAppSpy = jest.spyOn(SafariApp, "sendMessageToApp"); - const clipboardServiceCopySpy = jest.spyOn(BrowserClipboardService, "copy"); + const clipboardServiceCopySpy = jest + .spyOn(BrowserClipboardService, "copy") + .mockResolvedValue(undefined); let triggerOffscreenCopyToClipboardSpy: jest.SpyInstance; beforeEach(() => { @@ -281,7 +283,9 @@ describe("Browser Utils Service", () => { describe("readFromClipboard", () => { const getManifestVersionSpy = jest.spyOn(BrowserApi, "manifestVersion", "get"); const sendMessageToAppSpy = jest.spyOn(SafariApp, "sendMessageToApp"); - const clipboardServiceReadSpy = jest.spyOn(BrowserClipboardService, "read"); + const clipboardServiceReadSpy = jest + .spyOn(BrowserClipboardService, "read") + .mockResolvedValue(""); beforeEach(() => { getManifestVersionSpy.mockReturnValue(2);