@allurereport/plugin-dashboard
Version:
Allure Dashboard Plugin – plugin for generating dashboard with a mix of charts
93 lines (92 loc) • 3.23 kB
TypeScript
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>;