@universal-packages/dynamic-api-jest
TypeScript icon, indicating that this package has built-in type declarations

1.2.4 • Public • Published

Dynamic Api Jest

npm version Testing codecov

Jest matchers for Dynamic Api testing.

Install

npm install @universal-packages/dynamic-api-jest

npm install @universal-packages/dynamic-api

Setup

Add the following to your jest.config.js or where you configure Jest:

module.exports = {
  setupFilesAfterEnv: ['@universal-packages/dynamic-api-jest']
}

Matchers

toHaveBeenPerformed

import { MyDynamic } from './MyDynamic'

it('should have performed MyDynamic', async () => {
  await dynamicApi.perform('my-dynamic')

  expect(MyDynamic).toHaveBeenPerformed()
})

toHaveBeenPerformedWith

import { MyDynamic } from './MyDynamic'

it('should have performed MyDynamic with payload', async () => {
  await dynamicApi.perform('my-dynamic', { foo: 'bar' })

  expect(MyDynamic).toHaveBeenPerformedWith({ foo: 'bar' })
})

toHaveBeenHookedBefore

import { MyDynamic } from './MyDynamic'
import { MyHook } from './MyHook'

it('should have hooked MyHook before MyDynamic', async () => {
  await dynamicApi.perform('my-dynamic')

  expect(MyHook).toHaveBeenHookedBefore(MyDynamic)
})

toHaveBeenHookedAfter

import { MyDynamic } from './MyDynamic'
import { MyHook } from './MyHook'

it('should have hooked MyHook after MyDynamic', async () => {
  await dynamicApi.perform('my-dynamic')

  expect(MyHook).toHaveBeenHookedAfter(MyDynamic)
})

Mocking dynamic return values

If you need to force a dynamic to return a specific value, you can use the mockDynamicReturnValue function.

import { MyDynamic } from './MyDynamic'

it('should have performed MyDynamic', async () => {
  dynamicApiJest.mockDynamicReturnValue(MyDynamic, { foo: 'bar' })

  const result = await dynamicApi.perform('my-dynamic')

  expect(MyDynamic).toHaveBeenPerformed()
  expect(result).toEqual({ foo: 'bar' })
})

Typescript

In order for typescript to see the global types you need to reference the types somewhere in your project, normally ./src/globals.d.ts.

/// <reference types="@universal-packages/dynamic-api-jest" />

This library is developed in TypeScript and shipped fully typed.

Contributing

The development of this library happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving this library.

License

MIT licensed.

Readme

Keywords

none

Package Sidebar

Install

npm i @universal-packages/dynamic-api-jest

Weekly Downloads

8

Version

1.2.4

License

MIT

Unpacked Size

21.5 kB

Total Files

9

Last publish

Collaborators

  • omarandstuff