import getFormValues from '../../src' import * as utils from '../utils' describe('file', () => { describe('single', () => { beforeEach(utils.setup(` File/Single
`)) it('should have no form values when no file is selected', () => { utils.test( (cy: any) => cy.get('[type="submit"]'), (form: HTMLFormElement, submitter: any, search: any) => { const before = utils.makeSearchParams(getFormValues(form, {submitter})).toString(); const after = utils.makeSearchParams(search).toString(); expect(before).toEqual(after); }, {} ); }) it('should have single form value when a file is selected', () => { utils.test( (cy: any) => { cy .get('[name="hello"]') .attachFile('uploads/data.json') return cy.get('[type="submit"]') }, (form: HTMLFormElement, submitter: any, search: any) => { const before = utils.makeSearchParams(getFormValues(form, {submitter})).toString(); const after = utils.makeSearchParams(search).toString(); expect(before).toEqual(after); }, { hello: 'data.json', } ); }) it('should retrieve the file list upon setting appropriate option', () => { utils.test( (cy: any) => { cy .get('[name="hello"]') .attachFile('uploads/data.json') return cy.get('[type="submit"]') }, (form: HTMLFormElement, submitter: any) => { const formValues = getFormValues(form, {submitter, getFileObjects: true}) expect(formValues.hello[0].name).toBe('data.json') //expect(before).toEqual(after); }, ); }) }) describe('multiple', () => { beforeEach(utils.setup(` File/Multiple
`)) it('should have no form values when no file is selected', () => { utils.test( (cy: any) => cy.get('[type="submit"]'), (form: HTMLFormElement, submitter: any, search: any) => { const before = utils.makeSearchParams(getFormValues(form, {submitter})).toString(); const after = utils.makeSearchParams(search).toString(); expect(before).toEqual(after); }, {} ); }) it('should have single form value when a file is selected', () => { utils.test( (cy: any) => { cy .get('[name="hello"]') .attachFile(['uploads/data.json', 'uploads/data2.json']) return cy.get('[type="submit"]') }, (form: HTMLFormElement, submitter: any, search: any) => { const before = utils.makeSearchParams(getFormValues(form, {submitter})).toString(); const after = utils.makeSearchParams(search).toString(); expect(before).toEqual(after); }, 'hello=data.json&hello=data2.json', ); }) it('should retrieve the file list upon setting appropriate option', () => { utils.test( (cy: any) => { cy .get('[name="hello"]') .attachFile(['uploads/data.json', 'uploads/data2.json']) return cy.get('[type="submit"]') }, (form: HTMLFormElement, submitter: any) => { const formValues = getFormValues(form, {submitter, getFileObjects: true}) expect(formValues.hello[0].name).toBe('data.json') expect(formValues.hello[1].name).toBe('data2.json') }, ); }) }) })