2.1.0 • Published 5 months ago
@slack/cli-test v2.1.0
@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_PATH
environment 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
slack
otherwise
- supply a link to a binary on the global path, like
- 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:
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
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 Variable | Required | Note |
---|---|---|
SLACK_CLI_PATH | yes | path to Slack CLI binary |
SLACK_CLI_LOG_LEVEL | no | default: 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
0.1.0-cli.2.25.0
1 year ago
0.0.2-cli.2.24.0
1 year ago
0.0.1-cli.2.24.0
1 year ago
0.0.1-rc.3.cli.2.24.0
1 year ago
0.0.1-rc.2.cli.2.24.0
1 year ago
0.0.1-rc.1.cli.2.24.0
1 year ago