diff --git a/tests/unit/OptionKey.spec.js b/tests/unit/OptionKey.spec.js new file mode 100644 index 0000000..c1417f0 --- /dev/null +++ b/tests/unit/OptionKey.spec.js @@ -0,0 +1,25 @@ +import Select from '../../src/components/Select.vue'; + +describe('Serializing Option Keys', () => { + + const getOptionKey = Select.props.getOptionKey.default; + + it('can serialize strings to a key', () => { + expect(getOptionKey('vue')).toBe('"vue"'); + }); + + it('can serialize integers to a key', () => { + expect(getOptionKey(1)).toBe('1'); + }); + + it('can serialize objects to a key', () => { + expect(getOptionKey({label: 'vue'})).toBe('{"label":"vue"}'); + }); + + it('will use an ID property if the object contains one', () => { + expect(getOptionKey({id: 1})).toBe(1); + expect(getOptionKey({id: 'one'})).toBe('one'); + expect(getOptionKey({id: {im: 'a nested object'}})) + .toEqual({im: 'a nested object'}); + }); +});