devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
146 lines (145 loc) • 5.82 kB
JavaScript
/**
* DevExtreme (esm/__internal/grids/new/card_view/header_panel/a11y/utils.test.js)
* Version: 25.1.3
* Build date: Wed Jun 25 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
describe,
expect,
it
} from "@jest/globals";
import {
I18N_MESSAGE_SEPARATOR
} from "../../../../../grids/new/card_view/header_panel/a11y/const";
import {
getCommonA11yLabel,
getHeaderFilterA11yLabel,
getHeaderItemA11yLabel,
getSortIndexA11yLabel,
getSortingA11yLabel
} from "./utils";
const I18N_EN = {
getFieldName: colName => `Field name ${colName}`,
sortOrderAsc: "Sorted in ascending order",
sortOrderDesc: "Sorted in descending order",
getSortIdx: idx => `Sort index ${idx}`,
withHeaderFilter: "Header filter applied"
};
describe("HeaderPanel", (() => {
describe("a11y utils", (() => {
describe("getCommonA11yLabel", (() => {
it.each(["COL_A", "COL_B"])("fieldName: %s -> should return i18n translation", (colName => {
const result = getCommonA11yLabel(colName);
expect(result).toBe(I18N_EN.getFieldName(colName))
}))
}));
describe("getHeaderFilterA11yLabel", (() => {
it.each([{
hasFilterValues: true,
expected: I18N_EN.withHeaderFilter
}, {
hasFilterValues: false,
expected: null
}])("hasFilterValues: $hasFilterValues -> should return i18n translation", (_ref => {
let {
hasFilterValues: hasFilterValues,
expected: expected
} = _ref;
const result = getHeaderFilterA11yLabel(hasFilterValues);
expect(result).toBe(expected)
}))
}));
describe("getSortingA11yLabel", (() => {
it.each([{
sortOrder: "asc",
expected: I18N_EN.sortOrderAsc
}, {
sortOrder: "desc",
expected: I18N_EN.sortOrderDesc
}, {
sortOrder: void 0,
expected: null
}])("sortOrder: $sortOrder -> should return i18n translation", (_ref2 => {
let {
sortOrder: sortOrder,
expected: expected
} = _ref2;
const result = getSortingA11yLabel(sortOrder);
expect(result).toBe(expected)
}))
}));
describe("getSortIndexA11yLabel", (() => {
it.each([{
sortOrder: "asc",
sortIndex: 0,
expected: I18N_EN.getSortIdx(1)
}, {
sortOrder: "desc",
sortIndex: 99,
expected: I18N_EN.getSortIdx(100)
}, {
sortOrder: void 0,
sortIndex: 5,
expected: null
}])("sortOrder: $sortOrder | sortIndex: $sortIndex -> should return i18n translation", (_ref3 => {
let {
sortOrder: sortOrder,
sortIndex: sortIndex,
expected: expected
} = _ref3;
const result = getSortIndexA11yLabel(sortOrder, sortIndex);
expect(result).toBe(expected)
}))
}));
describe("getHeaderItemA11yLabel", (() => {
it.each([{
colName: "TEST #0",
hasFilterValues: true,
sortOrder: "asc",
sortIndex: 9,
expected: [I18N_EN.getFieldName("TEST #0"), I18N_EN.withHeaderFilter, I18N_EN.sortOrderAsc, I18N_EN.getSortIdx(10)].join(I18N_MESSAGE_SEPARATOR)
}, {
colName: "TEST #1",
hasFilterValues: false,
sortOrder: void 0,
sortIndex: 9,
expected: [I18N_EN.getFieldName("TEST #1")].join(I18N_MESSAGE_SEPARATOR)
}, {
colName: "TEST #2",
hasFilterValues: false,
sortOrder: "desc",
sortIndex: 1,
expected: [I18N_EN.getFieldName("TEST #2"), I18N_EN.sortOrderDesc, I18N_EN.getSortIdx(2)].join(I18N_MESSAGE_SEPARATOR)
}, {
colName: "TEST #3",
hasFilterValues: true,
sortOrder: void 0,
sortIndex: void 0,
expected: [I18N_EN.getFieldName("TEST #3"), I18N_EN.withHeaderFilter].join(I18N_MESSAGE_SEPARATOR)
}, {
colName: "TEST #4",
hasFilterValues: false,
sortOrder: "desc",
sortIndex: void 0,
expected: [I18N_EN.getFieldName("TEST #4"), I18N_EN.sortOrderDesc].join(I18N_MESSAGE_SEPARATOR)
}])("colName: $colName | hasFilterValues: $hasFilterValues | sortOrder: $sortOrder| sortIndex: $sortIndex-> should return i18n translation", (_ref4 => {
let {
colName: colName,
hasFilterValues: hasFilterValues,
sortOrder: sortOrder,
sortIndex: sortIndex,
expected: expected
} = _ref4;
const result = getHeaderItemA11yLabel(colName, {
hasHeaderFilterValue: hasFilterValues,
sortOrder: sortOrder,
sortIndex: sortIndex
});
expect(result).toBe(expected)
}))
}))
}))
}));