Skip to main content

Testing

To enhance the integration experience, this package contains mocks of the Client and RelayerClient to test the integration with a dapp. This package offers 2 different types of mocks:

  • Mock: A mock to simulate certain behavior of a class instance.
  • GlobalMock: A global mock to simulate certain behavior of a class across the entire application.

Each client has its own pair of mocks, so you can mock the behavior of the client in your tests as you desire.

Framework compatibility

This package is compatible with the following frameworks:

FrameworkStatus
Jest

Mocks

Client

ClientMock

The ClientMock is a specific mock for mocking an instance of Client. It is ideal for use in unit tests where the Client is injected as a dependency.

To use it, you can import the mock from the package and use it in your test:

import { ClientMock } from "@one-click-connect/browser-dapp/mocks";

const mock = new ClientMock();

You can modify the mock behavior by overriding the returned values of the methods. For example, if you want to mock the isSignedIn method to return a specific boolean value, you can do the following:

mock.isSignedIn.mockReturnValue(true);

or throwing an error:

mock.isSignedIn.mockRejectedValue(new Error("Error signing in"));

ClientGlobalMock

The ClientGlobalMock is a global mock of the Client that simulates its behavior across the entire application. It is ideal for testing where you need to test the complete dapp integration flow. Like the ClientMock, this mock allows you to modify the dapp behavior throughout the application.

RelayerClient

RelayerClientMock

The RelayerClientMock is a specific mock for mocking an instance of RelayerClient. It is ideal for use in unit tests where the RelayerClient is injected as a dependency.

To use it, you can import the mock from the package and use it in your test:

import { RelayerClientMock } from "@one-click-connect/browser-dapp/mocks";

const mock = new RelayerClientMock();

You can modify the mock behavior by overriding the returned values of the methods. For example, if you want to mock the isSignedIn method to return a specific boolean value, you can do the following:

mock.isSignedIn.mockReturnValue(true);

or throwing an error:

mock.isSignedIn.mockRejectedValue(new Error("Error signing in"));

RelayerClientGlobalMock

The RelayerClientGlobalMock is a global mock of the RelayerClient that simulates its behavior across the entire application. It is ideal for testing where you need to test the complete dapp integration flow. Like the RelayerClientMock, this mock allows you to modify the dapp behavior throughout the application.