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'], }, }); }); }); describe('setting values', () => { beforeEach(utils.setup(` Checkbox/Setting Values
`)) it('should check for boolean "true"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: true, }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).toBe('on'); }, expectedStaticValue: 'enabled=on', }); }); it('should check for string "true"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 'true', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).toBe('on'); }, expectedStaticValue: 'enabled=on', }); }); it('should check for string "yes"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 'yes', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).toBe('on'); }, expectedStaticValue: 'enabled=on', }); }); it('should check for string "on"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 'on', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).toBe('on'); }, expectedStaticValue: 'enabled=on', }); }); it('should uncheck for boolean "false"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: false, }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).not.toBe('on'); }, expectedStaticValue: '', }); }); it('should uncheck for string "false"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 'false', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).not.toBe('on'); }, expectedStaticValue: '', }); }); it('should uncheck for string "no"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 'no', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).not.toBe('on'); }, expectedStaticValue: '', }); }); it('should uncheck for string "off"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 'off', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).not.toBe('on'); }, expectedStaticValue: '', }); }); it('should check for number "1"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 1, }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).toBe('on'); }, expectedStaticValue: 'enabled=on', }); }); it('should check for string "1"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: '1', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).toBe('on'); }, expectedStaticValue: 'enabled=on', }); }); it('should uncheck for number "0"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 0, }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).not.toBe('on'); }, expectedStaticValue: '', }); }); it('should uncheck for string "0"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: '0', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).not.toBe('on'); }, expectedStaticValue: '', }); }); it('should uncheck for object "null"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: null, }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).not.toBe('on'); }, expectedStaticValue: '', }); }); it('should uncheck for string "null"', () => { utils.test({ preAction: (form: HTMLFormElement) => { setFormValues(form, { enabled: 'null', }) }, action: (cy: any) => cy.get('[type="submit"]'), test: (form: HTMLFormElement, submitter: any, search: any) => { const values = getFormValues(form, { submitter }) expect(values['enabled']).not.toBe('on'); }, expectedStaticValue: '', }); }); }); });