@ognjenvladisavljevic/wdio-slack-reporter
Version:
Reporter from WebdriverIO using Web API to send results to Slack.
71 lines • 2.44 kB
TypeScript
/// <reference types="node" />
import { ChatPostMessageArguments, FilesUploadArguments } from '@slack/web-api';
import { RunnerStats, TestStats } from '@wdio/reporter';
import { Reporters } from '@wdio/types';
import { SLACK_REQUEST_TYPE } from './constants';
export { ChatPostMessageArguments, FilesUploadArguments, WebAPICallResult, } from '@slack/web-api';
export { RunnerStats, TestStats } from '@wdio/reporter';
export interface StateCount {
passed: number;
failed: number;
skipped: number;
}
export interface EmojiSymbols {
passed?: string;
failed?: string;
skipped?: string;
pending?: string;
start?: string;
finished?: string;
watch?: string;
}
export interface SlackWebApiOptions {
type: 'web-api';
channel: string;
slackBotToken: string;
uploadScreenshotOfFailedCase?: boolean;
notifyDetailResultThread?: boolean;
username?: string;
env?: string;
createScreenshotPayload?: (testStats: TestStats, screenshotBuffer: Buffer) => FilesUploadArguments;
createResultDetailPayload?: (runnerStats: RunnerStats, stateCounts: StateCount) => ChatPostMessageArguments;
}
export declare type SlackOptions = SlackWebApiOptions;
export interface SlackReporterOptions extends Reporters.Options {
slackOptions?: SlackOptions;
emojiSymbols?: EmojiSymbols;
title?: string;
resultsUrl?: string;
notifyFailedCase?: boolean;
notifyTestStartMessage?: boolean;
notifyTestFinishMessage?: boolean;
createStartPayload?: (runnerStats: RunnerStats) => ChatPostMessageArguments;
createFailedTestPayload?: (testStats: TestStats) => ChatPostMessageArguments;
createResultPayload?: (runnerStats: RunnerStats, stateCounts: StateCount) => ChatPostMessageArguments;
}
export declare type SlackRequestType = PostMessage | Upload;
interface PostMessage {
type: typeof SLACK_REQUEST_TYPE.WEB_API_POST_MESSAGE;
payload: ChatPostMessageArguments;
isDetailResult?: boolean;
}
interface Upload {
type: typeof SLACK_REQUEST_TYPE.WEB_API_UPLOAD;
payload: FilesUploadArguments;
isDetailResult?: boolean;
}
export interface StepOutput {
title: string;
status: string;
}
export interface ScenarioOutput {
title: string;
id: string;
steps?: Array<StepOutput>;
}
export interface FeatureOutput {
title: string;
description: string;
scenarios?: Array<ScenarioOutput>;
}
//# sourceMappingURL=types.d.ts.map