UNPKG

@allurereport/plugin-dashboard

Version:

Allure Dashboard Plugin – plugin for generating dashboard with a mix of charts

93 lines (92 loc) 3.23 kB
import type { SeverityLevel, TestResult, TestStatus } from "@allurereport/core-api"; export declare enum ChartType { Trend = "trend", Pie = "pie" } export declare enum ChartData { Status = "status", Severity = "severity" } export type ChartMode = "raw" | "percent"; export type ChartId = string; export type ExecutionIdFn = (executionOrder: number) => string; export type ExecutionNameFn = (executionOrder: number) => string; export type TrendMetadataFnOverrides = { executionIdAccessor?: ExecutionIdFn; executionNameAccessor?: ExecutionNameFn; }; export type TrendChartOptions = { type: ChartType.Trend; dataType: ChartData; mode?: ChartMode; title?: string; limit?: number; metadata?: TrendMetadataFnOverrides; }; export type TrendPointId = string; export type TrendSliceId = string; export type BaseMetadata = Record<string, unknown>; export interface BaseTrendSliceMetadata extends Record<string, unknown> { executionId: string; executionName: string; } export type TrendSliceMetadata<Metadata extends BaseMetadata> = BaseTrendSliceMetadata & Metadata; export type TrendPoint = { x: string; y: number; }; export type TrendSlice<Metadata extends BaseMetadata> = { min: number; max: number; metadata: TrendSliceMetadata<Metadata>; }; export type GenericTrendChartData<Metadata extends BaseMetadata, SeriesType extends string> = { type: ChartType.Trend; dataType: ChartData; title?: string; points: Record<TrendPointId, TrendPoint>; slices: Record<TrendSliceId, TrendSlice<Metadata>>; series: Record<SeriesType, TrendPointId[]>; min: number; max: number; }; export interface StatusMetadata extends BaseTrendSliceMetadata { } export type StatusTrendSliceMetadata = TrendSliceMetadata<StatusMetadata>; export type StatusTrendSlice = TrendSlice<StatusTrendSliceMetadata>; export type StatusTrendChartData = GenericTrendChartData<StatusTrendSliceMetadata, TestStatus>; export interface SeverityMetadata extends BaseTrendSliceMetadata { } export type SeverityTrendSliceMetadata = TrendSliceMetadata<SeverityMetadata>; export type SeverityTrendSlice = TrendSlice<SeverityTrendSliceMetadata>; export type SeverityTrendChartData = GenericTrendChartData<SeverityTrendSliceMetadata, SeverityLevel>; export type TrendChartData = StatusTrendChartData | SeverityTrendChartData; export type PieChartOptions = { type: ChartType.Pie; title?: string; }; export type PieSlice = { status: TestStatus; count: number; d: string | null; }; export type PieChartData = { type: ChartType.Pie; title?: string; slices: PieSlice[]; percentage: number; }; export type GeneratedChartData = TrendChartData | PieChartData; export type GeneratedChartsData = Record<ChartId, GeneratedChartData>; export type ChartOptions = TrendChartOptions | PieChartOptions; export type DashboardOptions = { reportName?: string; singleFile?: boolean; logo?: string; theme?: "light" | "dark"; reportLanguage?: "en" | "ru"; layout?: ChartOptions[]; filter?: (testResult: TestResult) => boolean; }; export type DashboardPluginOptions = DashboardOptions; export type TemplateManifest = Record<string, string>;