UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

146 lines (145 loc) 5.82 kB
/** * 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) })) })) })) }));