@plone/volto 18.14.0 → 18.14.1

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.
Files changed (72) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/package.json +3 -3
  3. package/src/components/manage/Actions/Actions.test.jsx +5 -1
  4. package/src/components/manage/Blocks/Block/BlocksForm.test.jsx +6 -2
  5. package/src/components/manage/Blocks/Block/Settings.test.jsx +5 -1
  6. package/src/components/manage/Blocks/HTML/Edit.test.jsx +6 -1
  7. package/src/components/manage/Blocks/Image/ImageSidebar.test.jsx +5 -1
  8. package/src/components/manage/Blocks/LeadImage/LeadImageSidebar.test.jsx +5 -0
  9. package/src/components/manage/Blocks/Maps/MapsSidebar.test.jsx +5 -1
  10. package/src/components/manage/Blocks/Search/components/DateRangeFacet.test.jsx +6 -1
  11. package/src/components/manage/Blocks/Search/components/SelectFacet.test.jsx +6 -1
  12. package/src/components/manage/Blocks/Video/VideoSidebar.test.jsx +5 -1
  13. package/src/components/manage/Contents/Contents.test.jsx +6 -1
  14. package/src/components/manage/Contents/ContentsPropertiesModal.test.jsx +5 -1
  15. package/src/components/manage/Contents/ContentsRenameModal.test.jsx +5 -1
  16. package/src/components/manage/Contents/ContentsTagsModal.test.jsx +5 -1
  17. package/src/components/manage/Contents/ContentsWorkflowModal.test.jsx +5 -1
  18. package/src/components/manage/Contents/__mocks__/index.tsx +18 -2
  19. package/src/components/manage/Contents/__mocks__/index.vitest.tsx +5 -0
  20. package/src/components/manage/Controlpanels/Aliases.test.jsx +6 -1
  21. package/src/components/manage/Controlpanels/ContentType.test.jsx +5 -1
  22. package/src/components/manage/Controlpanels/Rules/AddRule.test.jsx +6 -1
  23. package/src/components/manage/Controlpanels/Rules/EditRule.test.jsx +5 -1
  24. package/src/components/manage/Controlpanels/UndoControlpanel.test.jsx +5 -1
  25. package/src/components/manage/Diff/Diff.test.jsx +6 -1
  26. package/src/components/manage/Diff/DiffField.test.jsx +6 -1
  27. package/src/components/manage/Display/Display.test.jsx +11 -2
  28. package/src/components/manage/Edit/Edit.test.jsx +5 -1
  29. package/src/components/manage/Form/BlockDataForm.test.jsx +5 -1
  30. package/src/components/manage/Form/Form.test.jsx +5 -1
  31. package/src/components/manage/Form/InlineForm.test.jsx +5 -1
  32. package/src/components/manage/Form/ModalForm.test.jsx +5 -1
  33. package/src/components/manage/Form/__mocks__/index.tsx +27 -9
  34. package/src/components/manage/Form/__mocks__/index.vitest.tsx +73 -0
  35. package/src/components/manage/Preferences/ChangePassword.test.jsx +6 -1
  36. package/src/components/manage/Preferences/PersonalPreferences.test.jsx +11 -2
  37. package/src/components/manage/Widgets/ArrayWidget.test.jsx +5 -1
  38. package/src/components/manage/Widgets/CheckboxGroupWidget.test.jsx +6 -1
  39. package/src/components/manage/Widgets/DatetimeWidget.test.jsx +5 -1
  40. package/src/components/manage/Widgets/ObjectListWidget.test.jsx +10 -2
  41. package/src/components/manage/Widgets/ObjectWidget.test.jsx +5 -1
  42. package/src/components/manage/Widgets/RadioGroupWidget.test.jsx +6 -1
  43. package/src/components/manage/Widgets/RecurrenceWidget/RecurrenceWidget.test.jsx +6 -1
  44. package/src/components/manage/Widgets/SchemaWidget.test.jsx +6 -1
  45. package/src/components/manage/Widgets/SchemaWidgetFieldset.test.jsx +6 -1
  46. package/src/components/manage/Widgets/SelectAutoComplete.test.jsx +6 -1
  47. package/src/components/manage/Widgets/SelectWidget.test.jsx +6 -1
  48. package/src/components/manage/Widgets/TimeWidget.test.jsx +6 -1
  49. package/src/components/manage/Widgets/TokenWidget.test.jsx +6 -1
  50. package/src/components/manage/Widgets/VocabularyTermsWidget.test.jsx +10 -2
  51. package/src/components/manage/Widgets/__mocks__/index.tsx +51 -33
  52. package/src/components/manage/Widgets/__mocks__/index.vitest.tsx +41 -0
  53. package/src/components/manage/Workflow/Workflow.test.jsx +11 -2
  54. package/src/components/theme/Comments/CommentEditModal.test.jsx +5 -1
  55. package/src/components/theme/Comments/Comments.test.jsx +10 -2
  56. package/src/components/theme/ContactForm/ContactForm.test.jsx +5 -1
  57. package/src/components/theme/PasswordReset/RequestPasswordReset.test.jsx +5 -1
  58. package/src/components/theme/Register/Register.test.jsx +5 -1
  59. package/src/components/theme/View/EventDatesInfo.test.jsx +6 -1
  60. package/src/components/theme/View/EventView.test.jsx +6 -1
  61. package/src/helpers/Loadable/__mocks__/Loadable.jsx +22 -7
  62. package/src/helpers/Loadable/__mocks__/Loadable.vitest.jsx +39 -0
  63. package/tsconfig.declarations.json +1 -1
  64. package/tsconfig.json +2 -1
  65. package/types/components/manage/Contents/__mocks__/index.d.ts +2 -2
  66. package/types/components/manage/Contents/__mocks__/index.vitest.d.ts +2 -0
  67. package/types/components/manage/Form/__mocks__/index.d.ts +8 -8
  68. package/types/components/manage/Form/__mocks__/index.vitest.d.ts +8 -0
  69. package/types/components/manage/Widgets/__mocks__/index.d.ts +33 -33
  70. package/types/components/manage/Widgets/__mocks__/index.vitest.d.ts +33 -0
  71. package/types/helpers/Loadable/__mocks__/Loadable.d.ts +2 -2
  72. package/types/helpers/Loadable/__mocks__/Loadable.vitest.d.ts +3 -0
@@ -9,7 +9,12 @@ import ChangePassword from './ChangePassword';
9
9
 
10
10
  const mockStore = configureStore();
11
11
 
12
- vi.mock('@plone/volto/components/manage/Form');
12
+ vi.mock('@plone/volto/components/manage/Form', async () => {
13
+ return await import(
14
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
15
+ );
16
+ });
17
+
13
18
  vi.mock('../Toolbar/Toolbar', () => ({
14
19
  default: vi.fn(() => <div id="Portal" />),
15
20
  }));
@@ -12,8 +12,17 @@ vi.mock('../Toolbar/Toolbar', () => ({
12
12
  default: vi.fn(() => <div id="Portal" />),
13
13
  }));
14
14
 
15
- vi.mock('@plone/volto/components/manage/Form');
16
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
15
+ vi.mock('@plone/volto/components/manage/Form', async () => {
16
+ return await import(
17
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
18
+ );
19
+ });
20
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
21
+ return await import(
22
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
23
+ );
24
+ });
25
+
17
26
  beforeAll(async () => {
18
27
  const { __setLoadables } = await import(
19
28
  '@plone/volto/helpers/Loadable/Loadable'
@@ -8,7 +8,11 @@ import ArrayWidget from './ArrayWidget';
8
8
 
9
9
  const mockStore = configureStore();
10
10
 
11
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
11
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
12
+ return await import(
13
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
14
+ );
15
+ });
12
16
 
13
17
  // Mock react-sortable-hoc to prevent the container error
14
18
  vi.mock('react-sortable-hoc', () => ({
@@ -7,7 +7,12 @@ import CheckboxGroupWidget from './CheckboxGroupWidget';
7
7
 
8
8
  const mockStore = configureStore();
9
9
 
10
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
10
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
11
+ return await import(
12
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
13
+ );
14
+ });
15
+
11
16
  beforeAll(async () => {
12
17
  const { __setLoadables } = await import(
13
18
  '@plone/volto/helpers/Loadable/Loadable'
@@ -6,7 +6,11 @@ import { waitFor, render, screen } from '@testing-library/react';
6
6
 
7
7
  const mockStore = configureStore();
8
8
 
9
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
9
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
10
+ return await import(
11
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
12
+ );
13
+ });
10
14
 
11
15
  beforeAll(async () => {
12
16
  const { __setLoadables } = await import(
@@ -4,8 +4,16 @@ import { render } from '@testing-library/react';
4
4
  import configureStore from 'redux-mock-store';
5
5
  import ObjectListWidget from './ObjectListWidget';
6
6
 
7
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
8
- vi.mock('@plone/volto/components/manage/Form');
7
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
8
+ return await import(
9
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
10
+ );
11
+ });
12
+ vi.mock('@plone/volto/components/manage/Form', async () => {
13
+ return await import(
14
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
15
+ );
16
+ });
9
17
 
10
18
  beforeAll(async () => {
11
19
  const { __setLoadables } = await import(
@@ -5,7 +5,11 @@ import { Provider } from 'react-intl-redux';
5
5
  import { render, fireEvent } from '@testing-library/react';
6
6
  import ObjectWidget from './ObjectWidget';
7
7
 
8
- vi.mock('@plone/volto/components/manage/Form');
8
+ vi.mock('@plone/volto/components/manage/Form', async () => {
9
+ return await import(
10
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
11
+ );
12
+ });
9
13
 
10
14
  const mockStore = configureStore();
11
15
 
@@ -7,7 +7,12 @@ import RadioGroupWidget from './RadioGroupWidget';
7
7
 
8
8
  const mockStore = configureStore();
9
9
 
10
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
10
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
11
+ return await import(
12
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
13
+ );
14
+ });
15
+
11
16
  beforeAll(async () => {
12
17
  const { __setLoadables } = await import(
13
18
  '@plone/volto/helpers/Loadable/Loadable'
@@ -5,7 +5,12 @@ import { Provider } from 'react-intl-redux';
5
5
  import { waitFor } from '@testing-library/react';
6
6
  import RecurrenceWidget from './RecurrenceWidget';
7
7
 
8
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
8
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
9
+ return await import(
10
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
11
+ );
12
+ });
13
+
9
14
  beforeAll(async () => {
10
15
  const { __setLoadables } = await import(
11
16
  '@plone/volto/helpers/Loadable/Loadable'
@@ -5,7 +5,12 @@ import { Provider } from 'react-intl-redux';
5
5
 
6
6
  import SchemaWidget from './SchemaWidget';
7
7
 
8
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
8
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
9
+ return await import(
10
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
11
+ );
12
+ });
13
+
9
14
  beforeAll(async () => {
10
15
  const { __setLoadables } = await import(
11
16
  '@plone/volto/helpers/Loadable/Loadable'
@@ -3,7 +3,12 @@ import { DragDropContext, Droppable } from 'react-beautiful-dnd';
3
3
  import { render } from '@testing-library/react';
4
4
  import SchemaWidgetFieldsetComponent from './SchemaWidgetFieldset';
5
5
 
6
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
6
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
7
+ return await import(
8
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
9
+ );
10
+ });
11
+
7
12
  beforeAll(async () => {
8
13
  const { __setLoadables } = await import(
9
14
  '@plone/volto/helpers/Loadable/Loadable'
@@ -6,7 +6,12 @@ import SelectAutoComplete from './SelectAutoComplete';
6
6
 
7
7
  const mockStore = configureStore();
8
8
 
9
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
9
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
10
+ return await import(
11
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
12
+ );
13
+ });
14
+
10
15
  beforeAll(async () => {
11
16
  const { __setLoadables } = await import(
12
17
  '@plone/volto/helpers/Loadable/Loadable'
@@ -6,7 +6,12 @@ import SelectWidget from './SelectWidget';
6
6
 
7
7
  const mockStore = configureStore();
8
8
 
9
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
9
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
10
+ return await import(
11
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
12
+ );
13
+ });
14
+
10
15
  beforeAll(async () => {
11
16
  const { __setLoadables } = await import(
12
17
  '@plone/volto/helpers/Loadable/Loadable'
@@ -6,7 +6,12 @@ import { waitFor, render, screen } from '@testing-library/react';
6
6
 
7
7
  const mockStore = configureStore();
8
8
 
9
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
9
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
10
+ return await import(
11
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
12
+ );
13
+ });
14
+
10
15
  beforeAll(async () => {
11
16
  const { __setLoadables } = await import(
12
17
  '@plone/volto/helpers/Loadable/Loadable'
@@ -7,7 +7,12 @@ import TokenWidget from './TokenWidget';
7
7
 
8
8
  const mockStore = configureStore();
9
9
 
10
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
10
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
11
+ return await import(
12
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
13
+ );
14
+ });
15
+
11
16
  beforeAll(async () => {
12
17
  const { __setLoadables } = await import(
13
18
  '@plone/volto/helpers/Loadable/Loadable'
@@ -4,8 +4,16 @@ import configureStore from 'redux-mock-store';
4
4
  import { Provider } from 'react-intl-redux';
5
5
  import VocabularyTermsWidget from './VocabularyTermsWidget';
6
6
 
7
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
8
- vi.mock('@plone/volto/components/manage/Form');
7
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
8
+ return await import(
9
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
10
+ );
11
+ });
12
+ vi.mock('@plone/volto/components/manage/Form', async () => {
13
+ return await import(
14
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
15
+ );
16
+ });
9
17
 
10
18
  beforeAll(async () => {
11
19
  const { __setLoadables } = await import(
@@ -1,41 +1,59 @@
1
- export const AlignWidget = vi.fn(() => <div id="AlignWidget" />);
2
- export const ButtonsWidget = vi.fn(() => <div id="ButtonsWidget" />);
3
- export const ArrayWidget = vi.fn(() => <div id="ArrayWidget" />);
4
- export const CheckboxWidget = vi.fn(() => <div id="CheckboxWidget" />);
5
- export const FileWidget = vi.fn(() => <div id="FileWidget" />);
6
- export const IdWidget = vi.fn(() => <div id="IdWidget" />);
7
- export const PasswordWidget = vi.fn(() => <div id="PasswordWidget" />);
8
- export const QueryWidget = vi.fn(() => <div id="QueryWidget" />);
9
- export const QuerySortOnWidget = vi.fn(() => <div id="QuerySortOnWidget" />);
10
- export const QuerystringWidget = vi.fn(() => <div id="QuerystringWidget" />);
11
- export const SchemaWidget = vi.fn(() => <div id="SchemaWidget" />);
12
- export const SelectWidget = vi.fn(() => <div id="SelectWidget" />);
13
- export const TextareaWidget = vi.fn(() => <div id="TextareaWidget" />);
14
- export const TextWidget = vi.fn(() => <div id="TextWidget" />);
15
- export const TokenWidget = vi.fn(() => <div id="TokenWidget" />);
16
- export const WysiwygWidget = vi.fn(() => <div id="WysiwygWidget" />);
17
- export const UrlWidget = vi.fn(() => <div id="UrlWidget" />);
18
- export const InternalUrlWidget = vi.fn(() => <div id="InternalUrlWidget" />);
19
- export const EmailWidget = vi.fn(() => <div id="EmailWidget" />);
20
- export const NumberWidget = vi.fn(() => <div id="NumberWidget" />);
21
- export const ImageSizeWidget = vi.fn(() => <div id="ImageSizeWidget" />);
22
- export const RegistryImageWidget = vi.fn(() => (
1
+ /* TODO: When the Volto Team removes Jest configuration support from Volto core, update this file with the Vitest version of the mock.
2
+ Then, in the tests, we need to replace:
3
+
4
+ vi.mock('@plone/volto/components/manage/Widgets', async () => {
5
+ return await import(
6
+ '@plone/volto/components/manage/Widgets/__mocks__/index.vitest.tsx'
7
+ );
8
+ });
9
+
10
+ with the following:
11
+
12
+ vi.mock('@plone/volto/components/manage/Widgets');
13
+
14
+ Finally, remove this comment.
15
+ */
16
+
17
+ export const AlignWidget = jest.fn(() => <div id="AlignWidget" />);
18
+ export const ButtonsWidget = jest.fn(() => <div id="ButtonsWidget" />);
19
+ export const ArrayWidget = jest.fn(() => <div id="ArrayWidget" />);
20
+ export const CheckboxWidget = jest.fn(() => <div id="CheckboxWidget" />);
21
+ export const FileWidget = jest.fn(() => <div id="FileWidget" />);
22
+ export const IdWidget = jest.fn(() => <div id="IdWidget" />);
23
+ export const PasswordWidget = jest.fn(() => <div id="PasswordWidget" />);
24
+ export const QueryWidget = jest.fn(() => <div id="QueryWidget" />);
25
+ export const QuerySortOnWidget = jest.fn(() => <div id="QuerySortOnWidget" />);
26
+ export const QuerystringWidget = jest.fn(() => <div id="QuerystringWidget" />);
27
+ export const SchemaWidget = jest.fn(() => <div id="SchemaWidget" />);
28
+ export const SelectWidget = jest.fn(() => <div id="SelectWidget" />);
29
+ export const TextareaWidget = jest.fn(() => <div id="TextareaWidget" />);
30
+ export const TextWidget = jest.fn(() => <div id="TextWidget" />);
31
+ export const TokenWidget = jest.fn(() => <div id="TokenWidget" />);
32
+ export const WysiwygWidget = jest.fn(() => <div id="WysiwygWidget" />);
33
+ export const UrlWidget = jest.fn(() => <div id="UrlWidget" />);
34
+ export const InternalUrlWidget = jest.fn(() => <div id="InternalUrlWidget" />);
35
+ export const EmailWidget = jest.fn(() => <div id="EmailWidget" />);
36
+ export const NumberWidget = jest.fn(() => <div id="NumberWidget" />);
37
+ export const ImageSizeWidget = jest.fn(() => <div id="ImageSizeWidget" />);
38
+ export const RegistryImageWidget = jest.fn(() => (
23
39
  <div id="RegistryImageWidget" />
24
40
  ));
25
- export const ReferenceWidget = vi.fn(() => <div id="ReferenceWidget" />);
26
- export const ObjectBrowserWidget = vi.fn(() => (
41
+ export const ReferenceWidget = jest.fn(() => <div id="ReferenceWidget" />);
42
+ export const ObjectBrowserWidget = jest.fn(() => (
27
43
  <div id="ObjectBrowserWidget" />
28
44
  ));
29
- export const ObjectWidget = vi.fn(() => <div id="ObjectWidget" />);
30
- export const ObjectListWidget = vi.fn(() => <div id="ObjectListWidget" />);
31
- export const VocabularyTermsWidget = vi.fn(() => (
45
+ export const ObjectWidget = jest.fn(() => <div id="ObjectWidget" />);
46
+ export const ObjectListWidget = jest.fn(() => <div id="ObjectListWidget" />);
47
+ export const VocabularyTermsWidget = jest.fn(() => (
32
48
  <div id="VocabularyTermsWidget" />
33
49
  ));
34
- export const SelectMetadataWidget = vi.fn(() => (
50
+ export const SelectMetadataWidget = jest.fn(() => (
35
51
  <div id="SelectMetadataWidget" />
36
52
  ));
37
- export const SelectAutoComplete = vi.fn(() => <div id="SelectAutoComplete" />);
38
- export const ColorPickerWidget = vi.fn(() => <div id="ColorPickerWidget" />);
39
- export const DatetimeWidget = vi.fn(() => <div id="DatetimeWidget" />);
40
- export const RecurrenceWidget = vi.fn(() => <div id="RecurrenceWidget" />);
41
- export const FormFieldWrapper = vi.fn(() => <div id="FormFieldWrapper" />);
53
+ export const SelectAutoComplete = jest.fn(() => (
54
+ <div id="SelectAutoComplete" />
55
+ ));
56
+ export const ColorPickerWidget = jest.fn(() => <div id="ColorPickerWidget" />);
57
+ export const DatetimeWidget = jest.fn(() => <div id="DatetimeWidget" />);
58
+ export const RecurrenceWidget = jest.fn(() => <div id="RecurrenceWidget" />);
59
+ export const FormFieldWrapper = jest.fn(() => <div id="FormFieldWrapper" />);
@@ -0,0 +1,41 @@
1
+ export const AlignWidget = vi.fn(() => <div id="AlignWidget" />);
2
+ export const ButtonsWidget = vi.fn(() => <div id="ButtonsWidget" />);
3
+ export const ArrayWidget = vi.fn(() => <div id="ArrayWidget" />);
4
+ export const CheckboxWidget = vi.fn(() => <div id="CheckboxWidget" />);
5
+ export const FileWidget = vi.fn(() => <div id="FileWidget" />);
6
+ export const IdWidget = vi.fn(() => <div id="IdWidget" />);
7
+ export const PasswordWidget = vi.fn(() => <div id="PasswordWidget" />);
8
+ export const QueryWidget = vi.fn(() => <div id="QueryWidget" />);
9
+ export const QuerySortOnWidget = vi.fn(() => <div id="QuerySortOnWidget" />);
10
+ export const QuerystringWidget = vi.fn(() => <div id="QuerystringWidget" />);
11
+ export const SchemaWidget = vi.fn(() => <div id="SchemaWidget" />);
12
+ export const SelectWidget = vi.fn(() => <div id="SelectWidget" />);
13
+ export const TextareaWidget = vi.fn(() => <div id="TextareaWidget" />);
14
+ export const TextWidget = vi.fn(() => <div id="TextWidget" />);
15
+ export const TokenWidget = vi.fn(() => <div id="TokenWidget" />);
16
+ export const WysiwygWidget = vi.fn(() => <div id="WysiwygWidget" />);
17
+ export const UrlWidget = vi.fn(() => <div id="UrlWidget" />);
18
+ export const InternalUrlWidget = vi.fn(() => <div id="InternalUrlWidget" />);
19
+ export const EmailWidget = vi.fn(() => <div id="EmailWidget" />);
20
+ export const NumberWidget = vi.fn(() => <div id="NumberWidget" />);
21
+ export const ImageSizeWidget = vi.fn(() => <div id="ImageSizeWidget" />);
22
+ export const RegistryImageWidget = vi.fn(() => (
23
+ <div id="RegistryImageWidget" />
24
+ ));
25
+ export const ReferenceWidget = vi.fn(() => <div id="ReferenceWidget" />);
26
+ export const ObjectBrowserWidget = vi.fn(() => (
27
+ <div id="ObjectBrowserWidget" />
28
+ ));
29
+ export const ObjectWidget = vi.fn(() => <div id="ObjectWidget" />);
30
+ export const ObjectListWidget = vi.fn(() => <div id="ObjectListWidget" />);
31
+ export const VocabularyTermsWidget = vi.fn(() => (
32
+ <div id="VocabularyTermsWidget" />
33
+ ));
34
+ export const SelectMetadataWidget = vi.fn(() => (
35
+ <div id="SelectMetadataWidget" />
36
+ ));
37
+ export const SelectAutoComplete = vi.fn(() => <div id="SelectAutoComplete" />);
38
+ export const ColorPickerWidget = vi.fn(() => <div id="ColorPickerWidget" />);
39
+ export const DatetimeWidget = vi.fn(() => <div id="DatetimeWidget" />);
40
+ export const RecurrenceWidget = vi.fn(() => <div id="RecurrenceWidget" />);
41
+ export const FormFieldWrapper = vi.fn(() => <div id="FormFieldWrapper" />);
@@ -7,8 +7,17 @@ import Workflow from './Workflow';
7
7
 
8
8
  const mockStore = configureStore();
9
9
 
10
- vi.mock('@plone/volto/components/manage/Widgets');
11
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
10
+ vi.mock('@plone/volto/components/manage/Widgets', async () => {
11
+ return await import(
12
+ '@plone/volto/components/manage/Widgets/__mocks__/index.vitest.tsx'
13
+ );
14
+ });
15
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
16
+ return await import(
17
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
18
+ );
19
+ });
20
+
12
21
  beforeAll(async () => {
13
22
  const { __setLoadables } = await import(
14
23
  '@plone/volto/helpers/Loadable/Loadable'
@@ -7,7 +7,11 @@ import CommentEditModal from './CommentEditModal';
7
7
 
8
8
  const mockStore = configureStore();
9
9
 
10
- vi.mock('@plone/volto/components/manage/Form');
10
+ vi.mock('@plone/volto/components/manage/Form', async () => {
11
+ return await import(
12
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
13
+ );
14
+ });
11
15
 
12
16
  describe('CommentEditModal', () => {
13
17
  it('renders a comment edit modal component', () => {
@@ -19,8 +19,16 @@ vi.mock('moment', () => ({
19
19
  })),
20
20
  }));
21
21
 
22
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
23
- vi.mock('@plone/volto/components/manage/Form');
22
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
23
+ return await import(
24
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
25
+ );
26
+ });
27
+ vi.mock('@plone/volto/components/manage/Form', async () => {
28
+ return await import(
29
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
30
+ );
31
+ });
24
32
 
25
33
  beforeAll(async () => {
26
34
  const { __setLoadables } = await import(
@@ -9,7 +9,11 @@ vi.mock('../../manage/Toolbar/Toolbar', () => ({
9
9
  default: vi.fn(() => <div id="Portal" />),
10
10
  }));
11
11
 
12
- vi.mock('@plone/volto/components/manage/Form');
12
+ vi.mock('@plone/volto/components/manage/Form', async () => {
13
+ return await import(
14
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
15
+ );
16
+ });
13
17
 
14
18
  const mockStore = configureStore();
15
19
  describe('Contact form', () => {
@@ -6,7 +6,11 @@ import { MemoryRouter } from 'react-router-dom';
6
6
 
7
7
  import RequestPasswordReset from './RequestPasswordReset';
8
8
 
9
- vi.mock('@plone/volto/components/manage/Form');
9
+ vi.mock('@plone/volto/components/manage/Form', async () => {
10
+ return await import(
11
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
12
+ );
13
+ });
10
14
 
11
15
  const mockStore = configureStore();
12
16
 
@@ -6,7 +6,11 @@ import { MemoryRouter } from 'react-router-dom';
6
6
 
7
7
  import Register from './Register';
8
8
 
9
- vi.mock('@plone/volto/components/manage/Form');
9
+ vi.mock('@plone/volto/components/manage/Form', async () => {
10
+ return await import(
11
+ '@plone/volto/components/manage/Form/__mocks__/index.vitest.tsx'
12
+ );
13
+ });
10
14
 
11
15
  const mockStore = configureStore();
12
16
 
@@ -5,7 +5,12 @@ import { When } from './EventDatesInfo';
5
5
  import configureStore from 'redux-mock-store';
6
6
  const mockStore = configureStore();
7
7
 
8
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
8
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
9
+ return await import(
10
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
11
+ );
12
+ });
13
+
9
14
  beforeAll(async () => {
10
15
  const { __setLoadables } = await import(
11
16
  '@plone/volto/helpers/Loadable/Loadable'
@@ -14,7 +14,12 @@ const store = mockStore({
14
14
  },
15
15
  });
16
16
 
17
- vi.mock('@plone/volto/helpers/Loadable/Loadable');
17
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
18
+ return await import(
19
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
20
+ );
21
+ });
22
+
18
23
  beforeAll(async () => {
19
24
  const { __setLoadables } = await import(
20
25
  '@plone/volto/helpers/Loadable/Loadable'
@@ -1,4 +1,19 @@
1
- import React from 'react';
1
+ /* TODO: When the Volto Team removes Jest configuration support from Volto core, update this file with the Vitest version of the mock.
2
+ Then, in the tests, we need to replace:
3
+
4
+ vi.mock('@plone/volto/helpers/Loadable/Loadable', async () => {
5
+ return await import(
6
+ '@plone/volto/helpers/Loadable/__mocks__/Loadable.vitest.jsx'
7
+ );
8
+ });
9
+
10
+ with the following:
11
+
12
+ vi.mock('@plone/volto/helpers/Loadable/Loadable');
13
+
14
+ Finally, remove this comment.
15
+ */
16
+
2
17
  import config from '@plone/volto/registry';
3
18
  const loadables = config.settings.loadables;
4
19
 
@@ -18,21 +33,21 @@ export const __setLoadables = async () => {
18
33
  };
19
34
 
20
35
  // TODO: filter mockAllLoadables
21
- export const injectLazyLibs = vi.fn().mockImplementation(function ([
36
+ export const injectLazyLibs = jest.fn().mockImplementation(function ([
22
37
  libraries,
23
38
  ]) {
24
- return vi.fn((WrappedComponent) =>
25
- vi.fn((props) => {
39
+ return jest.fn((WrappedComponent) =>
40
+ jest.fn((props) => {
26
41
  return <WrappedComponent {...props} {...mockAllLoadables} />;
27
42
  }),
28
43
  );
29
44
  });
30
45
 
31
- export const preloadLazyLibs = vi.fn().mockImplementation(function ([
46
+ export const preloadLazyLibs = jest.fn().mockImplementation(function ([
32
47
  libraries,
33
48
  ]) {
34
- return vi.fn((WrappedComponent) =>
35
- vi.fn((props) => {
49
+ return jest.fn((WrappedComponent) =>
50
+ jest.fn((props) => {
36
51
  return <WrappedComponent {...props} />;
37
52
  }),
38
53
  );
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ import config from '@plone/volto/registry';
3
+ const loadables = config.settings.loadables;
4
+
5
+ let mockAllLoadables = Object.create(null);
6
+
7
+ export const __setLoadables = async () => {
8
+ if (Object.keys(mockAllLoadables).length > 0) return;
9
+ const resolved = await Promise.all(
10
+ Object.keys(loadables).map(async (n) => {
11
+ const lib = await Promise.resolve(loadables[n].load());
12
+ return [n, { current: lib }];
13
+ }),
14
+ );
15
+ resolved.forEach(([name, { current }]) => {
16
+ mockAllLoadables[name] = current;
17
+ });
18
+ };
19
+
20
+ // TODO: filter mockAllLoadables
21
+ export const injectLazyLibs = vi.fn().mockImplementation(function ([
22
+ libraries,
23
+ ]) {
24
+ return vi.fn((WrappedComponent) =>
25
+ vi.fn((props) => {
26
+ return <WrappedComponent {...props} {...mockAllLoadables} />;
27
+ }),
28
+ );
29
+ });
30
+
31
+ export const preloadLazyLibs = vi.fn().mockImplementation(function ([
32
+ libraries,
33
+ ]) {
34
+ return vi.fn((WrappedComponent) =>
35
+ vi.fn((props) => {
36
+ return <WrappedComponent {...props} />;
37
+ }),
38
+ );
39
+ });
@@ -10,7 +10,7 @@
10
10
  "jsx": "react-jsx",
11
11
  "preserveSymlinks": true,
12
12
  "downlevelIteration": true,
13
- "types": ["vitest/globals"],
13
+ "types": ["vitest/globals", "jest"],
14
14
  "paths": {
15
15
  "@plone/volto/*": ["./src/*"],
16
16
  "react": ["./node_modules/@types/react"],
package/tsconfig.json CHANGED
@@ -7,7 +7,8 @@
7
7
  "ESNext"
8
8
  ],
9
9
  "types": [
10
- "vitest/globals"
10
+ "vitest/globals",
11
+ "jest"
11
12
  ],
12
13
  "module": "commonjs",
13
14
  "allowJs": true,
@@ -1,2 +1,2 @@
1
- export declare const Contents: any;
2
- export declare const ContentsRenameModal: any;
1
+ export declare const Contents: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
2
+ export declare const ContentsRenameModal: jest.Mock<import("react/jsx-runtime").JSX.Element, [], any>;
@@ -0,0 +1,2 @@
1
+ export declare const Contents: any;
2
+ export declare const ContentsRenameModal: any;