import { elementUpdated, expect, fixture, html } from '@open-wc/testing';
import '@lion/input-amount/lion-input-amount';
import '@lion/input-date/lion-input-date';
import '@lion/textarea/lion-textarea';
import '@lion/input-datepicker/lion-input-datepicker';
import '@lion/input-email/lion-input-email';
import '@lion/input-iban/lion-input-iban';
import '@lion/input-range/lion-input-range';
import '@lion/input/lion-input';
import '@lion/checkbox-group/lion-checkbox-group';
import '@lion/checkbox-group/lion-checkbox';
import '@lion/radio-group/lion-radio-group';
import '@lion/radio-group/lion-radio';
import '@lion/select/lion-select';
import '@lion/switch/lion-switch';
import '@lion/form/lion-form';
import '@lion/button/lion-button';
import { Required, MinLength } from '@lion/form-core';
describe(`Submitting/Resetting Form`, async () => {
let el;
beforeEach(async () => {
el = await fixture(html`
`);
});
it('Submitting a form should make submitted true for all fields', async () => {
el.querySelector('#submit_button').click();
await elementUpdated(el);
el.formElements.forEach(field => {
console.log(field);
console.log(field.submitted);
expect(field.submitted).to.be.true;
});
});
it('Resetting a form should reset metadata of all fields', async () => {
el.querySelector('#submit_button').click();
el.querySelector('#reset_button').click();
await elementUpdated(el);
expect(el.submitted).to.be.false;
el.formElements.forEach(field => {
expect(field.submitted).to.be.false;
expect(field.touched).to.be.false;
expect(field.dirty).to.be.false;
});
});
});