react-native-ui-lib
Version:
[](https://travis-ci.org/wix/react-native-ui-lib) [](https://www.npmjs.com/package/react-native-ui-lib) [![NPM Down
55 lines (45 loc) • 2.36 kB
JavaScript
import * as uut from '../PickerPresenter';
describe('components/PickerPresenter', () => {
it('should isItemSelected, handle single mode', () => {
expect(uut.isItemSelected('value', 'value')).toBe(true);
expect(uut.isItemSelected('value', 'value2')).toBe(false);
});
it('should isItemSelected, handle multi mode', () => {
expect(uut.isItemSelected('value', ['value', 'value1', 'value3'])).toBe(true);
expect(uut.isItemSelected('value', ['value1', 'value2', 'value3'])).toBe(false);
expect(uut.isItemSelected('value', [])).toBe(false);
expect(uut.isItemSelected('value', undefined)).toBe(false);
});
describe('getItemValue', () => {
it('should return item value when item has value prop', () => {
expect(uut.getItemValue({value: {value: 'item value'}})).toBe('item value');
});
it('should return item value for multiple values', () => {
const itemProps = {value: [{value: '1'}, {value: '2'}, {value: '3'}]};
expect(uut.getItemValue(itemProps)).toEqual(['1', '2', '3']);
});
it('should return item value when item has getItemValue prop', () => {
const itemProps = {value: {name: 'value', age: 12}, getItemValue: item => item.name};
expect(uut.getItemValue(itemProps)).toBe('value');
});
it('should return item value for multiple values when item has getItemValue prop', () => {
const itemProps = {value: [{name: 'david'}, {name: 'sarah'}, {name: 'jack'}], getItemValue: item => item.name};
expect(uut.getItemValue(itemProps)).toEqual(['david', 'sarah', 'jack']);
});
it('should support backward compatibility for when child item value was not an object', () => {
const itemProps = {value: 'item-value'};
expect(uut.getItemValue(itemProps)).toEqual('item-value');
});
});
describe('getItemLabel', () => {
it('should return item label when value is an object', () => {
const itemProps = {value: {value: 'value', label: 'label'}};
expect(uut.getItemLabel(itemProps)).toEqual('label');
});
it('should return item label according to getLabel function ', () => {
const getLabel = itemValue => `${itemValue.value} - ${itemValue.label}`;
const itemProps = {value: {value: 'value', label: 'label'}, getLabel};
expect(uut.getItemLabel(itemProps)).toEqual('value - label');
});
});
});