@allurereport/plugin-dashboard
Version:
Allure Dashboard Plugin – plugin for generating dashboard with a mix of charts
29 lines (28 loc) • 966 B
JavaScript
import { statusesList } from "@allurereport/core-api";
import { arc, pie } from "d3-shape";
export const d3Arc = arc().innerRadius(40).outerRadius(50).cornerRadius(2).padAngle(0.03);
export const d3Pie = pie()
.value((d) => d.count)
.padAngle(0.03)
.sortValues((a, b) => a - b);
export const getPercentage = (value, total) => Math.floor((value / total) * 10000) / 100;
export const getPieChartData = (stats, chartOptions) => {
const convertedStatuses = statusesList
.filter((status) => !!stats?.[status])
.map((status) => ({
status,
count: stats[status],
}));
const arcsData = d3Pie(convertedStatuses);
const slices = arcsData.map((arcData) => ({
d: d3Arc(arcData),
...arcData.data,
}));
const percentage = getPercentage(stats.passed ?? 0, stats.total);
return {
type: chartOptions.type,
title: chartOptions?.title,
slices,
percentage,
};
};