Skip to main content

TestingLogger

The TestingLogger can be used in unit tests or e2e tests to make assertions on whether the various Logger methods have been called, and which arguments.

Here's some examples of how to use it in e2e tests and unit tests. In both cases we are using the Jest testing framework, but the TestingLogger should work with other similar frameworks (e.g. replacing jest.fn() with jasmine.createSpy()).

Example

Ts
// e2e test exampleimport { createTestEnvironment, TestingLogger } from '@vendure/testing';const testingLogger = new TestingLogger(() => jest.fn());const { server, adminClient, shopClient } = createTestEnvironment({  ...testConfig,  logger: testingLogger,});// e2e testing setup omittedit('should log an error', async () => {  // The `errorSpy` property exposes the Jest mock function  testingLogger.errorSpy.mockClear();  await doSomethingThatErrors();  expect(testingLogger.errorSpy).toHaveBeenCalled();});

Example

Ts
// unit test exampleimport { Test } from '@nestjs/testing';import { Logger } from '@vendure/core';import { TestingLogger } from '@vendure/testing';beforeEach(async () => {  const moduleRef = await Test.createTestingModule({    // Nest testing setup omitted  }).compile();  Logger.useLogger(testingLogger);  moduleRef.useLogger(new Logger());}
Signature
class TestingLogger<Spy extends (...args: any[]) => any> implements VendureLogger {    constructor(createSpyFn: () => Spy)    debugSpy: Spy;    errorSpy: Spy;    infoSpy: Spy;    verboseSpy: Spy;    warnSpy: Spy;    debug(message: string, context?: string) => void;    error(message: string, context?: string, trace?: string) => void;    info(message: string, context?: string) => void;    verbose(message: string, context?: string) => void;    warn(message: string, context?: string) => void;}

constructor

method(createSpyFn: () => Spy) => TestingLogger

debugSpy

propertySpy

errorSpy

propertySpy

infoSpy

propertySpy

verboseSpy

propertySpy

warnSpy

propertySpy

debug

method(message: string, context?: string) => void

error

method(message: string, context?: string, trace?: string) => void

info

method(message: string, context?: string) => void

verbose

method(message: string, context?: string) => void

warn

method(message: string, context?: string) => void
Was this chapter helpful?
Report Issue
Edited Feb 4, 2026·Edit this page