🚨 Announcing Vendure v2 Beta

TestingLogger

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

// e2e test example
import { createTestEnvironment, TestingLogger } from '@vendure/testing';

const testingLogger = new TestingLogger(() => jest.fn());

const { server, adminClient, shopClient } = createTestEnvironment({
  ...testConfig,
  logger: testingLogger,
});

// e2e testing setup omitted

it('should log an error', async () => {
  // The `errorSpy` property exposes the Jest mock function
  testingLogger.errorSpy.mockClear();

  await doSomethingThatErrors();

  expect(testingLogger.errorSpy).toHaveBeenCalled();
});

Example

// unit test example
import { 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;
}

Implements

Members

constructor

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

debugSpy

property
type:
Spy

errorSpy

property
type:
Spy

infoSpy

property
type:
Spy

verboseSpy

property
type:
Spy

warnSpy

property
type:
Spy

debug

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

error

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

info

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

verbose

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

warn

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