UNPKG

@enact/ui

Version:

A collection of simplified unstyled cross-platform UI components for Enact

160 lines (156 loc) 5.62 kB
"use strict"; var _selection = require("../selection"); describe('selection', function () { // isSelected test('should return true when item strictly equals selection', function () { var expected = true; var actual = (0, _selection.isSelected)(1, 1); expect(actual).toBe(expected); }); test('should return false when item loosely equals selection', function () { var expected = false; var actual = (0, _selection.isSelected)(0, null); expect(actual).toBe(expected); }); test('should return true when selection contains item', function () { var expected = true; var actual = (0, _selection.isSelected)(1, [1]); expect(actual).toBe(expected); }); test('should return false when selection does not contain item', function () { var expected = false; var actual = (0, _selection.isSelected)(1, [2]); expect(actual).toBe(expected); }); // Single mode test('should select item when there is no selection in "single" mode', function () { var item = 0; var selection = null; var mode = 'single'; var expected = item; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should deselect item when it is selected in "single" mode', function () { var item = 0; var selection = item; var mode = 'single'; var expected = null; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should select only the new item when another is selected in "single" mode', function () { var newItem = 1; var selection = 0; var mode = 'single'; var expected = newItem; var actual = (0, _selection.select)(mode, newItem, selection); expect(actual).toBe(expected); }); test('should return a single item when an array is passed as selected in "single" mode', function () { var item = 0; var selection = [1]; var mode = 'single'; var expected = item; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should deselect the item when an array is passed as selected in "single" mode', function () { var item = 0; var selection = [item]; var mode = 'single'; var expected = null; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); // Radio Mode test('should select item when there is no selection in "radio" mode', function () { var item = 0; var selection = null; var mode = 'radio'; var expected = item; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should not deselect item when selecting it again in "radio" mode', function () { var item = 0; var selection = item; var mode = 'radio'; var expected = item; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should select only the new item when another is selected in "radio" mode', function () { var item = 1; var selection = 0; var mode = 'radio'; var expected = item; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should return a single item when an array is passed as selected in "radio" mode', function () { var item = 0; var selection = [1]; var mode = 'radio'; var expected = item; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should not deselect the item when an array is passed as selected in "radio" mode', function () { var item = 0; var selection = [item]; var mode = 'radio'; var expected = item; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); // Multiple mode test('should select item when there is no selection in "multiple" mode', function () { var item = 0; var selection = null; var mode = 'multiple'; var expected = [item]; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toEqual(expected); }); test('should return null when deselecting the only item in "multiple" mode', function () { var item = 0; var selection = item; var mode = 'multiple'; var expected = null; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should return null when deselecting the only item as an array in "multiple" mode', function () { var item = 0; var selection = [item]; var mode = 'multiple'; var expected = null; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toBe(expected); }); test('should select new item when there is a selection', function () { var item = 1; var selection = 0; var mode = 'multiple'; var expected = [0, 1]; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toEqual(expected); }); test('should deselect only item when there is a selection', function () { var selection = [0, 1]; var item = 1; var mode = 'multiple'; var expected = [0]; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toEqual(expected); }); test('should sort selection', function () { var selection = [3, 1, 2, 5]; var item = 0; var mode = 'multiple'; var expected = [0, 1, 2, 3, 5]; var actual = (0, _selection.select)(mode, item, selection); expect(actual).toEqual(expected); }); });