@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
194 lines (189 loc) • 5.51 kB
text/typescript
// (C) 2019 GoodData Corporation
import { VisualizationTypes } from "../../../../../constants/visualizationTypes";
import { IChartOptions } from "../../../../../interfaces/Config";
import { getAxisLabelConfigurationForDualBarChart } from "../getAxisLabelConfigurationForDualBarChart";
describe("getAxisLabelConfigurationForDualBarChart", () => {
it("should return empty axis label config on single bar chart", () => {
const chartOptions: IChartOptions = {
type: VisualizationTypes.BAR,
yAxes: [{}],
};
const axisConfig = getAxisLabelConfigurationForDualBarChart(chartOptions);
expect(axisConfig).toEqual({});
});
it("should return empty axis label config on not dual bar chart", () => {
const chartOptions: IChartOptions = {
type: VisualizationTypes.COLUMN,
yAxes: [{}, {}],
};
const axisConfig = getAxisLabelConfigurationForDualBarChart(chartOptions);
expect(axisConfig).toEqual({});
});
it("should return empty Y axis label config on not-90-rotation bar chart", () => {
const chartOptions: IChartOptions = {
type: VisualizationTypes.BAR,
yAxes: [{}, {}],
};
const axisConfig = getAxisLabelConfigurationForDualBarChart(chartOptions);
expect(axisConfig).toEqual({ yAxis: [undefined, undefined] });
});
it.each([
[
"bottom",
{
yAxisProps: {
rotation: "90",
},
secondary_yAxisProps: {
rotation: "30",
},
},
[
{
labels: {
align: "right",
y: 8,
},
},
undefined,
],
],
[
"top",
{
yAxisProps: {
rotation: "30",
},
secondary_yAxisProps: {
rotation: "90",
},
},
[
undefined,
{
labels: {
align: "left",
y: undefined,
},
},
],
],
[
"top and bottom with 90 rotation",
{
yAxisProps: {
rotation: "90",
},
secondary_yAxisProps: {
rotation: "90",
},
},
[
{
labels: {
align: "right",
y: 8,
},
},
{
labels: {
align: "left",
y: undefined,
},
},
],
],
[
"top and bottom with -90 rotation",
{
yAxisProps: {
rotation: "-90",
},
secondary_yAxisProps: {
rotation: "-90",
},
},
[
{
labels: {
align: "left",
y: 8,
},
},
{
labels: {
align: "right",
y: undefined,
},
},
],
],
[
"top and bottom with 60 rotation",
{
yAxisProps: {
rotation: "60",
},
secondary_yAxisProps: {
rotation: "60",
},
},
[
{
labels: {
align: "right",
y: 8,
},
},
{
labels: {
align: "left",
y: undefined,
},
},
],
],
[
"top and bottom with -60 rotation",
{
yAxisProps: {
rotation: "-60",
},
secondary_yAxisProps: {
rotation: "-60",
},
},
[
{
labels: {
align: "left",
y: 8,
},
},
{
labels: {
align: "right",
y: undefined,
},
},
],
],
])(
"should return Y axis label config of %s axis on bar chart",
(
_axisPosition: string,
axisPropsOptions: IChartOptions,
expectedConfig: Highcharts.XAxisOptions[],
) => {
const chartOptions: IChartOptions = {
type: VisualizationTypes.BAR,
yAxes: [{}, {}],
...axisPropsOptions,
};
const axisConfig = getAxisLabelConfigurationForDualBarChart(chartOptions);
expect(axisConfig).toEqual({
yAxis: expectedConfig,
});
},
);
});