@inseefr/lunatic 3.7.7-rc.0 → 3.7.7
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/components/Suggester/Suggester.spec.d.ts +1 -0
- package/components/Suggester/Suggester.spec.js +58 -0
- package/components/Suggester/Suggester.spec.js.map +1 -0
- package/esm/components/Suggester/Suggester.spec.d.ts +1 -0
- package/esm/components/Suggester/Suggester.spec.js +56 -0
- package/esm/components/Suggester/Suggester.spec.js.map +1 -0
- package/package.json +8 -1
- package/src/components/Suggester/Suggester.spec.tsx +62 -0
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
4
|
+
const react_1 = require("@testing-library/react");
|
|
5
|
+
const vitest_1 = require("vitest");
|
|
6
|
+
const Suggester_1 = require("./Suggester"); // Ajuste le chemin selon ton projet
|
|
7
|
+
// Mock of useSuggestions
|
|
8
|
+
vitest_1.vi.mock('./useSuggestions', () => ({
|
|
9
|
+
useSuggestions: vitest_1.vi.fn(() => ({
|
|
10
|
+
state: 'success',
|
|
11
|
+
options: [],
|
|
12
|
+
search: '',
|
|
13
|
+
setSearch: vitest_1.vi.fn(),
|
|
14
|
+
onFocus: vitest_1.vi.fn(),
|
|
15
|
+
onBlur: vitest_1.vi.fn(),
|
|
16
|
+
})),
|
|
17
|
+
}));
|
|
18
|
+
// Mock of CustomSuggester
|
|
19
|
+
vitest_1.vi.mock('./CustomSuggester', () => ({
|
|
20
|
+
CustomSuggester: vitest_1.vi.fn(({ value }) => ((0, jsx_runtime_1.jsx)("div", { "data-testid": "custom-suggester", children: JSON.stringify(value) }))),
|
|
21
|
+
}));
|
|
22
|
+
(0, vitest_1.describe)('WrappedSuggester useEffect', () => {
|
|
23
|
+
(0, vitest_1.it)('should update selectedOptions when value prop changes', () => {
|
|
24
|
+
// Given initial props
|
|
25
|
+
const initialProps = {
|
|
26
|
+
storeName: 'store',
|
|
27
|
+
id: 'suggester-1',
|
|
28
|
+
className: '',
|
|
29
|
+
handleChanges: vitest_1.vi.fn(),
|
|
30
|
+
disabled: false,
|
|
31
|
+
value: 'initialValue',
|
|
32
|
+
label: 'Label',
|
|
33
|
+
declarations: [],
|
|
34
|
+
description: '',
|
|
35
|
+
errors: {},
|
|
36
|
+
readOnly: false,
|
|
37
|
+
response: { name: 'response' },
|
|
38
|
+
optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
|
|
39
|
+
executeExpression: vitest_1.vi.fn(),
|
|
40
|
+
iteration: 1,
|
|
41
|
+
arbitrary: { response: { name: 'ARBITRARY' } },
|
|
42
|
+
optionRenderer: vitest_1.vi.fn(),
|
|
43
|
+
labelRenderer: vitest_1.vi.fn(),
|
|
44
|
+
focused: false,
|
|
45
|
+
};
|
|
46
|
+
// Given the composant initialize
|
|
47
|
+
const { rerender } = (0, react_1.render)((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...initialProps }));
|
|
48
|
+
const suggesterValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
49
|
+
(0, vitest_1.expect)(suggesterValue).toContain('initialValue');
|
|
50
|
+
// When we change the value
|
|
51
|
+
const newProps = { ...initialProps, value: 'FORCED value' };
|
|
52
|
+
rerender((0, jsx_runtime_1.jsx)(Suggester_1.WrappedSuggester, { ...newProps }));
|
|
53
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
54
|
+
const updatedValue = react_1.screen.getByTestId('custom-suggester').textContent;
|
|
55
|
+
(0, vitest_1.expect)(updatedValue).toContain('FORCED value');
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=Suggester.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":";;;AAAA,kDAAwD;AACxD,mCAAkD;AAClD,2CAA+C,CAAC,oCAAoC;AAEpF,yBAAyB;AACzB,WAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,cAAc,EAAE,WAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,WAAE,CAAC,EAAE,EAAE;QAClB,OAAO,EAAE,WAAE,CAAC,EAAE,EAAE;QAChB,MAAM,EAAE,WAAE,CAAC,EAAE,EAAE;KACf,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,0BAA0B;AAC1B,WAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,eAAe,EAAE,WAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrC,+CAAiB,kBAAkB,YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAO,CACjE,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,IAAA,iBAAQ,EAAC,4BAA4B,EAAE,GAAG,EAAE;IAC3C,IAAA,WAAE,EAAC,uDAAuD,EAAE,GAAG,EAAE;QAChE,sBAAsB;QACtB,MAAM,YAAY,GAAG;YACpB,SAAS,EAAE,OAAO;YAClB,EAAE,EAAE,aAAa;YACjB,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,WAAE,CAAC,EAAE,EAAE;YACtB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;YAC9B,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YAChE,iBAAiB,EAAE,WAAE,CAAC,EAAE,EAAE;YAC1B,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YAC9C,cAAc,EAAE,WAAE,CAAC,EAAE,EAAE;YACvB,aAAa,EAAE,WAAE,CAAC,EAAE,EAAE;YACtB,OAAO,EAAE,KAAK;SACd,CAAC;QAEF,iCAAiC;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,cAAM,EAAC,uBAAC,4BAAgB,OAAK,YAAY,GAAI,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,cAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC;QAC1E,IAAA,eAAM,EAAC,cAAc,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAC5D,QAAQ,CAAC,uBAAC,4BAAgB,OAAK,QAAQ,GAAI,CAAC,CAAC;QAE7C,8EAA8E;QAC9E,MAAM,YAAY,GAAG,cAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC;QACxE,IAAA,eAAM,EAAC,YAAY,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
4
|
+
import { WrappedSuggester } from './Suggester'; // Ajuste le chemin selon ton projet
|
|
5
|
+
// Mock of useSuggestions
|
|
6
|
+
vi.mock('./useSuggestions', () => ({
|
|
7
|
+
useSuggestions: vi.fn(() => ({
|
|
8
|
+
state: 'success',
|
|
9
|
+
options: [],
|
|
10
|
+
search: '',
|
|
11
|
+
setSearch: vi.fn(),
|
|
12
|
+
onFocus: vi.fn(),
|
|
13
|
+
onBlur: vi.fn(),
|
|
14
|
+
})),
|
|
15
|
+
}));
|
|
16
|
+
// Mock of CustomSuggester
|
|
17
|
+
vi.mock('./CustomSuggester', () => ({
|
|
18
|
+
CustomSuggester: vi.fn(({ value }) => (_jsx("div", { "data-testid": "custom-suggester", children: JSON.stringify(value) }))),
|
|
19
|
+
}));
|
|
20
|
+
describe('WrappedSuggester useEffect', () => {
|
|
21
|
+
it('should update selectedOptions when value prop changes', () => {
|
|
22
|
+
// Given initial props
|
|
23
|
+
const initialProps = {
|
|
24
|
+
storeName: 'store',
|
|
25
|
+
id: 'suggester-1',
|
|
26
|
+
className: '',
|
|
27
|
+
handleChanges: vi.fn(),
|
|
28
|
+
disabled: false,
|
|
29
|
+
value: 'initialValue',
|
|
30
|
+
label: 'Label',
|
|
31
|
+
declarations: [],
|
|
32
|
+
description: '',
|
|
33
|
+
errors: {},
|
|
34
|
+
readOnly: false,
|
|
35
|
+
response: { name: 'response' },
|
|
36
|
+
optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
|
|
37
|
+
executeExpression: vi.fn(),
|
|
38
|
+
iteration: 1,
|
|
39
|
+
arbitrary: { response: { name: 'ARBITRARY' } },
|
|
40
|
+
optionRenderer: vi.fn(),
|
|
41
|
+
labelRenderer: vi.fn(),
|
|
42
|
+
focused: false,
|
|
43
|
+
};
|
|
44
|
+
// Given the composant initialize
|
|
45
|
+
const { rerender } = render(_jsx(WrappedSuggester, { ...initialProps }));
|
|
46
|
+
const suggesterValue = screen.getByTestId('custom-suggester').textContent;
|
|
47
|
+
expect(suggesterValue).toContain('initialValue');
|
|
48
|
+
// When we change the value
|
|
49
|
+
const newProps = { ...initialProps, value: 'FORCED value' };
|
|
50
|
+
rerender(_jsx(WrappedSuggester, { ...newProps }));
|
|
51
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
52
|
+
const updatedValue = screen.getByTestId('custom-suggester').textContent;
|
|
53
|
+
expect(updatedValue).toContain('FORCED value');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=Suggester.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Suggester.spec.js","sourceRoot":"","sources":["../../../src/components/Suggester/Suggester.spec.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC,CAAC,oCAAoC;AAEpF,yBAAyB;AACzB,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5B,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;QAClB,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;QAChB,MAAM,EAAE,EAAE,CAAC,EAAE,EAAE;KACf,CAAC,CAAC;CACH,CAAC,CAAC,CAAC;AAEJ,0BAA0B;AAC1B,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IACnC,eAAe,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CACrC,6BAAiB,kBAAkB,YAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAO,CACjE,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAChE,sBAAsB;QACtB,MAAM,YAAY,GAAG;YACpB,SAAS,EAAE,OAAO;YAClB,EAAE,EAAE,aAAa;YACjB,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;YACtB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;YAC9B,eAAe,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;YAChE,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;YAC1B,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE;YAC9C,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;YACvB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;YACtB,OAAO,EAAE,KAAK;SACd,CAAC;QAEF,iCAAiC;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,KAAC,gBAAgB,OAAK,YAAY,GAAI,CAAC,CAAC;QACpE,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC;QAC1E,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAEjD,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC;QAC5D,QAAQ,CAAC,KAAC,gBAAgB,OAAK,QAAQ,GAAI,CAAC,CAAC;QAE7C,8EAA8E;QAC9E,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC;QACxE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inseefr/lunatic",
|
|
3
|
-
"version": "3.7.7
|
|
3
|
+
"version": "3.7.7",
|
|
4
4
|
"description": "Library of questionnaire components",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"src/components/Subsequence/Subsequence.spec.tsx",
|
|
87
87
|
"src/components/Subsequence/Subsequence.tsx",
|
|
88
88
|
"src/components/Suggester/CustomSuggester.tsx",
|
|
89
|
+
"src/components/Suggester/Suggester.spec.tsx",
|
|
89
90
|
"src/components/Suggester/Suggester.tsx",
|
|
90
91
|
"src/components/Suggester/SuggesterNotification.tsx",
|
|
91
92
|
"src/components/Suggester/SuggesterType.ts",
|
|
@@ -591,6 +592,9 @@
|
|
|
591
592
|
"components/Suggester/Suggester.d.ts",
|
|
592
593
|
"components/Suggester/Suggester.js",
|
|
593
594
|
"components/Suggester/Suggester.js.map",
|
|
595
|
+
"components/Suggester/Suggester.spec.d.ts",
|
|
596
|
+
"components/Suggester/Suggester.spec.js",
|
|
597
|
+
"components/Suggester/Suggester.spec.js.map",
|
|
594
598
|
"components/Suggester/SuggesterNotification.d.ts",
|
|
595
599
|
"components/Suggester/SuggesterNotification.js",
|
|
596
600
|
"components/Suggester/SuggesterNotification.js.map",
|
|
@@ -1017,6 +1021,9 @@
|
|
|
1017
1021
|
"esm/components/Suggester/Suggester.d.ts",
|
|
1018
1022
|
"esm/components/Suggester/Suggester.js",
|
|
1019
1023
|
"esm/components/Suggester/Suggester.js.map",
|
|
1024
|
+
"esm/components/Suggester/Suggester.spec.d.ts",
|
|
1025
|
+
"esm/components/Suggester/Suggester.spec.js",
|
|
1026
|
+
"esm/components/Suggester/Suggester.spec.js.map",
|
|
1020
1027
|
"esm/components/Suggester/SuggesterNotification.d.ts",
|
|
1021
1028
|
"esm/components/Suggester/SuggesterNotification.js",
|
|
1022
1029
|
"esm/components/Suggester/SuggesterNotification.js.map",
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { render, screen } from '@testing-library/react';
|
|
2
|
+
import { describe, it, expect, vi } from 'vitest';
|
|
3
|
+
import { WrappedSuggester } from './Suggester'; // Ajuste le chemin selon ton projet
|
|
4
|
+
|
|
5
|
+
// Mock of useSuggestions
|
|
6
|
+
vi.mock('./useSuggestions', () => ({
|
|
7
|
+
useSuggestions: vi.fn(() => ({
|
|
8
|
+
state: 'success',
|
|
9
|
+
options: [],
|
|
10
|
+
search: '',
|
|
11
|
+
setSearch: vi.fn(),
|
|
12
|
+
onFocus: vi.fn(),
|
|
13
|
+
onBlur: vi.fn(),
|
|
14
|
+
})),
|
|
15
|
+
}));
|
|
16
|
+
|
|
17
|
+
// Mock of CustomSuggester
|
|
18
|
+
vi.mock('./CustomSuggester', () => ({
|
|
19
|
+
CustomSuggester: vi.fn(({ value }) => (
|
|
20
|
+
<div data-testid="custom-suggester">{JSON.stringify(value)}</div>
|
|
21
|
+
)),
|
|
22
|
+
}));
|
|
23
|
+
|
|
24
|
+
describe('WrappedSuggester useEffect', () => {
|
|
25
|
+
it('should update selectedOptions when value prop changes', () => {
|
|
26
|
+
// Given initial props
|
|
27
|
+
const initialProps = {
|
|
28
|
+
storeName: 'store',
|
|
29
|
+
id: 'suggester-1',
|
|
30
|
+
className: '',
|
|
31
|
+
handleChanges: vi.fn(),
|
|
32
|
+
disabled: false,
|
|
33
|
+
value: 'initialValue',
|
|
34
|
+
label: 'Label',
|
|
35
|
+
declarations: [],
|
|
36
|
+
description: '',
|
|
37
|
+
errors: {},
|
|
38
|
+
readOnly: false,
|
|
39
|
+
response: { name: 'response' },
|
|
40
|
+
optionResponses: [{ name: 'labelResponse', attribute: 'label' }],
|
|
41
|
+
executeExpression: vi.fn(),
|
|
42
|
+
iteration: 1,
|
|
43
|
+
arbitrary: { response: { name: 'ARBITRARY' } },
|
|
44
|
+
optionRenderer: vi.fn(),
|
|
45
|
+
labelRenderer: vi.fn(),
|
|
46
|
+
focused: false,
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
// Given the composant initialize
|
|
50
|
+
const { rerender } = render(<WrappedSuggester {...initialProps} />);
|
|
51
|
+
const suggesterValue = screen.getByTestId('custom-suggester').textContent;
|
|
52
|
+
expect(suggesterValue).toContain('initialValue');
|
|
53
|
+
|
|
54
|
+
// When we change the value
|
|
55
|
+
const newProps = { ...initialProps, value: 'FORCED value' };
|
|
56
|
+
rerender(<WrappedSuggester {...newProps} />);
|
|
57
|
+
|
|
58
|
+
// Then selectedOptions, i.e value props of customSuggester have to be updated
|
|
59
|
+
const updatedValue = screen.getByTestId('custom-suggester').textContent;
|
|
60
|
+
expect(updatedValue).toContain('FORCED value');
|
|
61
|
+
});
|
|
62
|
+
});
|