Package Exports
- @slack/cli-test
- @slack/cli-test/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@slack/cli-test) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
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_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 |