@enact/ui
Version:
A collection of simplified unstyled cross-platform UI components for Enact
160 lines (156 loc) • 5.62 kB
JavaScript
"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);
});
});