Skip to content

Commit

Permalink
Updated vitest setup to take our templates into account
Browse files Browse the repository at this point in the history
  • Loading branch information
vaszig authored and sergei-maertens committed Jan 28, 2025
1 parent 82df116 commit 4875a1c
Show file tree
Hide file tree
Showing 12 changed files with 139 additions and 130 deletions.
15 changes: 3 additions & 12 deletions src/formio/components/Checkbox.spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {screen} from '@testing-library/dom';
import userEvent from '@testing-library/user-event';
import _ from 'lodash';
import {Formio} from 'react-formio';
import {renderForm} from 'jstests/formio/utils';

const selectboxesForm = {
type: 'form',
Expand All @@ -17,22 +16,14 @@ const selectboxesForm = {
],
};

const renderForm = async () => {
let formJSON = _.cloneDeep(selectboxesForm);
const container = document.createElement('div');
document.body.appendChild(container);
const form = await Formio.createForm(container, formJSON);
return {form, container};
};

describe('The checkbox component', () => {
afterEach(() => {
document.body.innerHTML = '';
});

test('Checkbox component required and checked', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(selectboxesForm);

const checkbox = screen.getByLabelText('Checkbox');

Expand All @@ -45,7 +36,7 @@ describe('The checkbox component', () => {

test('Checkbox component required without being checked', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(selectboxesForm);

const checkbox = screen.getByLabelText('Checkbox');

Expand Down
15 changes: 3 additions & 12 deletions src/formio/components/Currency.spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {screen} from '@testing-library/dom';
import userEvent from '@testing-library/user-event';
import _ from 'lodash';
import {Formio} from 'react-formio';
import {renderForm} from 'jstests/formio/utils';

const currencyForm = {
type: 'form',
Expand All @@ -17,22 +16,14 @@ const currencyForm = {
],
};

const renderForm = async () => {
let formJSON = _.cloneDeep(currencyForm);
const container = document.createElement('div');
document.body.appendChild(container);
const form = await Formio.createForm(container, formJSON);
return {form, container};
};

describe('The currency component', () => {
afterEach(() => {
document.body.innerHTML = '';
});

test('Single currency component with valid input', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(currencyForm);

const input = screen.getByLabelText('Currency');

Expand All @@ -45,7 +36,7 @@ describe('The currency component', () => {

test('Single currency component with invalid input', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(currencyForm);

const input = screen.getByLabelText('Currency');

Expand Down
11 changes: 1 addition & 10 deletions src/formio/components/DateField.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import {waitFor} from '@storybook/test';
import {screen} from '@testing-library/dom';
import userEvent from '@testing-library/user-event';
import 'flatpickr';
import _ from 'lodash';
import {Formio} from 'react-formio';
import {renderForm} from 'jstests/formio/utils';

import {getComponentNode} from 'formio/components/jest-util';
import {sleep} from 'utils';
Expand Down Expand Up @@ -39,14 +38,6 @@ const multipleDateForm = {
],
};

const renderForm = async formConfig => {
let formJSON = _.cloneDeep(formConfig);
const container = document.createElement('div');
document.body.appendChild(container);
const form = await Formio.createForm(container, formJSON);
return {form, container};
};

const waitForFlatpickr = async node => {
let calendarNode;
for (let i = 0; i < 20; i++) {
Expand Down
11 changes: 1 addition & 10 deletions src/formio/components/DateTimeField.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@ import {waitFor} from '@storybook/test';
import {screen} from '@testing-library/dom';
import userEvent from '@testing-library/user-event';
import 'flatpickr';
import _ from 'lodash';
import {Formio} from 'react-formio';
import {renderForm} from 'jstests/formio/utils';

import {getComponentNode} from 'formio/components/jest-util';
import {sleep} from 'utils';
Expand Down Expand Up @@ -39,14 +38,6 @@ const multipleDateTimeForm = {
],
};

const renderForm = async formConfig => {
let formJSON = _.cloneDeep(formConfig);
const container = document.createElement('div');
document.body.appendChild(container);
const form = await Formio.createForm(container, formJSON);
return {form, container};
};

const waitForFlatpickr = async node => {
let calendarNode;
for (let i = 0; i < 20; i++) {
Expand Down
47 changes: 31 additions & 16 deletions src/formio/components/Number.spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {screen} from '@testing-library/dom';
import userEvent from '@testing-library/user-event';
import _ from 'lodash';
import {Formio} from 'react-formio';
import {renderForm} from 'jstests/formio/utils';

import {getComponentNode} from 'formio/components/jest-util';

Expand Down Expand Up @@ -34,22 +33,18 @@ const multipleNumberForm = {
],
};

const renderForm = async formConfig => {
let formJSON = _.cloneDeep(formConfig);
const container = document.createElement('div');
document.body.appendChild(container);
const form = await Formio.createForm(container, formJSON);
return {form, container};
};

describe('The number component', () => {
afterEach(() => {
document.body.innerHTML = '';
});

test('Single number component with valid input', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm(numberForm);
const {form} = await renderForm(numberForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

const input = screen.getByLabelText('Number');

Expand All @@ -62,7 +57,11 @@ describe('The number component', () => {

test('Single number component with invalid input', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm(numberForm);
const {form} = await renderForm(numberForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

const input = screen.getByLabelText('Number');

Expand Down Expand Up @@ -95,7 +94,11 @@ describe('The multiple number component', () => {

test('Multiple number component with valid input', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm(multipleNumberForm);
const {form} = await renderForm(multipleNumberForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

const input = screen.getByLabelText('Multiple number');

Expand All @@ -108,7 +111,11 @@ describe('The multiple number component', () => {

test('Multiple number component with invalid input', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm(multipleNumberForm);
const {form} = await renderForm(multipleNumberForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

const input = screen.getByLabelText('Multiple number');

Expand All @@ -133,7 +140,11 @@ describe('The multiple number component', () => {

test('Multiple number without inputs', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm(multipleNumberForm);
const {form} = await renderForm(multipleNumberForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

const input = screen.getByLabelText('Multiple number');
const component = getComponentNode(input);
Expand All @@ -153,7 +164,11 @@ describe('The multiple number component', () => {

test('Multiple number with one valid and one invalid input', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm(multipleNumberForm);
const {form} = await renderForm(multipleNumberForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

await user.click(screen.getByRole('button', {name: 'Add Another'}));

Expand Down
29 changes: 16 additions & 13 deletions src/formio/components/PhoneNumberField.spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {screen, waitFor} from '@testing-library/dom';
import userEvent from '@testing-library/user-event';
import _ from 'lodash';
import {Formio} from 'react-formio';
import {renderForm} from 'jstests/formio/utils';

const phoneForm = {
type: 'form',
Expand All @@ -16,14 +15,6 @@ const phoneForm = {
],
};

const renderForm = async () => {
let formJSON = _.cloneDeep(phoneForm);
const container = document.createElement('div');
document.body.appendChild(container);
const form = await Formio.createForm(container, formJSON);
return {form, container};
};

describe('The phone number component', () => {
afterEach(() => {
document.body.innerHTML = '';
Expand All @@ -33,7 +24,11 @@ describe('The phone number component', () => {
'accepts numbers and + as first character (value: %i)',
async value => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(phoneForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

const input = screen.getByLabelText('Phone number');
expect(input).toBeVisible();
Expand All @@ -50,7 +45,11 @@ describe('The phone number component', () => {
'only allows numbers and + as first character (value: %i)',
async value => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(phoneForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

const input = screen.getByLabelText('Phone number');
expect(input).toBeVisible();
Expand All @@ -72,7 +71,11 @@ describe('The phone number component', () => {
['06-12-34-56 78'], // weird but ok
])('allows dashes and spaces for formatting (value: %i)', async value => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(phoneForm, {
evalContext: {
requiredFieldsWithAsterisk: true,
},
});

const input = screen.getByLabelText('Phone number');
expect(input).toBeVisible();
Expand Down
15 changes: 3 additions & 12 deletions src/formio/components/Selectboxes.spec.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import {screen, waitFor} from '@testing-library/dom';
import userEvent from '@testing-library/user-event';
import _ from 'lodash';
import {Formio} from 'react-formio';
import {renderForm} from 'jstests/formio/utils';

const selectboxesForm = {
type: 'form',
Expand All @@ -27,22 +26,14 @@ const selectboxesForm = {
],
};

const renderForm = async () => {
let formJSON = _.cloneDeep(selectboxesForm);
const container = document.createElement('div');
document.body.appendChild(container);
const form = await Formio.createForm(container, formJSON);
return {form, container};
};

describe('The selectboxes component', () => {
afterEach(() => {
document.body.innerHTML = '';
});

test('Selectboxes component checked', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(selectboxesForm);

const selectboxA = screen.getByLabelText('Optie A');
const selectboxB = screen.getByLabelText('Optie B');
Expand All @@ -57,7 +48,7 @@ describe('The selectboxes component', () => {

test('Selectboxes component without checked selectbox', async () => {
const user = userEvent.setup({delay: 50});
const {form} = await renderForm();
const {form} = await renderForm(selectboxesForm);

const selectboxA = screen.getByLabelText('Optie A');
const selectboxB = screen.getByLabelText('Optie B');
Expand Down
Loading

0 comments on commit 4875a1c

Please sign in to comment.