1.0.4 • Published 2 months ago

@universal-packages/push-notifications-jest v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

Push Notifications Jest

npm version Testing codecov

Jest matchers for Push Notifications testing.

Install

npm install @universal-packages/push-notifications-jest

npm install @universal-packages/push-notifications

Setup

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

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

Matchers

toHavePushedNotification

import { PushNotifications } from '@universal-packages/push-notifications'
import config from './config'

it('should push notification', async () => {
  const pushNotifications = new PushNotifications(config)

  await pushNotifications.pushNotification([deviceToken], { title: 'Hello', body: 'World', data: { id: 1 } })

  expect(pushNotifications).toHavePushedNotification({ title: 'Hello', body: 'World', data: { id: 1 } })

  // Or against the PushNotifications class
  expect(PushNotifications).toHavePushedNotification({ title: 'Hello', body: 'World', data: { id: 1 } })
})

toHavePushedNotificationTo

import { PushNotifications } from '@universal-packages/push-notifications'
import config from './config'

it('should push notification', async () => {
  const pushNotifications = new PushNotifications(config)

  await pushNotifications.pushNotification([deviceToken], { title: 'Hello', body: 'World', data: { id: 1 } })

  expect(pushNotifications).toHavePushedNotificationTo(deviceToken, { title: 'Hello', body: 'World', data: { id: 1 } })

  // Or against the PushNotifications class
  expect(PushNotifications).toHavePushedNotificationTo(deviceToken, { title: 'Hello', body: 'World', data: { id: 1 } })
})

toHavePushedAndroidNotification

import { PushNotifications } from '@universal-packages/push-notifications'
import config from './config'

it('should push notification', async () => {
  const pushNotifications = new PushNotifications(config)

  await pushNotifications.pushNotification([androidDeviceToken], { title: 'Hello', body: 'World', data: { id: 1 } })

  expect(pushNotifications).toHavePushedAndroidNotification({ title: 'Hello', body: 'World', data: { id: 1 } })

  // Or against the PushNotifications class
  expect(PushNotifications).toHavePushedAndroidNotification({ title: 'Hello', body: 'World', data: { id: 1 } })
})

toHavePushedAndroidNotificationTo

import { PushNotifications } from '@universal-packages/push-notifications'
import config from './config'

it('should push notification', async () => {
  const pushNotifications = new PushNotifications(config)

  await pushNotifications.pushNotification([androidDeviceToken], { title: 'Hello', body: 'World', data: { id: 1 } })

  expect(pushNotifications).toHavePushedAndroidNotificationTo(androidDeviceToken, { title: 'Hello', body: 'World', data: { id: 1 } })

  // Or against the PushNotifications class
  expect(PushNotifications).toHavePushedAndroidNotificationTo(androidDeviceToken, { title: 'Hello', body: 'World', data: { id: 1 } })
})

toHavePushedIosNotification

import { PushNotifications } from '@universal-packages/push-notifications'
import config from './config'

it('should push notification', async () => {
  const pushNotifications = new PushNotifications(config)

  await pushNotifications.pushNotification([androidDeviceToken], { title: 'Hello', body: 'World', data: { id: 1 } })

  expect(pushNotifications).toHavePushedIosNotification({ title: 'Hello', body: 'World', data: { id: 1 } })

  // Or against the PushNotifications class
  expect(PushNotifications).toHavePushedIosNotification({ title: 'Hello', body: 'World', data: { id: 1 } })
})

toHavePushedIosNotificationTo

import { PushNotifications } from '@universal-packages/push-notifications'
import config from './config'

it('should push notification', async () => {
  const pushNotifications = new PushNotifications(config)

  await pushNotifications.pushNotification([iosDeviceToken], { title: 'Hello', body: 'World', data: { id: 1 } })

  expect(pushNotifications).toHavePushedIosNotificationTo(iosDeviceToken, { title: 'Hello', body: 'World', data: { id: 1 } })

  // Or against the PushNotifications class
  expect(PushNotifications).toHavePushedIosNotificationTo(iosDeviceToken, { title: 'Hello', body: 'World', data: { id: 1 } })
})

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/push-notifications-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.

1.0.2

2 months ago

1.0.4

2 months ago

1.0.3

2 months ago

1.0.1

4 months ago

1.0.0

6 months ago