@digigov/form 2.0.0-254f7786 → 2.0.0-2a26e869
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Field/ErrorGroup/index.js +48 -0
- package/Field/ErrorGroup/package.json +6 -0
- package/Field/ErrorGroup.d.ts +15 -0
- package/Field/ErrorGroup.js.map +7 -0
- package/Field/FieldBase/index.js +30 -22
- package/Field/FieldBase.js.map +2 -2
- package/Field/FieldBaseContainer/index.js +3 -2
- package/Field/FieldBaseContainer.js.map +2 -2
- package/Field/types.d.ts +2 -0
- package/FieldArray/index.js +1 -0
- package/FieldArray/index.js.map +2 -2
- package/FormBuilder/FormBuilder.stories.d.ts +2 -0
- package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +3 -0
- package/FormBuilder/__stories__/ErrorGrouping.d.ts +3 -0
- package/FormBuilder/index.js +83 -4
- package/FormBuilder/index.js.map +2 -2
- package/FormBuilder/interaction.test.d.ts +1 -0
- package/MultiplicityField/index.js +1 -0
- package/MultiplicityField/index.js.map +2 -2
- package/cjs/Field/ErrorGroup/index.js +82 -0
- package/cjs/Field/ErrorGroup.js.map +7 -0
- package/cjs/Field/FieldBase/index.js +29 -21
- package/cjs/Field/FieldBase.js.map +2 -2
- package/cjs/Field/FieldBaseContainer/index.js +3 -2
- package/cjs/Field/FieldBaseContainer.js.map +2 -2
- package/cjs/Field/types.js.map +1 -1
- package/cjs/FieldArray/index.js +1 -0
- package/cjs/FieldArray/index.js.map +2 -2
- package/cjs/FormBuilder/index.js +83 -4
- package/cjs/FormBuilder/index.js.map +2 -2
- package/cjs/MultiplicityField/index.js +1 -0
- package/cjs/MultiplicityField/index.js.map +2 -2
- package/cjs/inputs/DateInput/index.js +3 -3
- package/cjs/inputs/DateInput/index.js.map +2 -2
- package/cjs/inputs/Input/index.js +1 -0
- package/cjs/inputs/Input/index.js.map +2 -2
- package/cjs/lazy/index.js +4 -2
- package/cjs/lazy.js.map +2 -2
- package/cjs/registry/index.js +8 -6
- package/cjs/registry.js.map +2 -2
- package/cjs/validators/index.js +19 -13
- package/cjs/validators/index.js.map +2 -2
- package/cjs/validators/utils/int/index.js +1 -1
- package/cjs/validators/utils/int.js.map +2 -2
- package/cjs/validators/utils/number/index.js +1 -1
- package/cjs/validators/utils/number.js.map +2 -2
- package/index.js +1 -1
- package/inputs/DateInput/index.js +3 -3
- package/inputs/DateInput/index.js.map +2 -2
- package/inputs/Input/Input.stories.d.ts +1 -0
- package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +3 -0
- package/inputs/Input/index.js +1 -0
- package/inputs/Input/index.js.map +2 -2
- package/lazy/index.js +4 -2
- package/package.json +4 -4
- package/registry/index.js +8 -6
- package/src/Field/ErrorGroup.tsx +84 -0
- package/src/Field/FieldBase.tsx +33 -22
- package/src/Field/FieldBaseContainer.tsx +3 -2
- package/src/Field/types.tsx +2 -0
- package/src/FieldArray/index.test.tsx +13 -14
- package/src/FieldArray/index.tsx +1 -0
- package/src/FormBuilder/FormBuilder.stories.js +2 -0
- package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +63 -0
- package/src/FormBuilder/__stories__/ErrorGrouping.tsx +43 -0
- package/src/FormBuilder/index.test.tsx +9 -1
- package/src/FormBuilder/index.tsx +92 -6
- package/src/FormBuilder/interaction.test.tsx +32 -0
- package/src/FormBuilder/scenarios.test.tsx +111 -4
- package/src/MultiplicityField/index.test.tsx +25 -26
- package/src/MultiplicityField/index.tsx +1 -0
- package/src/Questions/__snapshots__/index.spec.tsx.snap +2 -1
- package/src/Questions/index.spec.tsx +8 -0
- package/src/Questions/index.test.tsx +10 -11
- package/src/inputs/AutoCompleteInput/index.test.tsx +13 -14
- package/src/inputs/Checkboxes/index.test.tsx +16 -17
- package/src/inputs/DateInput/index.test.tsx +10 -11
- package/src/inputs/DateInput/index.tsx +3 -3
- package/src/inputs/FileInput/index.test.tsx +10 -11
- package/src/inputs/ImageInput/index.test.tsx +19 -20
- package/src/inputs/Input/Input.stories.js +1 -0
- package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +26 -0
- package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -0
- package/src/inputs/Input/index.test.tsx +41 -38
- package/src/inputs/Input/index.tsx +1 -0
- package/src/inputs/Label/index.test.tsx +10 -11
- package/src/inputs/OtpInput/index.test.tsx +10 -11
- package/src/inputs/Radio/index.test.tsx +16 -17
- package/src/inputs/Select/index.test.tsx +10 -11
- package/src/lazy.js +69 -0
- package/src/registry.js +159 -0
- package/src/validators/index.ts +41 -14
- package/src/validators/utils/int.ts +1 -1
- package/src/validators/utils/number.ts +1 -1
- package/validators/index.js +19 -13
- package/validators/index.js.map +2 -2
- package/validators/utils/int/index.js +1 -1
- package/validators/utils/int.js.map +2 -2
- package/validators/utils/number/index.js +1 -1
- package/validators/utils/number.js.map +2 -2
|
@@ -469,7 +469,11 @@ const expectErrorMessages = async (formBuilder, scenarioExpect, expect) => {
|
|
|
469
469
|
);
|
|
470
470
|
}
|
|
471
471
|
}
|
|
472
|
-
|
|
472
|
+
if (expectObj.textAssertion === 'toContainText') {
|
|
473
|
+
await expect(labelLocator).toContainText(expectText);
|
|
474
|
+
} else {
|
|
475
|
+
await expect(labelLocator).toHaveText(expectText);
|
|
476
|
+
}
|
|
473
477
|
}
|
|
474
478
|
}
|
|
475
479
|
};
|
|
@@ -1289,6 +1293,54 @@ const INPUTS_INPUT_FIELDS = [
|
|
|
1289
1293
|
},
|
|
1290
1294
|
];
|
|
1291
1295
|
|
|
1296
|
+
const ERROR_GROUPING_FIELDS = [
|
|
1297
|
+
{
|
|
1298
|
+
key: 'address',
|
|
1299
|
+
type: 'string',
|
|
1300
|
+
required: true,
|
|
1301
|
+
layout: { xl: 6, lg: 6, md: 6, xs: 6 },
|
|
1302
|
+
label: {
|
|
1303
|
+
primary: 'Οδός',
|
|
1304
|
+
},
|
|
1305
|
+
},
|
|
1306
|
+
{
|
|
1307
|
+
key: 'address_number',
|
|
1308
|
+
type: 'int',
|
|
1309
|
+
required: true,
|
|
1310
|
+
layout: { xl: 2, lg: 2, md: 2, xs: 6 },
|
|
1311
|
+
label: {
|
|
1312
|
+
primary: 'Αριθμός',
|
|
1313
|
+
},
|
|
1314
|
+
},
|
|
1315
|
+
{
|
|
1316
|
+
key: 'postal_code',
|
|
1317
|
+
type: 'postal_code',
|
|
1318
|
+
required: true,
|
|
1319
|
+
layout: { xl: 4, lg: 4, md: 4, xs: 6 },
|
|
1320
|
+
label: {
|
|
1321
|
+
primary: 'Ταχ. Κώδικας',
|
|
1322
|
+
},
|
|
1323
|
+
},
|
|
1324
|
+
{
|
|
1325
|
+
key: 'town',
|
|
1326
|
+
type: 'string',
|
|
1327
|
+
required: true,
|
|
1328
|
+
layout: { xl: 6, lg: 6, md: 6, xs: 6 },
|
|
1329
|
+
label: {
|
|
1330
|
+
primary: 'Πόλη',
|
|
1331
|
+
},
|
|
1332
|
+
},
|
|
1333
|
+
{
|
|
1334
|
+
key: 'country',
|
|
1335
|
+
type: 'string',
|
|
1336
|
+
required: true,
|
|
1337
|
+
layout: { xl: 6, lg: 6, md: 6, xs: 6 },
|
|
1338
|
+
label: {
|
|
1339
|
+
primary: 'Χώρα',
|
|
1340
|
+
},
|
|
1341
|
+
},
|
|
1342
|
+
];
|
|
1343
|
+
|
|
1292
1344
|
const inputsInputScenarios = [
|
|
1293
1345
|
{
|
|
1294
1346
|
title: 'success fill for inputs Input',
|
|
@@ -1410,7 +1462,7 @@ const inputsInputScenarios = [
|
|
|
1410
1462
|
{
|
|
1411
1463
|
title: 'empty fill for inputs Input',
|
|
1412
1464
|
describe: 'inputs Input scenario',
|
|
1413
|
-
fields: INPUTS_INPUT_FIELDS,
|
|
1465
|
+
fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
|
|
1414
1466
|
fill: [],
|
|
1415
1467
|
expect: [
|
|
1416
1468
|
{
|
|
@@ -1468,12 +1520,42 @@ const inputsInputScenarios = [
|
|
|
1468
1520
|
fieldKey: 'uuid4',
|
|
1469
1521
|
text: el.form.error.required,
|
|
1470
1522
|
},
|
|
1523
|
+
{
|
|
1524
|
+
type: 'error',
|
|
1525
|
+
fieldKey: 'address',
|
|
1526
|
+
text: el.form.error.required,
|
|
1527
|
+
textAssertion: 'toContainText',
|
|
1528
|
+
},
|
|
1529
|
+
{
|
|
1530
|
+
type: 'error',
|
|
1531
|
+
fieldKey: 'address_number',
|
|
1532
|
+
text: el.form.error.required,
|
|
1533
|
+
textAssertion: 'toContainText',
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
type: 'error',
|
|
1537
|
+
fieldKey: 'postal_code',
|
|
1538
|
+
text: el.form.error.required,
|
|
1539
|
+
textAssertion: 'toContainText',
|
|
1540
|
+
},
|
|
1541
|
+
{
|
|
1542
|
+
type: 'error',
|
|
1543
|
+
fieldKey: 'town',
|
|
1544
|
+
text: el.form.error.required,
|
|
1545
|
+
textAssertion: 'toContainText',
|
|
1546
|
+
},
|
|
1547
|
+
{
|
|
1548
|
+
type: 'error',
|
|
1549
|
+
fieldKey: 'country',
|
|
1550
|
+
text: el.form.error.required,
|
|
1551
|
+
textAssertion: 'toContainText',
|
|
1552
|
+
},
|
|
1471
1553
|
],
|
|
1472
1554
|
},
|
|
1473
1555
|
{
|
|
1474
1556
|
title: 'incorrect types for inputs Input',
|
|
1475
1557
|
describe: 'inputs Input scenario',
|
|
1476
|
-
fields: INPUTS_INPUT_FIELDS,
|
|
1558
|
+
fields: [...INPUTS_INPUT_FIELDS, ...ERROR_GROUPING_FIELDS],
|
|
1477
1559
|
fill: [
|
|
1478
1560
|
{
|
|
1479
1561
|
fieldKey: 'age',
|
|
@@ -1519,6 +1601,14 @@ const inputsInputScenarios = [
|
|
|
1519
1601
|
fieldKey: 'uuid4',
|
|
1520
1602
|
value: 'aaaaaa',
|
|
1521
1603
|
},
|
|
1604
|
+
{
|
|
1605
|
+
fieldKey: 'address_number',
|
|
1606
|
+
value: 'aa',
|
|
1607
|
+
},
|
|
1608
|
+
{
|
|
1609
|
+
fieldKey: 'postal_code',
|
|
1610
|
+
value: 'aaaaa',
|
|
1611
|
+
},
|
|
1522
1612
|
],
|
|
1523
1613
|
expect: [
|
|
1524
1614
|
{
|
|
@@ -1576,6 +1666,18 @@ const inputsInputScenarios = [
|
|
|
1576
1666
|
fieldKey: 'uuid4',
|
|
1577
1667
|
text: el.form.error.uuid4,
|
|
1578
1668
|
},
|
|
1669
|
+
{
|
|
1670
|
+
type: 'error',
|
|
1671
|
+
fieldKey: 'address_number',
|
|
1672
|
+
text: el.form.error.number,
|
|
1673
|
+
textAssertion: 'toContainText',
|
|
1674
|
+
},
|
|
1675
|
+
{
|
|
1676
|
+
type: 'error',
|
|
1677
|
+
fieldKey: 'postal_code',
|
|
1678
|
+
text: el.form.error.postalCode,
|
|
1679
|
+
textAssertion: 'toContainText',
|
|
1680
|
+
},
|
|
1579
1681
|
],
|
|
1580
1682
|
},
|
|
1581
1683
|
];
|
|
@@ -1847,7 +1949,12 @@ for (const scenario of scenarios) {
|
|
|
1847
1949
|
test(scenario.title, async ({ mount, page }) => {
|
|
1848
1950
|
const formBuilder = await mount(
|
|
1849
1951
|
// @ts-ignore
|
|
1850
|
-
<FormBuilder
|
|
1952
|
+
<FormBuilder
|
|
1953
|
+
auto={true}
|
|
1954
|
+
grid={true}
|
|
1955
|
+
fields={scenario.fields}
|
|
1956
|
+
onSubmit={() => {}}
|
|
1957
|
+
/>
|
|
1851
1958
|
);
|
|
1852
1959
|
await fillFields(page, formBuilder, scenario);
|
|
1853
1960
|
await submitForm(formBuilder);
|
|
@@ -1,41 +1,40 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
+
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
3
4
|
import { Default } from '@digigov/form/MultiplicityField/__stories__/Default';
|
|
4
5
|
import { PreviewDisplay } from '@digigov/form/MultiplicityField/__stories__/PreviewDisplay';
|
|
5
6
|
import { WithExactLength } from '@digigov/form/MultiplicityField/__stories__/WithExactLength';
|
|
6
7
|
import { WithMaxLength } from '@digigov/form/MultiplicityField/__stories__/WithMaxLength';
|
|
7
8
|
import { WithMinAndMaxLength } from '@digigov/form/MultiplicityField/__stories__/WithMinAndMaxLength';
|
|
8
9
|
import { WithMinLength } from '@digigov/form/MultiplicityField/__stories__/WithMinLength';
|
|
9
|
-
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
10
10
|
|
|
11
11
|
test('renders the All MultiplicityField variants', async ({ mount, page }) => {
|
|
12
12
|
await mount(
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
</
|
|
33
|
-
|
|
13
|
+
|
|
14
|
+
<div>
|
|
15
|
+
<TestVariant title="Default">
|
|
16
|
+
<Default />
|
|
17
|
+
</TestVariant>
|
|
18
|
+
<TestVariant title="PreviewDisplay">
|
|
19
|
+
<PreviewDisplay />
|
|
20
|
+
</TestVariant>
|
|
21
|
+
<TestVariant title="WithExactLength">
|
|
22
|
+
<WithExactLength />
|
|
23
|
+
</TestVariant>
|
|
24
|
+
<TestVariant title="WithMaxLength">
|
|
25
|
+
<WithMaxLength />
|
|
26
|
+
</TestVariant>
|
|
27
|
+
<TestVariant title="WithMinAndMaxLength">
|
|
28
|
+
<WithMinAndMaxLength />
|
|
29
|
+
</TestVariant>
|
|
30
|
+
<TestVariant title="WithMinLength">
|
|
31
|
+
<WithMinLength />
|
|
32
|
+
</TestVariant>
|
|
33
|
+
</div>
|
|
34
|
+
)
|
|
34
35
|
await page.evaluate(() => document.fonts.ready);
|
|
35
36
|
|
|
36
|
-
const screenshot = await page.screenshot({
|
|
37
|
-
fullPage: true,
|
|
38
|
-
animations: 'disabled',
|
|
39
|
-
});
|
|
37
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
40
38
|
expect(screenshot).toMatchSnapshot();
|
|
41
39
|
});
|
|
40
|
+
|
|
@@ -45,7 +45,7 @@ exports[`renders the Questions 1`] = `
|
|
|
45
45
|
class="ds-form"
|
|
46
46
|
>
|
|
47
47
|
<div
|
|
48
|
-
class="ds-field xs:ds-grid__col-span-12"
|
|
48
|
+
class="ds-field xs:ds-grid__col-span-12 sm:ds-grid__col-span-12 md:ds-grid__col-span-12 lg:ds-grid__col-span-12 xl:ds-grid__col-span-12"
|
|
49
49
|
>
|
|
50
50
|
<label
|
|
51
51
|
class="ds-label"
|
|
@@ -64,6 +64,7 @@ exports[`renders the Questions 1`] = `
|
|
|
64
64
|
aria-required="true"
|
|
65
65
|
class="ds-input"
|
|
66
66
|
data-type="string"
|
|
67
|
+
id="name"
|
|
67
68
|
name="name"
|
|
68
69
|
type="text"
|
|
69
70
|
/>
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
+
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
3
4
|
import { Default } from '@digigov/form/Questions/__stories__/Default';
|
|
4
|
-
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
5
5
|
|
|
6
6
|
test('renders the All Questions variants', async ({ mount, page }) => {
|
|
7
7
|
await mount(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</
|
|
13
|
-
|
|
8
|
+
|
|
9
|
+
<div>
|
|
10
|
+
<TestVariant title="Default">
|
|
11
|
+
<Default />
|
|
12
|
+
</TestVariant>
|
|
13
|
+
</div>
|
|
14
|
+
)
|
|
14
15
|
await page.evaluate(() => document.fonts.ready);
|
|
15
16
|
|
|
16
|
-
const screenshot = await page.screenshot({
|
|
17
|
-
fullPage: true,
|
|
18
|
-
animations: 'disabled',
|
|
19
|
-
});
|
|
17
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
20
18
|
expect(screenshot).toMatchSnapshot();
|
|
21
19
|
});
|
|
20
|
+
|
|
@@ -1,25 +1,24 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
+
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
3
4
|
import { Default } from '@digigov/form/inputs/AutoCompleteInput/__stories__/Default';
|
|
4
5
|
import { Multiple } from '@digigov/form/inputs/AutoCompleteInput/__stories__/Multiple';
|
|
5
|
-
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
6
6
|
|
|
7
7
|
test('renders the All AutoCompleteInput variants', async ({ mount, page }) => {
|
|
8
8
|
await mount(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
</
|
|
17
|
-
|
|
9
|
+
|
|
10
|
+
<div>
|
|
11
|
+
<TestVariant title="Default">
|
|
12
|
+
<Default />
|
|
13
|
+
</TestVariant>
|
|
14
|
+
<TestVariant title="Multiple">
|
|
15
|
+
<Multiple />
|
|
16
|
+
</TestVariant>
|
|
17
|
+
</div>
|
|
18
|
+
)
|
|
18
19
|
await page.evaluate(() => document.fonts.ready);
|
|
19
20
|
|
|
20
|
-
const screenshot = await page.screenshot({
|
|
21
|
-
fullPage: true,
|
|
22
|
-
animations: 'disabled',
|
|
23
|
-
});
|
|
21
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
24
22
|
expect(screenshot).toMatchSnapshot();
|
|
25
23
|
});
|
|
24
|
+
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
+
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
3
4
|
import { Conditional } from '@digigov/form/inputs/Checkboxes/__stories__/Conditional';
|
|
4
5
|
import { Default } from '@digigov/form/inputs/Checkboxes/__stories__/Default';
|
|
5
6
|
import { WithDivider } from '@digigov/form/inputs/Checkboxes/__stories__/WithDivider';
|
|
6
|
-
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
7
7
|
|
|
8
8
|
test('renders the All Checkboxes variants', async ({ mount, page }) => {
|
|
9
9
|
await mount(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
</
|
|
21
|
-
|
|
10
|
+
|
|
11
|
+
<div>
|
|
12
|
+
<TestVariant title="Conditional">
|
|
13
|
+
<Conditional />
|
|
14
|
+
</TestVariant>
|
|
15
|
+
<TestVariant title="Default">
|
|
16
|
+
<Default />
|
|
17
|
+
</TestVariant>
|
|
18
|
+
<TestVariant title="WithDivider">
|
|
19
|
+
<WithDivider />
|
|
20
|
+
</TestVariant>
|
|
21
|
+
</div>
|
|
22
|
+
)
|
|
22
23
|
await page.evaluate(() => document.fonts.ready);
|
|
23
24
|
|
|
24
|
-
const screenshot = await page.screenshot({
|
|
25
|
-
fullPage: true,
|
|
26
|
-
animations: 'disabled',
|
|
27
|
-
});
|
|
25
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
28
26
|
expect(screenshot).toMatchSnapshot();
|
|
29
27
|
});
|
|
28
|
+
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
+
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
3
4
|
import { Default } from '@digigov/form/inputs/DateInput/__stories__/Default';
|
|
4
|
-
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
5
5
|
|
|
6
6
|
test('renders the All DateInput variants', async ({ mount, page }) => {
|
|
7
7
|
await mount(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</
|
|
13
|
-
|
|
8
|
+
|
|
9
|
+
<div>
|
|
10
|
+
<TestVariant title="Default">
|
|
11
|
+
<Default />
|
|
12
|
+
</TestVariant>
|
|
13
|
+
</div>
|
|
14
|
+
)
|
|
14
15
|
await page.evaluate(() => document.fonts.ready);
|
|
15
16
|
|
|
16
|
-
const screenshot = await page.screenshot({
|
|
17
|
-
fullPage: true,
|
|
18
|
-
animations: 'disabled',
|
|
19
|
-
});
|
|
17
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
20
18
|
expect(screenshot).toMatchSnapshot();
|
|
21
19
|
});
|
|
20
|
+
|
|
@@ -36,12 +36,12 @@ function useDate(value, onChange) {
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
function setYear(evt) {
|
|
39
|
-
const val = evt.target.value;
|
|
39
|
+
const val = evt.target.value.trim();
|
|
40
40
|
set(val, month, day);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
function setMonth(evt, cast) {
|
|
44
|
-
let val = evt.target.value;
|
|
44
|
+
let val = evt.target.value.trim();
|
|
45
45
|
if (cast && val && val.length === 1) {
|
|
46
46
|
val = '0' + val;
|
|
47
47
|
}
|
|
@@ -49,7 +49,7 @@ function useDate(value, onChange) {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
function setDay(evt, cast) {
|
|
52
|
-
let val = evt.target.value;
|
|
52
|
+
let val = evt.target.value.trim();
|
|
53
53
|
if (cast && val && val.length === 1) {
|
|
54
54
|
val = '0' + val;
|
|
55
55
|
}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
+
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
3
4
|
import { Default } from '@digigov/form/inputs/FileInput/__stories__/Default';
|
|
4
|
-
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
5
5
|
|
|
6
6
|
test('renders the All FileInput variants', async ({ mount, page }) => {
|
|
7
7
|
await mount(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</
|
|
13
|
-
|
|
8
|
+
|
|
9
|
+
<div>
|
|
10
|
+
<TestVariant title="Default">
|
|
11
|
+
<Default />
|
|
12
|
+
</TestVariant>
|
|
13
|
+
</div>
|
|
14
|
+
)
|
|
14
15
|
await page.evaluate(() => document.fonts.ready);
|
|
15
16
|
|
|
16
|
-
const screenshot = await page.screenshot({
|
|
17
|
-
fullPage: true,
|
|
18
|
-
animations: 'disabled',
|
|
19
|
-
});
|
|
17
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
20
18
|
expect(screenshot).toMatchSnapshot();
|
|
21
19
|
});
|
|
20
|
+
|
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { test, expect } from '@playwright/experimental-ct-react';
|
|
3
|
+
import TestVariant from '@digigov/ui/utils/TestVariant'
|
|
3
4
|
import { Default } from '@digigov/form/inputs/ImageInput/__stories__/Default';
|
|
4
5
|
import { MaxSize } from '@digigov/form/inputs/ImageInput/__stories__/MaxSize';
|
|
5
6
|
import { WithInvalidImageDimension } from '@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageDimension';
|
|
6
7
|
import { WithInvalidImageSize } from '@digigov/form/inputs/ImageInput/__stories__/WithInvalidImageSize';
|
|
7
|
-
import TestVariant from '@digigov/ui/utils/TestVariant';
|
|
8
8
|
|
|
9
9
|
test('renders the All ImageInput variants', async ({ mount, page }) => {
|
|
10
10
|
await mount(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
</
|
|
25
|
-
|
|
11
|
+
|
|
12
|
+
<div>
|
|
13
|
+
<TestVariant title="Default">
|
|
14
|
+
<Default />
|
|
15
|
+
</TestVariant>
|
|
16
|
+
<TestVariant title="MaxSize">
|
|
17
|
+
<MaxSize />
|
|
18
|
+
</TestVariant>
|
|
19
|
+
<TestVariant title="WithInvalidImageDimension">
|
|
20
|
+
<WithInvalidImageDimension />
|
|
21
|
+
</TestVariant>
|
|
22
|
+
<TestVariant title="WithInvalidImageSize">
|
|
23
|
+
<WithInvalidImageSize />
|
|
24
|
+
</TestVariant>
|
|
25
|
+
</div>
|
|
26
|
+
)
|
|
26
27
|
await page.evaluate(() => document.fonts.ready);
|
|
27
28
|
|
|
28
|
-
const screenshot = await page.screenshot({
|
|
29
|
-
fullPage: true,
|
|
30
|
-
animations: 'disabled',
|
|
31
|
-
});
|
|
29
|
+
const screenshot = await page.screenshot({ fullPage: true, animations: 'disabled' });
|
|
32
30
|
expect(screenshot).toMatchSnapshot();
|
|
33
31
|
});
|
|
32
|
+
|
|
@@ -5,6 +5,7 @@ export default {
|
|
|
5
5
|
displayName: 'Input',
|
|
6
6
|
};
|
|
7
7
|
export { String } from '@digigov/form/inputs/Input/__stories__/String';
|
|
8
|
+
export { StringWithTrimValidation } from '@digigov/form/inputs/Input/__stories__/StringWithTrimValidation';
|
|
8
9
|
export { Integer } from '@digigov/form/inputs/Input/__stories__/Integer';
|
|
9
10
|
export { Boolean } from '@digigov/form/inputs/Input/__stories__/Boolean';
|
|
10
11
|
export { PhoneNumber } from '@digigov/form/inputs/Input/__stories__/PhoneNumber';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import FormBuilder, { Field } from '@digigov/form';
|
|
3
|
+
import { Button } from '@digigov/ui/form/Button';
|
|
4
|
+
|
|
5
|
+
export const StringWithTrimValidation = () => (
|
|
6
|
+
<FormBuilder
|
|
7
|
+
onSubmit={(data) => {
|
|
8
|
+
console.log(data);
|
|
9
|
+
}}
|
|
10
|
+
>
|
|
11
|
+
<Field
|
|
12
|
+
key="business-title"
|
|
13
|
+
name="business-title"
|
|
14
|
+
type="string"
|
|
15
|
+
trim={true}
|
|
16
|
+
label={{
|
|
17
|
+
primary: 'Όνομα επιχείρησης',
|
|
18
|
+
secondary:
|
|
19
|
+
'Εισάγετε μια σειρά από χαρακτήρες και αριθμούς (το πειδίο δεν δέχεται κενά στην αρχή της πρότασης)',
|
|
20
|
+
}}
|
|
21
|
+
required
|
|
22
|
+
/>
|
|
23
|
+
<Button type="submit">Συνέχεια</Button>
|
|
24
|
+
</FormBuilder>
|
|
25
|
+
);
|
|
26
|
+
export default StringWithTrimValidation;
|