import { getFormValues, setFormValues } from '../../src'; import * as utils from '../utils' describe('checkbox', () => { describe('basic', () => { beforeEach(utils.setup(` Checkbox/Basic
`)) it('should have no form values', () => { utils.test({ action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) const before = utils.makeSearchParams(values) .toString(); const after = utils.makeSearchParams(search) .toString(); expect(values['enabled']) .toBeUndefined(); expect(before) .toEqual(after); }, expectedStaticValue: '', }); }); it('should have false checked value', () => { utils.test({ action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter, booleanValuelessCheckbox: true } ) expect(values['enabled']) .toBe(false); } }); }); }) describe('checked', () => { beforeEach(utils.setup(` Checkbox/Checked
`)) it('should have single form value on a single field', () => { utils.test({ action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const before = utils.makeSearchParams(getFormValues(form, { submitter })) .toString(); const after = utils.makeSearchParams(search) .toString(); expect(before) .toEqual(after); }, expectedStaticValue: 'enabled=on', }); }); }); describe('duplicate', () => { beforeEach(utils.setup(` Checkbox/Duplicate
`)); it('should get both values', () => { utils.test({ action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const before = utils.makeSearchParams(getFormValues(form, { submitter })) .toString(); const after = utils.makeSearchParams(search) .toString(); expect(before) .toEqual(after); }, expectedStaticValue: { enabled: ['hello 1', 'hello 2'], }, }); }); it('should set both values', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: ['hello 3', 'hello 4'], }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const before = utils.makeSearchParams(getFormValues(form, { submitter })) .toString(); const after = utils.makeSearchParams(search) .toString(); expect(before) .toEqual(after); }, expectedStaticValue: { enabled: ['hello 3', 'hello 4'], }, }); }); }); });