2.1.0 • Published 5 months ago

@slack/cli-test v2.1.0

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

@slack/cli-test

codecov

This library is designed to automate the Slack Platform Command Line Interface (CLI). It provides a programmatic way to interact with the CLI using node.js and is used primarily for end-to-end (E22) testing.

Requirements

  1. Ensure the Slack CLI is installed on your system.
  2. Export the path to the CLI binary as a SLACK_CLI_PATH environment variable.

Quickstart

  1. Install the package
npm install @slack/cli-test
  1. Set the path to the CLI executable using the environment variable SLACK_CLI_PATH
    • supply a link to a binary on the global path, like slack-cli
    • it will default to using slack otherwise
  2. Import and use SlackCLI to automate the CLI!
import { SlackCLI } from '@slack/cli-test';
...
const createOutput = await SlackCLI.createAppFromTemplate('slackapi/deno-hello-world');

API / Usage

This package exports the following:

  1. SlackCLI - an object containing a variety of methods to interact with the CLI
  1. SlackCLIProcess - a class that can be instantiated that exposes the ability to run arbitrary commands, with optional global flags as well as command-specific flags.
  2. SlackTracerId - trace IDs to verify CLI command output
  • see available exported IDs on SlackTracerId object
  • to enable the CLI to show this output, any CLI commands executed by this library are invoked with the environment variable set: SLACK_TEST_TRACE=true
// Import available objects from the package
import { SlackCLI, SlackTracerId } from '@slack/cli-test';

describe('Login with the CLI', () => {
  it('can successfully follow the feedback survey link', async function () {
    // `login --no-prompt` to get challenge
    const loginChallengeResult = await SlackCLI.loginNoPrompt();

    // Submit auth ticket in Slack UI
    const challenge = await submitCLIAuthTicket(
      loginUrlToMyWorkspace,
      loginChallengeResult.authTicketSlashCommand
    );

    // login with challenge and auth ticket
    const loginChallengeExchangeResult = await SlackCLI.loginChallengeExchange(
      challenge,
      loginChallengeResult.authTicket
    );
  });
});

Configuration

Environment VariableRequiredNote
SLACK_CLI_PATHyespath to Slack CLI binary
SLACK_CLI_LOG_LEVELnodefault: info. Logger levels
2.1.0

5 months ago

2.0.0

9 months ago

1.3.1-powershell.5

9 months ago

1.3.1-powershell.4

9 months ago

1.3.1-powershell.3

9 months ago

1.3.1-powershell.2

9 months ago

1.3.1-powershell.1

9 months ago

1.2.0

10 months ago

1.3.0

10 months ago

1.1.0

11 months ago

1.0.0

12 months ago

0.3.0

12 months ago

0.2.2

12 months ago

0.2.1

1 year ago

0.2.0

1 year ago