106 lines
2.3 KiB
TypeScript
106 lines
2.3 KiB
TypeScript
import { PanelConstraints, PanelData } from "../Panel";
|
|
import { calculateAriaValues } from "./calculateAriaValues";
|
|
|
|
describe("calculateAriaValues", () => {
|
|
let idCounter = 0;
|
|
let orderCounter = 0;
|
|
|
|
function createPanelData(constraints: PanelConstraints = {}): PanelData {
|
|
return {
|
|
callbacks: {
|
|
onCollapse: undefined,
|
|
onExpand: undefined,
|
|
onResize: undefined,
|
|
},
|
|
constraints,
|
|
id: `${idCounter++}`,
|
|
idIsFromProps: false,
|
|
order: orderCounter++,
|
|
};
|
|
}
|
|
|
|
beforeEach(() => {
|
|
idCounter = 0;
|
|
orderCounter = 0;
|
|
});
|
|
|
|
it("should work correctly for panels with no min/max constraints", () => {
|
|
expect(
|
|
calculateAriaValues({
|
|
layout: [50, 50],
|
|
panelsArray: [createPanelData(), createPanelData()],
|
|
pivotIndices: [0, 1],
|
|
})
|
|
).toEqual({
|
|
valueMax: 100,
|
|
valueMin: 0,
|
|
valueNow: 50,
|
|
});
|
|
|
|
expect(
|
|
calculateAriaValues({
|
|
layout: [20, 50, 30],
|
|
panelsArray: [createPanelData(), createPanelData(), createPanelData()],
|
|
pivotIndices: [0, 1],
|
|
})
|
|
).toEqual({
|
|
valueMax: 100,
|
|
valueMin: 0,
|
|
valueNow: 20,
|
|
});
|
|
|
|
expect(
|
|
calculateAriaValues({
|
|
layout: [20, 50, 30],
|
|
panelsArray: [createPanelData(), createPanelData(), createPanelData()],
|
|
pivotIndices: [1, 2],
|
|
})
|
|
).toEqual({
|
|
valueMax: 100,
|
|
valueMin: 0,
|
|
valueNow: 50,
|
|
});
|
|
});
|
|
|
|
it("should work correctly for panels with min/max constraints", () => {
|
|
expect(
|
|
calculateAriaValues({
|
|
layout: [25, 75],
|
|
panelsArray: [
|
|
createPanelData({
|
|
maxSize: 35,
|
|
minSize: 10,
|
|
}),
|
|
createPanelData(),
|
|
],
|
|
pivotIndices: [0, 1],
|
|
})
|
|
).toEqual({
|
|
valueMax: 35,
|
|
valueMin: 10,
|
|
valueNow: 25,
|
|
});
|
|
|
|
expect(
|
|
calculateAriaValues({
|
|
layout: [25, 50, 25],
|
|
panelsArray: [
|
|
createPanelData({
|
|
maxSize: 35,
|
|
minSize: 10,
|
|
}),
|
|
createPanelData(),
|
|
createPanelData({
|
|
maxSize: 35,
|
|
minSize: 10,
|
|
}),
|
|
],
|
|
pivotIndices: [1, 2],
|
|
})
|
|
).toEqual({
|
|
valueMax: 80,
|
|
valueMin: 30,
|
|
valueNow: 50,
|
|
});
|
|
});
|
|
});
|