11import { JSDOM } from "jsdom"
2- // Note: we need to import logger from the root
3- // because this is the logger used in logError in ../src/common/util
4- import { logger } from "../node_modules/@coder/logger"
52import {
63 arrayify ,
74 generateUuid ,
@@ -14,12 +11,16 @@ import {
1411 split ,
1512 trimSlashes ,
1613} from "../src/common/util"
14+ import { loggerModule } from "./helpers"
1715
1816const dom = new JSDOM ( )
1917global . document = dom . window . document
2018
2119type LocationLike = Pick < Location , "pathname" | "origin" >
2220
21+ // jest.mock is hoisted above the imports so we must use `require` here.
22+ jest . mock ( "@coder/logger" , ( ) => require ( "./helpers" ) . loggerModule )
23+
2324describe ( "util" , ( ) => {
2425 describe ( "normalize" , ( ) => {
2526 it ( "should remove multiple slashes" , ( ) => {
@@ -223,12 +224,6 @@ describe("util", () => {
223224 } )
224225
225226 describe ( "logError" , ( ) => {
226- let spy : jest . SpyInstance
227-
228- beforeEach ( ( ) => {
229- spy = jest . spyOn ( logger , "error" )
230- } )
231-
232227 afterEach ( ( ) => {
233228 jest . clearAllMocks ( )
234229 } )
@@ -243,15 +238,15 @@ describe("util", () => {
243238
244239 logError ( "ui" , error )
245240
246- expect ( spy ) . toHaveBeenCalled ( )
247- expect ( spy ) . toHaveBeenCalledWith ( `ui: ${ error . message } ${ error . stack } ` )
241+ expect ( loggerModule . logger . error ) . toHaveBeenCalled ( )
242+ expect ( loggerModule . logger . error ) . toHaveBeenCalledWith ( `ui: ${ error . message } ${ error . stack } ` )
248243 } )
249244
250245 it ( "should log an error, even if not an instance of error" , ( ) => {
251246 logError ( "api" , "oh no" )
252247
253- expect ( spy ) . toHaveBeenCalled ( )
254- expect ( spy ) . toHaveBeenCalledWith ( "api: oh no" )
248+ expect ( loggerModule . logger . error ) . toHaveBeenCalled ( )
249+ expect ( loggerModule . logger . error ) . toHaveBeenCalledWith ( "api: oh no" )
255250 } )
256251 } )
257252} )
0 commit comments