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'],
},
});
});
});
});