diff --git a/cypress/integration/checkbox.test.ts b/cypress/integration/checkbox.test.ts
index a360caa..d158f7c 100644
--- a/cypress/integration/checkbox.test.ts
+++ b/cypress/integration/checkbox.test.ts
@@ -24,8 +24,8 @@ describe('checkbox', () => {
it('should have no form values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
const before = utils.makeSearchParams(values)
.toString();
@@ -42,8 +42,8 @@ describe('checkbox', () => {
it('should have false checked value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form,
{
submitter,
@@ -79,8 +79,8 @@ describe('checkbox', () => {
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) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -127,8 +127,8 @@ describe('checkbox', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -144,13 +144,13 @@ describe('checkbox', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
enabled: ['hello 3', 'hello 4'],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -187,11 +187,11 @@ describe('checkbox', () => {
it('should check for boolean "true"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: true, })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
expect(values['enabled']).toBe('on');
},
@@ -201,11 +201,11 @@ describe('checkbox', () => {
it('should check for string "true"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 'true', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
expect(values['enabled']).toBe('on');
},
@@ -215,11 +215,11 @@ describe('checkbox', () => {
it('should check for string "yes"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 'yes', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
expect(values['enabled']).toBe('on');
},
@@ -229,11 +229,11 @@ describe('checkbox', () => {
it('should check for string "on"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 'on', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
expect(values['enabled']).toBe('on');
},
@@ -243,13 +243,13 @@ describe('checkbox', () => {
it('should uncheck for boolean "false"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: false, })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
- expect(values['enabled']).not.toBe('on');
+ expect(values['enabled']).toBeUndefined()
},
expectedStaticValue: '',
});
@@ -257,13 +257,13 @@ describe('checkbox', () => {
it('should uncheck for string "false"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 'false', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
- expect(values['enabled']).not.toBe('on');
+ expect(values['enabled']).toBeUndefined()
},
expectedStaticValue: '',
});
@@ -271,13 +271,13 @@ describe('checkbox', () => {
it('should uncheck for string "no"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 'no', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
- expect(values['enabled']).not.toBe('on');
+ expect(values['enabled']).toBeUndefined()
},
expectedStaticValue: '',
});
@@ -285,13 +285,13 @@ describe('checkbox', () => {
it('should uncheck for string "off"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 'off', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
- expect(values['enabled']).not.toBe('on');
+ expect(values['enabled']).toBeUndefined()
},
expectedStaticValue: '',
});
@@ -299,11 +299,11 @@ describe('checkbox', () => {
it('should check for number "1"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 1, })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
expect(values['enabled']).toBe('on');
},
@@ -313,11 +313,11 @@ describe('checkbox', () => {
it('should check for string "1"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: '1', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
expect(values['enabled']).toBe('on');
},
@@ -327,13 +327,13 @@ describe('checkbox', () => {
it('should uncheck for number "0"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 0, })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
- expect(values['enabled']).not.toBe('on');
+ expect(values['enabled']).toBeUndefined()
},
expectedStaticValue: '',
});
@@ -341,13 +341,13 @@ describe('checkbox', () => {
it('should uncheck for string "0"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: '0', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
- expect(values['enabled']).not.toBe('on');
+ expect(values['enabled']).toBeUndefined()
},
expectedStaticValue: '',
});
@@ -355,13 +355,13 @@ describe('checkbox', () => {
it('should uncheck for object "null"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: null, })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
- expect(values['enabled']).not.toBe('on');
+ expect(values['enabled']).toBeUndefined()
},
expectedStaticValue: '',
});
@@ -369,13 +369,13 @@ describe('checkbox', () => {
it('should uncheck for string "null"', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { enabled: 'null', })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter })
- expect(values['enabled']).not.toBe('on');
+ expect(values['enabled']).toBeUndefined()
},
expectedStaticValue: '',
});
diff --git a/cypress/integration/core.test.ts b/cypress/integration/core.test.ts
new file mode 100644
index 0000000..2fe64be
--- /dev/null
+++ b/cypress/integration/core.test.ts
@@ -0,0 +1,393 @@
+import getFormValuesDeprecated, {
+ getFormValues,
+ setFormValues,
+ isFieldElement,
+ isElementValueIncludedInFormSubmit,
+ getValue,
+} from '../../src';
+import * as utils from '../utils'
+
+describe('misc', () => {
+ describe('core', () => {
+ beforeEach(utils.setup(`
+
+
+
+
+ Misc/Blank
+
+
+
+
+
+ `))
+
+ it('should call console.warn for deprecated default import usage', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let consoleWarnCalled = false
+ const defaultConsoleWarn = console.warn
+ console.warn = (...args: unknown[]) => {
+ consoleWarnCalled = true
+ };
+ getFormValuesDeprecated(form, { submitter });
+ expect(consoleWarnCalled).toBe(true);
+ console.warn = defaultConsoleWarn;
+ },
+ });
+ });
+
+ it('should throw an error when providing invalid argument type as form to getFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ getFormValues(0 as unknown as HTMLFormElement, {});
+ } catch {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(true);
+ },
+ });
+ });
+
+ it('should throw an error when providing null as form to getFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ getFormValues(null as unknown as HTMLFormElement, {});
+ } catch {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(true);
+ },
+ });
+ });
+
+ it('should throw an error when providing a different element type as form to getFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ getFormValues(document.body as unknown as HTMLFormElement, {});
+ } catch {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(true);
+ },
+ });
+ });
+
+ it('should throw an error when providing invalid argument type as form to setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(0 as unknown as HTMLFormElement, {});
+ } catch {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(true);
+ },
+ });
+ });
+
+ it('should throw an error when providing null as form to setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(null as unknown as HTMLFormElement, {});
+ } catch {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(true);
+ },
+ });
+ });
+
+ it('should throw an error when providing a different element type as form to setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(document.body as unknown as HTMLFormElement, {});
+ } catch {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(true);
+ },
+ });
+ });
+
+ it('should throw an error when providing invalid argument type as values to setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(form, 0);
+ } catch {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(true);
+ },
+ });
+ });
+
+ it('should not throw an error when providing null as form to setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(form, null);
+ } catch (e) {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(false);
+ },
+ });
+ });
+
+ it('should throw an error when providing undefined as form to setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(form, undefined);
+ } catch (e) {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(true);
+ },
+ });
+ });
+ });
+
+ describe('utilities', () => {
+ beforeEach(utils.setup(`
+
+
+
+
+ Misc/Utilities
+
+
+
+
+
+ `));
+
+ it('should check for valid field elements value', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const meter = document.getElementById('meter');
+ expect(getValue(meter)).toBe(5);
+ },
+ });
+ });
+
+ it('should check for invalid field elements value', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ expect(getValue(document.body)).toBe(null);
+ },
+ });
+ });
+
+ it('should check for elements as included fields', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const input = document.getElementById('input');
+ expect(isElementValueIncludedInFormSubmit(input)).toBe(true);
+ },
+ });
+ });
+
+ it('should check for elements as excluded fields', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const notField = document.getElementById('notField');
+ expect(isElementValueIncludedInFormSubmit(notField)).toBe(false);
+ const disabled = document.getElementById('disabled');
+ expect(isElementValueIncludedInFormSubmit(disabled)).toBe(false);
+ const meter = document.getElementById('meter');
+ expect(isElementValueIncludedInFormSubmit(meter)).toBe(false);
+ },
+ });
+ });
+
+ it('should check for elements as valid for fields', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const input = document.getElementById('input');
+ expect(isFieldElement(input)).toBe(true);
+ const disabled = document.getElementById('disabled');
+ expect(isFieldElement(disabled)).toBe(true);
+ },
+ });
+ });
+
+ it('should check for elements as invalid for fields', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const meter = document.getElementById('meter');
+ expect(isFieldElement(meter)).toBe(false);
+ const notField = document.getElementById('notField');
+ expect(isFieldElement(notField)).toBe(false);
+ },
+ });
+ });
+ });
+
+ describe('setting values', () => {
+ beforeEach(utils.setup(`
+
+
+
+
+ Misc/Blank
+
+
+
+
+
+ `))
+
+ it('should parse string values for setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(form, 'foobar=baz');
+ } catch (e) {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(false);
+ expect(getFormValues(form)).toEqual({ foobar: 'baz', });
+ },
+ })
+ });
+
+ it('should parse entries values for setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(form, [['foobar', 'baz']]);
+ } catch (e) {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(false);
+ expect(getFormValues(form)).toEqual({ foobar: 'baz', });
+ },
+ })
+ });
+
+ it('should parse URLSearchParams values for setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(form, new URLSearchParams('foobar=baz'));
+ } catch (e) {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(false);
+ expect(getFormValues(form)).toEqual({ foobar: 'baz', });
+ },
+ })
+ });
+
+ it('should parse object values for setFormValues', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ let isThrown = false;
+ try {
+ setFormValues(form, { foobar: 'baz', });
+ } catch (e) {
+ isThrown = true;
+ }
+
+ expect(isThrown).toBe(false);
+ expect(getFormValues(form)).toEqual({ foobar: 'baz', });
+ },
+ })
+ });
+ });
+
+ describe('duplicates', () => {
+ beforeEach(utils.setup(`
+
+
+
+
+ Misc/Blank
+
+
+
+
+
+ `));
+
+ it('should parse duplicates correctly', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { foobar: ['foo', 'bar', 'baz']})
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ expect(getFormValues(form)).toEqual({ foobar: ['foo', 'bar', 'baz'], });
+ },
+ })
+ });
+ });
+});
diff --git a/cypress/integration/date.test.ts b/cypress/integration/date.test.ts
index 54d1c66..866a010 100644
--- a/cypress/integration/date.test.ts
+++ b/cypress/integration/date.test.ts
@@ -24,8 +24,8 @@ describe('date', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -41,8 +41,8 @@ describe('date', () => {
it('should enable Date representation', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter, forceDateValues: true });
// somehow, checking instanceof Date fails here, because we're using an artificial date
// object?
@@ -78,8 +78,8 @@ describe('date', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -114,8 +114,8 @@ describe('date', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -155,8 +155,8 @@ describe('date', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -193,11 +193,11 @@ describe('date', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: new Date('2000-01-01'), })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -238,8 +238,8 @@ describe('date', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -255,13 +255,13 @@ describe('date', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: ['2006-06-06', '2005-05-05'],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/datetime-local.test.ts b/cypress/integration/datetime-local.test.ts
index 6642731..4f4b2f9 100644
--- a/cypress/integration/datetime-local.test.ts
+++ b/cypress/integration/datetime-local.test.ts
@@ -24,8 +24,8 @@ describe('date', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -41,8 +41,8 @@ describe('date', () => {
it('should enable Date representation', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter, forceDateValues: true });
// somehow, checking instanceof Date fails here, because we're using an artificial date
// object?
@@ -78,8 +78,8 @@ describe('date', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -114,8 +114,8 @@ describe('date', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -155,8 +155,8 @@ describe('date', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -193,11 +193,11 @@ describe('date', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: new Date('2000-01-01T13:37'), })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -238,8 +238,8 @@ describe('date', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -255,13 +255,13 @@ describe('date', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: ['2006-06-06T13:37', '2005-05-05T13:37'],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/file.test.ts b/cypress/integration/file.test.ts
index 4fe2717..a4f5f26 100644
--- a/cypress/integration/file.test.ts
+++ b/cypress/integration/file.test.ts
@@ -24,8 +24,8 @@ describe('file', () => {
it('should have no form values when no file is selected', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -41,14 +41,14 @@ describe('file', () => {
it('should have single form value when a file is selected', () => {
utils.test({
- action: (cy: any) => {
+ actionBeforeSubmit: (cy: any) => {
cy
.get('[name="hello"]')
.attachFile('uploads/data.json')
return cy.get('[type="submit"]')
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -64,14 +64,14 @@ describe('file', () => {
it('should retrieve the file list upon setting appropriate option', () => {
utils.test({
- action: (cy: any) => {
+ actionBeforeSubmit: (cy: any) => {
cy
.get('[name="hello"]')
.attachFile('uploads/data.json')
return cy.get('[type="submit"]')
},
- test: (form: HTMLFormElement, submitter: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any) => {
const formValues = getFormValues(form,
{
submitter,
@@ -86,11 +86,11 @@ describe('file', () => {
it('should do nothing when attempting to set the value of the file', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: 'data.json' });
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any) => {
const formValues = getFormValues(
form,
{
@@ -127,8 +127,8 @@ describe('file', () => {
it('should have no form values when no file is selected', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -144,14 +144,14 @@ describe('file', () => {
it('should have single form value when a file is selected', () => {
utils.test({
- action: (cy: any) => {
+ actionBeforeSubmit: (cy: any) => {
cy
.get('[name="hello"]')
.attachFile(['uploads/data.json', 'uploads/data2.json'])
return cy.get('[type="submit"]')
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -165,14 +165,14 @@ describe('file', () => {
it('should retrieve the file list upon setting appropriate option', () => {
utils.test({
- action: (cy: any) => {
+ actionBeforeSubmit: (cy: any) => {
cy
.get('[name="hello"]')
.attachFile(['uploads/data.json', 'uploads/data2.json'])
return cy.get('[type="submit"]')
},
- test: (form: HTMLFormElement, submitter: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any) => {
const formValues = getFormValues(form,
{
submitter,
diff --git a/cypress/integration/misc.test.ts b/cypress/integration/misc.test.ts
index e13ac04..fe88804 100644
--- a/cypress/integration/misc.test.ts
+++ b/cypress/integration/misc.test.ts
@@ -1,396 +1,7 @@
-import getFormValuesDeprecated, {
- getFormValues,
- setFormValues,
- isFieldElement,
- isElementValueIncludedInFormSubmit,
- getValue,
-} from '../../src';
+import { getFormValues, setFormValues } from '../../src';
import * as utils from '../utils'
describe('misc', () => {
- describe('core', () => {
- beforeEach(utils.setup(`
-
-
-
-
- Misc/Blank
-
-
-
-
-
- `))
-
- it('should call console.warn for deprecated default import usage', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let consoleWarnCalled = false
- const defaultConsoleWarn = console.warn
- console.warn = (...args: unknown[]) => {
- consoleWarnCalled = true
- };
- getFormValuesDeprecated(form, { submitter });
- expect(consoleWarnCalled).toBe(true);
- console.warn = defaultConsoleWarn;
- },
- });
- });
-
- it('should throw an error when providing invalid argument type as form to getFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- getFormValues(0 as unknown as HTMLFormElement, {});
- } catch {
- isThrown = true;
- }
-
- expect(isThrown).toBe(true);
- },
- });
- });
-
- it('should throw an error when providing null as form to getFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- getFormValues(null as unknown as HTMLFormElement, {});
- } catch {
- isThrown = true;
- }
-
- expect(isThrown).toBe(true);
- },
- });
- });
-
- it('should throw an error when providing a different element type as form to getFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- getFormValues(document.body as unknown as HTMLFormElement, {});
- } catch {
- isThrown = true;
- }
-
- expect(isThrown).toBe(true);
- },
- });
- });
-
- it('should throw an error when providing invalid argument type as form to setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(0 as unknown as HTMLFormElement, {});
- } catch {
- isThrown = true;
- }
-
- expect(isThrown).toBe(true);
- },
- });
- });
-
- it('should throw an error when providing null as form to setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(null as unknown as HTMLFormElement, {});
- } catch {
- isThrown = true;
- }
-
- expect(isThrown).toBe(true);
- },
- });
- });
-
- it('should throw an error when providing a different element type as form to setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(document.body as unknown as HTMLFormElement, {});
- } catch {
- isThrown = true;
- }
-
- expect(isThrown).toBe(true);
- },
- });
- });
-
- it('should throw an error when providing invalid argument type as values to setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(form, 0);
- } catch {
- isThrown = true;
- }
-
- expect(isThrown).toBe(true);
- },
- });
- });
-
- it('should not throw an error when providing null as form to setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(form, null);
- } catch (e) {
- isThrown = true;
- }
-
- expect(isThrown).toBe(false);
- },
- });
- });
-
- it('should throw an error when providing undefined as form to setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(form, undefined);
- } catch (e) {
- isThrown = true;
- }
-
- expect(isThrown).toBe(true);
- },
- });
- });
- });
-
- describe('utilities', () => {
- beforeEach(utils.setup(`
-
-
-
-
- Misc/Utilities
-
-
-
-
-
- `));
-
- it('should check for valid field elements value', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- const meter = document.getElementById('meter');
- expect(getValue(meter)).toBe(5);
- },
- });
- });
-
- it('should check for invalid field elements value', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- expect(getValue(document.body)).toBe(null);
- },
- });
- });
-
- it('should check for elements as included fields', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- const input = document.getElementById('input');
- expect(isElementValueIncludedInFormSubmit(input)).toBe(true);
- },
- });
- });
-
- it('should check for elements as excluded fields', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- const notField = document.getElementById('notField');
- expect(isElementValueIncludedInFormSubmit(notField)).toBe(false);
- const disabled = document.getElementById('disabled');
- expect(isElementValueIncludedInFormSubmit(disabled)).toBe(false);
- const meter = document.getElementById('meter');
- expect(isElementValueIncludedInFormSubmit(meter)).toBe(false);
- },
- });
- });
-
- it('should check for elements as valid for fields', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- const input = document.getElementById('input');
- expect(isFieldElement(input)).toBe(true);
- const disabled = document.getElementById('disabled');
- expect(isFieldElement(disabled)).toBe(true);
- },
- });
- });
-
- it('should check for elements as invalid for fields', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- const meter = document.getElementById('meter');
- expect(isFieldElement(meter)).toBe(false);
- const notField = document.getElementById('notField');
- expect(isFieldElement(notField)).toBe(false);
- },
- });
- });
- });
-
- describe('setting values', () => {
- beforeEach(utils.setup(`
-
-
-
-
- Misc/Blank
-
-
-
-
-
- `))
-
- it('should parse string values for setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(form, 'foobar=baz');
- } catch (e) {
- isThrown = true;
- }
-
- expect(isThrown).toBe(false);
- expect(getFormValues(form)).toEqual({ foobar: 'baz', });
- },
- })
- });
-
- it('should parse entries values for setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(form, [['foobar', 'baz']]);
- } catch (e) {
- isThrown = true;
- }
-
- expect(isThrown).toBe(false);
- expect(getFormValues(form)).toEqual({ foobar: 'baz', });
- },
- })
- });
-
- it('should parse URLSearchParams values for setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(form, new URLSearchParams('foobar=baz'));
- } catch (e) {
- isThrown = true;
- }
-
- expect(isThrown).toBe(false);
- expect(getFormValues(form)).toEqual({ foobar: 'baz', });
- },
- })
- });
-
- it('should parse object values for setFormValues', () => {
- utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- let isThrown = false;
- try {
- setFormValues(form, { foobar: 'baz', });
- } catch (e) {
- isThrown = true;
- }
-
- expect(isThrown).toBe(false);
- expect(getFormValues(form)).toEqual({ foobar: 'baz', });
- },
- })
- });
- });
-
- describe('duplicates', () => {
- beforeEach(utils.setup(`
-
-
-
-
- Misc/Blank
-
-
-
-
-
- `));
-
- it('should parse duplicates correctly', () => {
- utils.test({
- preAction: (form: HTMLFormElement) => {
- setFormValues(form, { foobar: ['foo', 'bar', 'baz']})
- },
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
- expect(getFormValues(form)).toEqual({ foobar: ['foo', 'bar', 'baz'], });
- },
- })
- });
- });
-
describe('blank', () => {
beforeEach(utils.setup(`
@@ -409,8 +20,8 @@ describe('misc', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -569,7 +180,7 @@ describe('misc', () => {
it('should have correct form values', () => {
utils.test({
- action: (cy) => {
+ actionBeforeSubmit: (cy) => {
cy.get('[name="first_name"]')
.type('John')
cy.get('[name="middle_name"]')
@@ -619,7 +230,7 @@ describe('misc', () => {
.type('Test content\n\nNew line\n\nAnother line')
return cy.get('[name="submit"][value="Hi"]')
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -634,8 +245,8 @@ describe('misc', () => {
it('should have filled form values', () => {
utils.test({
- action: (cy) => cy.wait(3000).get('[name="submit"][value="Hi"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy) => cy.wait(3000).get('[name="submit"][value="Hi"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -644,7 +255,7 @@ describe('misc', () => {
expect(before)
.toEqual(after);
},
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
first_name: 'John',
middle_name: 'Marcelo',
diff --git a/cypress/integration/month.test.ts b/cypress/integration/month.test.ts
index 1a5096a..420945d 100644
--- a/cypress/integration/month.test.ts
+++ b/cypress/integration/month.test.ts
@@ -24,8 +24,8 @@ describe('month', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -41,8 +41,8 @@ describe('month', () => {
it('should enable Date representation', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const values = getFormValues(form, { submitter, forceDateValues: true });
// somehow, checking instanceof Date fails here, because we're using an artificial date
// object?
@@ -78,8 +78,8 @@ describe('month', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -114,8 +114,8 @@ describe('month', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -155,8 +155,8 @@ describe('month', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -193,11 +193,11 @@ describe('month', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: '2003-05', })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -238,8 +238,8 @@ describe('month', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -255,13 +255,13 @@ describe('month', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: ['2003-04', '2003-02'],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/number.test.ts b/cypress/integration/number.test.ts
index b28d8ea..0e7e1d8 100644
--- a/cypress/integration/number.test.ts
+++ b/cypress/integration/number.test.ts
@@ -24,8 +24,8 @@ describe('number', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, forceNumberValues: true, }))
.toString();
const after = utils.makeSearchParams(search)
@@ -65,8 +65,8 @@ describe('number', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -101,8 +101,8 @@ describe('number', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -142,8 +142,8 @@ describe('number', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -180,11 +180,11 @@ describe('number', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: 5, })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, forceNumberValues: true, }))
.toString();
const after = utils.makeSearchParams(search)
@@ -225,8 +225,8 @@ describe('number', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, forceNumberValues: true, }))
.toString();
const after = utils.makeSearchParams(search)
@@ -242,13 +242,13 @@ describe('number', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: [4, 2],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/radio.test.ts b/cypress/integration/radio.test.ts
new file mode 100644
index 0000000..c70c7dc
--- /dev/null
+++ b/cypress/integration/radio.test.ts
@@ -0,0 +1,419 @@
+import { getFormValues, setFormValues } from '../../src';
+import * as utils from '../utils'
+
+describe('radio', () => {
+ describe('basic', () => {
+ beforeEach(utils.setup(`
+
+
+
+
+ Radio/Basic
+
+
+
+
+
+ `))
+
+ it('should have no form values', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (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: '',
+ });
+ });
+ });
+
+ describe('checked', () => {
+ beforeEach(utils.setup(`
+
+
+
+
+ Radio/Checked
+
+
+
+
+
+ `))
+
+ it('should have single form value on a single field', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (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(`
+
+
+
+
+ Radio/Duplicate
+
+
+
+
+
+ `));
+
+ it('should get last value as checked', () => {
+ utils.test({
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (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 2',
+ },
+ });
+ });
+
+ it('should set to last value', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, {
+ enabled: ['hello 3', 'hello 4'],
+ })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (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 4',
+ },
+ });
+ });
+ });
+
+ describe('setting values', () => {
+ beforeEach(utils.setup(`
+
+
+
+
+ Radio/Setting Values
+
+
+
+
+
+ `))
+
+ it('should uncheck for boolean "true"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: true, })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBeUndefined()
+ },
+ expectedStaticValue: '',
+ });
+ });
+
+ it('should check for string "true"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 'true', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('true');
+ },
+ expectedStaticValue: 'enabled=true',
+ });
+ });
+
+ it('should check for string "yes"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 'yes', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('yes');
+ },
+ expectedStaticValue: 'enabled=yes',
+ });
+ });
+
+ it('should check for string "on"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 'on', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (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({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: false, })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBeUndefined()
+ },
+ expectedStaticValue: '',
+ });
+ });
+
+ it('should check for string "false"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 'false', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('false');
+ },
+ expectedStaticValue: 'enabled=false',
+ });
+ });
+
+ it('should check for string "no"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 'no', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('no')
+ },
+ expectedStaticValue: 'enabled=no',
+ });
+ });
+
+ it('should check for string "off"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 'off', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('off');
+ },
+ expectedStaticValue: 'enabled=off',
+ });
+ });
+
+ it('should uncheck for number "1"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 1, })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBeUndefined();
+ },
+ expectedStaticValue: '',
+ });
+ });
+
+ it('should check for string "1"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: '1', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('1');
+ },
+ expectedStaticValue: 'enabled=1',
+ });
+ });
+
+ it('should uncheck for number "0"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 0, })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBeUndefined()
+ },
+ expectedStaticValue: '',
+ });
+ });
+
+ it('should check for string "0"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: '0', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('0')
+ },
+ expectedStaticValue: 'enabled=0',
+ });
+ });
+
+ it('should uncheck for object "null"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: null, })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBeUndefined()
+ },
+ expectedStaticValue: '',
+ });
+ });
+
+ it('should check for string "null"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: 'null', })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('null');
+ },
+ expectedStaticValue: 'null',
+ });
+ });
+
+ it('should check for boolean "true"', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: true, })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBeUndefined()
+ },
+ expectedStaticValue: '',
+ });
+ });
+
+ it('should check valueless radio for last value on', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: ['foo', 'bar', 'baz', 'on'], })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('on')
+ },
+ expectedStaticValue: 'enabled=on',
+ });
+ });
+
+ it('should check radio with value for last value', () => {
+ utils.test({
+ onLoaded: (form: HTMLFormElement) => {
+ setFormValues(form, { enabled: ['foo', 'bar', 'baz', 'on', 'default', 'true'], })
+ },
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
+ const values = getFormValues(form, { submitter })
+ expect(values['enabled']).toBe('true')
+ },
+ expectedStaticValue: 'enabled=true',
+ });
+ });
+ });
+});
diff --git a/cypress/integration/range.test.ts b/cypress/integration/range.test.ts
index f9b73c4..c6ffe6a 100644
--- a/cypress/integration/range.test.ts
+++ b/cypress/integration/range.test.ts
@@ -24,8 +24,8 @@ describe('range', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, forceNumberValues: true, }))
.toString();
const after = utils.makeSearchParams(search)
@@ -65,8 +65,8 @@ describe('range', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -101,8 +101,8 @@ describe('range', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -142,8 +142,8 @@ describe('range', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -180,11 +180,11 @@ describe('range', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: 5, })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, forceNumberValues: true, }))
.toString();
const after = utils.makeSearchParams(search)
@@ -225,8 +225,8 @@ describe('range', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, forceNumberValues: true, }))
.toString();
const after = utils.makeSearchParams(search)
@@ -242,13 +242,13 @@ describe('range', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: [4, 2],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/select.test.ts b/cypress/integration/select.test.ts
index 453cce4..776a511 100644
--- a/cypress/integration/select.test.ts
+++ b/cypress/integration/select.test.ts
@@ -29,8 +29,8 @@ describe('select', () => {
it('should have multiple form values on a single field', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -44,11 +44,11 @@ describe('select', () => {
it('should set values correctly', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: ['Foo', 'Baz'] });
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -94,8 +94,8 @@ describe('select', () => {
it('should have multiple form values on a single field', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -109,11 +109,11 @@ describe('select', () => {
it('should set multiple form values across all selects', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: ['Foo', 'Baz', 'Chocolate', 'Vanilla'] })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -127,11 +127,11 @@ describe('select', () => {
it('should set multiple form values on each corresponding select element', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: [['Foo', 'Baz', 'Chocolate'], ['Vanilla']] })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -170,8 +170,8 @@ describe('select', () => {
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) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -220,8 +220,8 @@ describe('select', () => {
it('should have multiple form values on a single field', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -235,11 +235,11 @@ describe('select', () => {
it('should set multiple form values across all selects', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: ['Foo', 'Chocolate'] })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -253,11 +253,11 @@ describe('select', () => {
it('should set multiple form values on each corresponding select element', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: ['Foo', 'Ube'] })
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/submitter.test.ts b/cypress/integration/submitter.test.ts
index 6a38e9f..1bde040 100644
--- a/cypress/integration/submitter.test.ts
+++ b/cypress/integration/submitter.test.ts
@@ -25,8 +25,8 @@ describe('submitter', () => {
it('should have double form values', () => {
utils.test({
- action: (cy: any) => cy.get('[name="action"][value="Foo"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[name="action"][value="Foo"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -65,8 +65,8 @@ describe('submitter', () => {
it('should have double form values', () => {
utils.test({
- action: (cy: any) => cy.get('[name="action"][value="Bar"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[name="action"][value="Bar"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -103,8 +103,8 @@ describe('submitter', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/text.test.ts b/cypress/integration/text.test.ts
index 94fe112..3d6e21e 100644
--- a/cypress/integration/text.test.ts
+++ b/cypress/integration/text.test.ts
@@ -24,8 +24,8 @@ describe('text', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -65,8 +65,8 @@ describe('text', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -101,8 +101,8 @@ describe('text', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -142,8 +142,8 @@ describe('text', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -180,11 +180,11 @@ describe('text', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: 'Hi', })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -225,8 +225,8 @@ describe('text', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -242,13 +242,13 @@ describe('text', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: ['new value 1', 'another value 2'],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/textarea.test.ts b/cypress/integration/textarea.test.ts
index 5fdf85d..aaf76dd 100644
--- a/cypress/integration/textarea.test.ts
+++ b/cypress/integration/textarea.test.ts
@@ -24,8 +24,8 @@ describe('textarea', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -65,8 +65,8 @@ describe('textarea', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -101,8 +101,8 @@ describe('textarea', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -142,8 +142,8 @@ describe('textarea', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -180,11 +180,11 @@ describe('textarea', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: 'Hi', })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -221,12 +221,12 @@ describe('textarea', () => {
it('should read LF line breaks', () => {
utils.test({
- action: (cy: any) => {
+ actionBeforeSubmit: (cy: any) => {
cy.get('[name="hello"]')
.type('Hi\nHello', { parseSpecialCharSequences: false })
return cy.get('[type="submit"]')
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, lineEndings: LineEnding.LF }))
.toString();
const after = utils.makeSearchParams(search)
@@ -242,12 +242,12 @@ describe('textarea', () => {
it('should read CR line breaks', () => {
utils.test({
- action: (cy: any) => {
+ actionBeforeSubmit: (cy: any) => {
cy.get('[name="hello"]')
.type('Hi\rHello', { parseSpecialCharSequences: false })
return cy.get('[type="submit"]')
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, lineEndings: LineEnding.CR }))
.toString();
const after = utils.makeSearchParams(search)
@@ -263,12 +263,12 @@ describe('textarea', () => {
it('should read CRLF line breaks', () => {
utils.test({
- action: (cy: any) => {
+ actionBeforeSubmit: (cy: any) => {
cy.get('[name="hello"]')
.type('Hi\r\nHello', { parseSpecialCharSequences: false })
return cy.get('[type="submit"]')
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter, lineEndings: LineEnding.CRLF }))
.toString();
const after = utils.makeSearchParams(search)
@@ -309,8 +309,8 @@ describe('textarea', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -326,13 +326,13 @@ describe('textarea', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: ['new value 1', 'another value 2'],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/time.test.ts b/cypress/integration/time.test.ts
index 2eeb884..fa3fd69 100644
--- a/cypress/integration/time.test.ts
+++ b/cypress/integration/time.test.ts
@@ -24,8 +24,8 @@ describe('time', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -65,8 +65,8 @@ describe('time', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -101,8 +101,8 @@ describe('time', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -142,8 +142,8 @@ describe('time', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -180,11 +180,11 @@ describe('time', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: '13:37', })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -225,8 +225,8 @@ describe('time', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -242,13 +242,13 @@ describe('time', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: ['04:20', '05:30'],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/integration/week.test.ts b/cypress/integration/week.test.ts
index df7e643..12ccaf7 100644
--- a/cypress/integration/week.test.ts
+++ b/cypress/integration/week.test.ts
@@ -24,8 +24,8 @@ describe('week', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -65,8 +65,8 @@ describe('week', () => {
it('should have blank form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -101,8 +101,8 @@ describe('week', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -142,8 +142,8 @@ describe('week', () => {
it('should have single form value', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -180,11 +180,11 @@ describe('week', () => {
it('should have form values set', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- preAction: (form: HTMLFormElement) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, { hello: '2003-W25', })
},
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -225,8 +225,8 @@ describe('week', () => {
it('should get both values', () => {
utils.test({
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
@@ -242,13 +242,13 @@ describe('week', () => {
it('should set both values', () => {
utils.test({
- preAction: (form: HTMLFormElement) => {
+ onLoaded: (form: HTMLFormElement) => {
setFormValues(form, {
hello: ['2003-W40', '2003-W50'],
})
},
- action: (cy: any) => cy.get('[type="submit"]'),
- test: (form: HTMLFormElement, submitter: any, search: any) => {
+ actionBeforeSubmit: (cy: any) => cy.get('[type="submit"]'),
+ onSubmitted: (form: HTMLFormElement, submitter: any, search: any) => {
const before = utils.makeSearchParams(getFormValues(form, { submitter }))
.toString();
const after = utils.makeSearchParams(search)
diff --git a/cypress/utils/index.ts b/cypress/utils/index.ts
index 6dc5182..7647494 100644
--- a/cypress/utils/index.ts
+++ b/cypress/utils/index.ts
@@ -13,7 +13,7 @@ type TestFn = (form: HTMLFormElement, submitter: HTMLSubmitterElement, after: Ex
export const setup = (template: string) => {
if (typeof cy !== 'undefined') {
return () => {
- cy.intercept({ url: '/' }, { body: template });
+ cy.intercept({ url: '/' }, { body: template }).as('loaded');
cy.intercept({ url: '/?*' }, { body: template }).as('submitted');
}
}
@@ -26,18 +26,18 @@ export const setup = (template: string) => {
}
type TestOptions = {
- action: RetrieveSubmitterFn,
- test: TestFn,
+ actionBeforeSubmit: RetrieveSubmitterFn,
+ onSubmitted: TestFn,
expectedStaticValue?: ExpectedSearchValue,
- preAction?: Function,
+ onLoaded?: Function,
}
export const test = (options: TestOptions) => {
const {
- action: retrieveSubmitterFn,
- test: testFn,
+ actionBeforeSubmit: retrieveSubmitterFn,
+ onSubmitted: testFn,
expectedStaticValue,
- preAction,
+ onLoaded,
} = options;
let form: HTMLFormElement
let submitter: HTMLButtonElement | HTMLInputElement
@@ -49,8 +49,8 @@ export const test = (options: TestOptions) => {
.then((formResult: any) => {
[form] = Array.from(formResult);
- if (typeof preAction === 'function') {
- preAction(form);
+ if (typeof onLoaded === 'function') {
+ onLoaded(form);
}
})
@@ -65,13 +65,17 @@ export const test = (options: TestOptions) => {
.wait('@submitted')
.location('search')
.then((search: any) => {
- testFn(form, submitter, search)
+ setTimeout(() => {
+ testFn(form, submitter, search)
+ }, 0)
})
} else {
cy
.location('search')
.then((search: any) => {
- testFn(form, submitter, search)
+ setTimeout(() => {
+ testFn(form, submitter, search)
+ }, 0);
})
}
} else {
@@ -80,8 +84,8 @@ export const test = (options: TestOptions) => {
[submitter] = Array.from(submitterQueryEl as any[]);
[form] = Array.from(window.document.getElementsByTagName('form'))
- if (typeof preAction === 'function') {
- preAction(form);
+ if (typeof onLoaded === 'function') {
+ onLoaded(form);
}
testFn(form, submitter, expectedStaticValue)
diff --git a/src/index.ts b/src/index.ts
index 781bb4d..bc18609 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -216,8 +216,19 @@ const setInputRadioFieldValue = (
value: unknown,
) => {
const valueWhenChecked = inputEl.getAttribute(ATTRIBUTE_VALUE);
+
+ if (valueWhenChecked !== null) {
+ // eslint-disable-next-line no-param-reassign
+ inputEl.checked = (
+ Array.isArray(value) ? valueWhenChecked === value.slice(-1)[0] : valueWhenChecked === value
+ );
+ return;
+ }
+
// eslint-disable-next-line no-param-reassign
- inputEl.checked = valueWhenChecked === value;
+ inputEl.checked = (
+ Array.isArray(value) ? value.includes('on') : value === 'on'
+ );
};
/**