3.0.0 • Published 4 years ago

@slack-wrench/jest-bolt-receiver v3.0.0

Weekly downloads
139
License
Apache-2.0
Repository
github
Last release
4 years ago

Jest Bolt Receiver

A receiver built for testing Slack Bolt apps with Jest. This receiver allows you to easily send mock events to your app allowing you to write tests that prove your listeners interact with bolt correctly, instead of only being able to test your listeners in isolation.

Table of Contents

Install

yarn add --dev @slack-wrench/jest-bolt-receiver
# or
npm install --save-dev @slack-wrench/jest-bolt-receiver

Usage

import { slashCommand } from '@slack-wrench/fixtures';
import JestReceiver from '@slack-wrench/jest-bolt-receiver';
import {
  MockedWebClient,
  MockWebClient,
} from '@slack-wrench/jest-mock-web-client';
import delay from 'delay';

// Import your app that creates a Slack Bolt App.
import MyApp from './app';

describe('My Awesome App', () => {
  let receiver: JestReceiver;
  let app: MyApp;
  let client: MockWebClient; // Using a mock slack client so we can spy on it

  beforeEach(() => {
    // Pass in this receiver instead of yours or the default express one
    receiver = new JestReceiver();
    app = new MyApp({ receiver });
    client = MockedWebClient.mock.instances[0];
  });

  it('Can handle a slash command', async () => {
    const message = '@slack-wrench makes testing easy!';
    receiver.send(slashCommand('/echo', { text: message }));
    await delay(0); // Wait for anything async.

    // Test what should have happened.
    expect(client.chat.postMessage).toHaveBeenCalledWith(
      expect.objectContaining({
        text: message,
      }),
    );
  });
});

Sending Events

We recommend you use @slack-wrench/fixtures to generate and send events. That way, you can easily generate fixtures, set global overrides, and customize payloads. Check its documentation for details.

Send an event to bolt:

receiver.send(
  body: Record<string, any>,
)
//: => ReceiverEvent
3.0.0

4 years ago

2.0.1

4 years ago

1.1.1-alpha.1

4 years ago

1.1.1-alpha.0

4 years ago

2.0.0

4 years ago

2.0.0-alpha

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago

1.0.0-alpha.11

4 years ago

1.0.0-alpha.10

4 years ago

1.0.0-alpha.9

4 years ago

1.0.0-alpha.5

4 years ago

1.0.0-alpha.8

4 years ago

1.0.0-alpha.2

4 years ago

1.0.0-alpha.1

4 years ago

1.0.0-alpha.0

4 years ago

0.0.1

4 years ago