diff options
Diffstat (limited to 'spec/frontend/lib/utils/forms_spec.js')
-rw-r--r-- | spec/frontend/lib/utils/forms_spec.js | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/spec/frontend/lib/utils/forms_spec.js b/spec/frontend/lib/utils/forms_spec.js index 07ba7c29dfc..a69be99ab98 100644 --- a/spec/frontend/lib/utils/forms_spec.js +++ b/spec/frontend/lib/utils/forms_spec.js @@ -1,4 +1,4 @@ -import { serializeForm } from '~/lib/utils/forms'; +import { serializeForm, serializeFormObject, isEmptyValue } from '~/lib/utils/forms'; describe('lib/utils/forms', () => { const createDummyForm = inputs => { @@ -93,4 +93,46 @@ describe('lib/utils/forms', () => { }); }); }); + + describe('isEmptyValue', () => { + it.each` + input | returnValue + ${''} | ${true} + ${[]} | ${true} + ${null} | ${true} + ${undefined} | ${true} + ${'hello'} | ${false} + ${' '} | ${false} + ${0} | ${false} + `('returns $returnValue for value $input', ({ input, returnValue }) => { + expect(isEmptyValue(input)).toBe(returnValue); + }); + }); + + describe('serializeFormObject', () => { + it('returns an serialized object', () => { + const form = { + profileName: { value: 'hello', state: null, feedback: null }, + spiderTimeout: { value: 2, state: true, feedback: null }, + targetTimeout: { value: 12, state: true, feedback: null }, + }; + expect(serializeFormObject(form)).toEqual({ + profileName: 'hello', + spiderTimeout: 2, + targetTimeout: 12, + }); + }); + + it('returns only the entries with value', () => { + const form = { + profileName: { value: '', state: null, feedback: null }, + spiderTimeout: { value: 0, state: null, feedback: null }, + targetTimeout: { value: null, state: null, feedback: null }, + name: { value: undefined, state: null, feedback: null }, + }; + expect(serializeFormObject(form)).toEqual({ + spiderTimeout: 0, + }); + }); + }); }); |