@slack/cli-test
v2.2.0
Published
Node.js bindings for the Slack CLI for use in automated testing
Downloads
220
Readme
@slack/cli-test
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
- Ensure the Slack CLI is installed on your system.
- Export the path to the CLI binary as a
SLACK_CLI_PATHenvironment variable.
Quickstart
- Install the package
npm install @slack/cli-test- 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
slackotherwise
- supply a link to a binary on the global path, like
- Import and use
SlackCLIto 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:
SlackCLI- an object containing a variety of methods to interact with the CLI
- methods are named after Slack CLI commands, e.g.
SlackCLI.deploy()
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.SlackTracerId- trace IDs to verify CLI command output
- see available exported IDs on
SlackTracerIdobject - 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 Variable | Required | Note |
| --------------------- | -------- | ------------------------------------------------------------------------------ |
| SLACK_CLI_PATH | yes | path to Slack CLI binary |
| SLACK_CLI_LOG_LEVEL | no | default: info. Logger levels |
