@contentful/field-editor-reference 8.3.1-canary.0 → 8.3.2-canary.3

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 (24) hide show
  1. package/dist/cjs/common/useEditorPermissions.spec.js +31 -30
  2. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +48 -48
  3. package/dist/cjs/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +32 -32
  4. package/dist/cjs/components/ScheduledIconWithTooltip/formatDateAndTime.spec.js +44 -43
  5. package/dist/cjs/resources/Cards/ResourceCard.spec.js +50 -50
  6. package/dist/cjs/resources/MultipleResourceReferenceEditor.spec.js +36 -36
  7. package/dist/cjs/resources/SingleResourceReferenceEditor.spec.js +26 -26
  8. package/dist/cjs/resources/testHelpers/resourceEditorHelpers.js +6 -5
  9. package/dist/cjs/utils/getProviderName.spec.js +6 -5
  10. package/dist/esm/common/useEditorPermissions.spec.js +3 -2
  11. package/dist/esm/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.js +7 -7
  12. package/dist/esm/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.js +5 -5
  13. package/dist/esm/components/ScheduledIconWithTooltip/formatDateAndTime.spec.js +4 -3
  14. package/dist/esm/resources/Cards/ResourceCard.spec.js +12 -12
  15. package/dist/esm/resources/MultipleResourceReferenceEditor.spec.js +10 -10
  16. package/dist/esm/resources/SingleResourceReferenceEditor.spec.js +11 -11
  17. package/dist/esm/resources/testHelpers/resourceEditorHelpers.js +6 -5
  18. package/dist/esm/utils/getProviderName.spec.js +1 -0
  19. package/dist/types/components/CreateEntryLinkButton/CreateEntryLinkButton.spec.d.ts +1 -1
  20. package/dist/types/components/CreateEntryLinkButton/CreateEntryMenuTrigger.spec.d.ts +1 -1
  21. package/dist/types/resources/Cards/ResourceCard.spec.d.ts +1 -1
  22. package/dist/types/resources/MultipleResourceReferenceEditor.spec.d.ts +1 -1
  23. package/dist/types/resources/SingleResourceReferenceEditor.spec.d.ts +1 -1
  24. package/package.json +6 -6
@@ -4,13 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _fieldeditortestutils = require("@contentful/field-editor-test-utils");
6
6
  const _reacthooks = require("@testing-library/react-hooks");
7
+ const _vitest = require("vitest");
7
8
  const _useEditorPermissions = require("./useEditorPermissions");
8
- describe('useEditorPermissions', ()=>{
9
+ (0, _vitest.describe)('useEditorPermissions', ()=>{
9
10
  const makeFieldAppSDK = (customizeMock)=>({
10
11
  field: (0, _fieldeditortestutils.createFakeFieldAPI)(customizeMock)[0],
11
12
  access: {
12
- can: jest.fn().mockResolvedValue(true),
13
- canPerformActionOnEntryOfType: jest.fn().mockResolvedValue(true)
13
+ can: _vitest.vi.fn().mockResolvedValue(true),
14
+ canPerformActionOnEntryOfType: _vitest.vi.fn().mockResolvedValue(true)
14
15
  }
15
16
  });
16
17
  const makeContentType = (id)=>({
@@ -37,8 +38,8 @@ describe('useEditorPermissions', ()=>{
37
38
  sdk
38
39
  };
39
40
  };
40
- describe(`behaviour on Asset`, ()=>{
41
- it(`wont check access when turned off via instance params`, async ()=>{
41
+ (0, _vitest.describe)(`behaviour on Asset`, ()=>{
42
+ (0, _vitest.it)(`wont check access when turned off via instance params`, async ()=>{
42
43
  const { result, sdk } = await renderEditorPermissions({
43
44
  entityType: 'Asset',
44
45
  params: {
@@ -46,34 +47,34 @@ describe('useEditorPermissions', ()=>{
46
47
  showLinkEntityAction: false
47
48
  }
48
49
  });
49
- expect(result.current.canCreateEntity).toBe(false);
50
- expect(result.current.canLinkEntity).toBe(false);
51
- expect(sdk.access.can).not.toHaveBeenCalledWith();
50
+ (0, _vitest.expect)(result.current.canCreateEntity).toBe(false);
51
+ (0, _vitest.expect)(result.current.canLinkEntity).toBe(false);
52
+ (0, _vitest.expect)(sdk.access.can).not.toHaveBeenCalledWith();
52
53
  });
53
- it(`checks basic access`, async ()=>{
54
+ (0, _vitest.it)(`checks basic access`, async ()=>{
54
55
  const { sdk } = await renderEditorPermissions({
55
56
  entityType: 'Asset'
56
57
  });
57
- expect(sdk.access.can).toHaveBeenCalledWith('create', 'Asset');
58
- expect(sdk.access.can).toHaveBeenCalledWith('read', 'Asset');
58
+ (0, _vitest.expect)(sdk.access.can).toHaveBeenCalledWith('create', 'Asset');
59
+ (0, _vitest.expect)(sdk.access.can).toHaveBeenCalledWith('read', 'Asset');
59
60
  });
60
- it(`defaults link asset action visibility to true`, async ()=>{
61
+ (0, _vitest.it)(`defaults link asset action visibility to true`, async ()=>{
61
62
  const { result } = await renderEditorPermissions({
62
63
  entityType: 'Asset'
63
64
  });
64
- expect(result.current.canLinkEntity).toBeTruthy();
65
+ (0, _vitest.expect)(result.current.canLinkEntity).toBeTruthy();
65
66
  });
66
- it(`returns empty contentTypes`, async ()=>{
67
+ (0, _vitest.it)(`returns empty contentTypes`, async ()=>{
67
68
  const { result } = await renderEditorPermissions({
68
69
  entityType: 'Asset',
69
70
  allContentTypes: [
70
71
  makeContentType('one')
71
72
  ]
72
73
  });
73
- expect(result.current.creatableContentTypes).toEqual([]);
74
+ (0, _vitest.expect)(result.current.creatableContentTypes).toEqual([]);
74
75
  });
75
76
  });
76
- describe(`behaviour on Entry`, ()=>{
77
+ (0, _vitest.describe)(`behaviour on Entry`, ()=>{
77
78
  const allowContentTypes = (sdk, allowedAction, ...allowed)=>{
78
79
  sdk.access.canPerformActionOnEntryOfType.mockImplementation(async (action, contentTypeId)=>{
79
80
  if (allowedAction === action && allowed.includes(contentTypeId)) {
@@ -82,7 +83,7 @@ describe('useEditorPermissions', ()=>{
82
83
  return false;
83
84
  });
84
85
  };
85
- it(`wont check access when turned off via instance params`, async ()=>{
86
+ (0, _vitest.it)(`wont check access when turned off via instance params`, async ()=>{
86
87
  const { result, sdk } = await renderEditorPermissions({
87
88
  entityType: 'Entry',
88
89
  params: {
@@ -90,11 +91,11 @@ describe('useEditorPermissions', ()=>{
90
91
  showLinkEntityAction: false
91
92
  }
92
93
  });
93
- expect(result.current.canCreateEntity).toBe(false);
94
- expect(result.current.canLinkEntity).toBe(false);
95
- expect(sdk.access.can).not.toHaveBeenCalledWith();
94
+ (0, _vitest.expect)(result.current.canCreateEntity).toBe(false);
95
+ (0, _vitest.expect)(result.current.canLinkEntity).toBe(false);
96
+ (0, _vitest.expect)(sdk.access.can).not.toHaveBeenCalledWith();
96
97
  });
97
- it(`only allows creation when one content-type can be created`, async ()=>{
98
+ (0, _vitest.it)(`only allows creation when one content-type can be created`, async ()=>{
98
99
  const allContentTypes = [
99
100
  makeContentType('one'),
100
101
  makeContentType('two')
@@ -107,9 +108,9 @@ describe('useEditorPermissions', ()=>{
107
108
  },
108
109
  waitForUpdate: true
109
110
  });
110
- expect(result.current.canCreateEntity).toBe(true);
111
+ (0, _vitest.expect)(result.current.canCreateEntity).toBe(true);
111
112
  });
112
- it.skip(`denies creation when no content-type can be created`, async ()=>{
113
+ _vitest.it.skip(`denies creation when no content-type can be created`, async ()=>{
113
114
  const allContentTypes = [
114
115
  makeContentType('one'),
115
116
  makeContentType('two')
@@ -121,9 +122,9 @@ describe('useEditorPermissions', ()=>{
121
122
  allowContentTypes(sdk, 'create');
122
123
  }
123
124
  });
124
- expect(result.current.canCreateEntity).toBe(false);
125
+ (0, _vitest.expect)(result.current.canCreateEntity).toBe(false);
125
126
  });
126
- it(`only allows linking when one content-type can be read`, async ()=>{
127
+ (0, _vitest.it)(`only allows linking when one content-type can be read`, async ()=>{
127
128
  const allContentTypes = [
128
129
  makeContentType('one'),
129
130
  makeContentType('two')
@@ -136,9 +137,9 @@ describe('useEditorPermissions', ()=>{
136
137
  },
137
138
  waitForUpdate: true
138
139
  });
139
- expect(result.current.canLinkEntity).toBe(true);
140
+ (0, _vitest.expect)(result.current.canLinkEntity).toBe(true);
140
141
  });
141
- it.skip(`denies creation when no content-type can be read`, async ()=>{
142
+ _vitest.it.skip(`denies creation when no content-type can be read`, async ()=>{
142
143
  const allContentTypes = [
143
144
  makeContentType('one'),
144
145
  makeContentType('two')
@@ -150,9 +151,9 @@ describe('useEditorPermissions', ()=>{
150
151
  allowContentTypes(sdk, 'read');
151
152
  }
152
153
  });
153
- expect(result.current.canLinkEntity).toBe(false);
154
+ (0, _vitest.expect)(result.current.canLinkEntity).toBe(false);
154
155
  });
155
- it(`returns creatableContentTypes from validations that can be created`, async ()=>{
156
+ (0, _vitest.it)(`returns creatableContentTypes from validations that can be created`, async ()=>{
156
157
  const allContentTypes = [
157
158
  makeContentType('one'),
158
159
  makeContentType('two')
@@ -174,7 +175,7 @@ describe('useEditorPermissions', ()=>{
174
175
  allowContentTypes(sdk, 'create', 'two');
175
176
  }
176
177
  });
177
- expect(result.current.creatableContentTypes).toEqual([
178
+ (0, _vitest.expect)(result.current.creatableContentTypes).toEqual([
178
179
  allContentTypes[1]
179
180
  ]);
180
181
  });
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
6
- require("@testing-library/jest-dom");
7
6
  const _react1 = require("@testing-library/react");
8
7
  const _noop = /*#__PURE__*/ _interop_require_default(require("lodash/noop"));
8
+ const _vitest = require("vitest");
9
9
  const _CreateEntryLinkButton = require("./CreateEntryLinkButton");
10
10
  function _interop_require_default(obj) {
11
11
  return obj && obj.__esModule ? obj : {
@@ -75,7 +75,7 @@ const CONTENT_TYPE_3 = {
75
75
  }
76
76
  };
77
77
  const findButton = (getByTestId)=>getByTestId('create-entry-link-button');
78
- describe('CreateEntryLinkButton general', ()=>{
78
+ (0, _vitest.describe)('CreateEntryLinkButton general', ()=>{
79
79
  const props = {
80
80
  contentTypes: [
81
81
  CONTENT_TYPE_1,
@@ -86,46 +86,46 @@ describe('CreateEntryLinkButton general', ()=>{
86
86
  return Promise.resolve();
87
87
  }
88
88
  };
89
- it('renders with multiple content types as list', ()=>{
89
+ (0, _vitest.it)('renders with multiple content types as list', ()=>{
90
90
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
91
- expect(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
91
+ (0, _vitest.expect)(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
92
92
  const link = findButton(getByTestId);
93
- expect(link).toBeDefined();
94
- expect(link.textContent).toBe('Add entry');
93
+ (0, _vitest.expect)(link).toBeDefined();
94
+ (0, _vitest.expect)(link.textContent).toBe('Add entry');
95
95
  });
96
- it('renders dropdown menu on click when with multiple content types', ()=>{
96
+ (0, _vitest.it)('renders dropdown menu on click when with multiple content types', ()=>{
97
97
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
98
98
  _react1.fireEvent.click(findButton(getByTestId));
99
99
  const menu = getByTestId('add-entry-menu');
100
- expect(menu).toBeDefined();
100
+ (0, _vitest.expect)(menu).toBeDefined();
101
101
  const menuItems = menu.querySelectorAll('[data-test-id="contentType"]');
102
- expect(menuItems).toHaveLength(props.contentTypes.length);
103
- menuItems.forEach((item, index)=>expect(item.textContent).toBe(props.contentTypes[index].name));
102
+ (0, _vitest.expect)(menuItems).toHaveLength(props.contentTypes.length);
103
+ menuItems.forEach((item, index)=>(0, _vitest.expect)(item.textContent).toBe(props.contentTypes[index].name));
104
104
  });
105
- it('renders suggestedContentType as text when given', ()=>{
105
+ (0, _vitest.it)('renders suggestedContentType as text when given', ()=>{
106
106
  const suggestedContentTypeId = 'ID_2';
107
107
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
108
108
  ...props,
109
109
  suggestedContentTypeId: suggestedContentTypeId
110
110
  }));
111
- expect(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
111
+ (0, _vitest.expect)(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
112
112
  const button = findButton(getByTestId);
113
- expect(button).toBeDefined();
114
- expect(button.textContent).toBe(`Add ${CONTENT_TYPE_2.name}`);
113
+ (0, _vitest.expect)(button).toBeDefined();
114
+ (0, _vitest.expect)(button.textContent).toBe(`Add ${CONTENT_TYPE_2.name}`);
115
115
  });
116
- it('renders the name of the content type as part of the text if only 1 content type is given', ()=>{
116
+ (0, _vitest.it)('renders the name of the content type as part of the text if only 1 content type is given', ()=>{
117
117
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
118
118
  onSelect: props.onSelect,
119
119
  contentTypes: [
120
120
  CONTENT_TYPE_1
121
121
  ]
122
122
  }));
123
- expect(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
123
+ (0, _vitest.expect)(getByTestId('create-entry-button-menu-trigger')).toBeDefined();
124
124
  const button = findButton(getByTestId);
125
- expect(button).toBeDefined();
126
- expect(button.textContent).toBe(`Add ${CONTENT_TYPE_1.name}`);
125
+ (0, _vitest.expect)(button).toBeDefined();
126
+ (0, _vitest.expect)(button.textContent).toBe(`Add ${CONTENT_TYPE_1.name}`);
127
127
  });
128
- it('renders custom text, icon', ()=>{
128
+ (0, _vitest.it)('renders custom text, icon', ()=>{
129
129
  const propsOverrides = {
130
130
  text: 'CUSTOM_TEXT',
131
131
  hasPlusIcon: true
@@ -135,11 +135,11 @@ describe('CreateEntryLinkButton general', ()=>{
135
135
  ...propsOverrides
136
136
  }));
137
137
  const link = findButton(getByTestId);
138
- expect(link.textContent).toBe(propsOverrides.text);
139
- expect(link.querySelectorAll('svg')).toHaveLength(2);
138
+ (0, _vitest.expect)(link.textContent).toBe(propsOverrides.text);
139
+ (0, _vitest.expect)(link.querySelectorAll('svg')).toHaveLength(2);
140
140
  });
141
141
  });
142
- describe('CreateEntryLinkButton with multiple entries', ()=>{
142
+ (0, _vitest.describe)('CreateEntryLinkButton with multiple entries', ()=>{
143
143
  const props = {
144
144
  contentTypes: [
145
145
  CONTENT_TYPE_1,
@@ -150,23 +150,23 @@ describe('CreateEntryLinkButton with multiple entries', ()=>{
150
150
  return Promise.resolve();
151
151
  }
152
152
  };
153
- it('should render dropdown items for each content type', ()=>{
153
+ (0, _vitest.it)('should render dropdown items for each content type', ()=>{
154
154
  const { getByTestId, getAllByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, props));
155
155
  _react1.fireEvent.click(findButton(getByTestId));
156
- expect(getAllByTestId('contentType')).toHaveLength(props.contentTypes.length);
156
+ (0, _vitest.expect)(getAllByTestId('contentType')).toHaveLength(props.contentTypes.length);
157
157
  });
158
- it('calls onSelect after click on menu item', ()=>{
159
- const selectSpy = jest.fn();
158
+ (0, _vitest.it)('calls onSelect after click on menu item', ()=>{
159
+ const selectSpy = _vitest.vi.fn();
160
160
  const { getByTestId, getAllByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
161
161
  ...props,
162
162
  onSelect: selectSpy
163
163
  }));
164
164
  _react1.fireEvent.click(findButton(getByTestId));
165
165
  _react1.fireEvent.click(getAllByTestId('contentType')[1]);
166
- expect(selectSpy).toHaveBeenCalledWith(CONTENT_TYPE_2.sys.id);
166
+ (0, _vitest.expect)(selectSpy).toHaveBeenCalledWith(CONTENT_TYPE_2.sys.id);
167
167
  });
168
168
  });
169
- describe('CreateEntryLinkButton with a single entry', ()=>{
169
+ (0, _vitest.describe)('CreateEntryLinkButton with a single entry', ()=>{
170
170
  const props = {
171
171
  contentTypes: [
172
172
  CONTENT_TYPE_1
@@ -175,20 +175,20 @@ describe('CreateEntryLinkButton with a single entry', ()=>{
175
175
  return Promise.resolve();
176
176
  }
177
177
  };
178
- it('should fire the onSelect function when clicked', ()=>{
179
- const onSelectStub = jest.fn();
178
+ (0, _vitest.it)('should fire the onSelect function when clicked', ()=>{
179
+ const onSelectStub = _vitest.vi.fn();
180
180
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
181
181
  ...props,
182
182
  onSelect: onSelectStub
183
183
  }));
184
184
  _react1.fireEvent.click(findButton(getByTestId));
185
- expect(onSelectStub).toHaveBeenCalledWith(props.contentTypes[0].sys.id);
186
- expect(()=>getByTestId('cf-ui-spinner')).toThrow('Unable to find an element by: [data-test-id="cf-ui-spinner"]');
185
+ (0, _vitest.expect)(onSelectStub).toHaveBeenCalledWith(props.contentTypes[0].sys.id);
186
+ (0, _vitest.expect)(()=>getByTestId('cf-ui-spinner')).toThrow('Unable to find an element by: [data-test-id="cf-ui-spinner"]');
187
187
  });
188
188
  });
189
- describe('CreateEntryLinkButton common', ()=>{
190
- it('should render a spinner if onSelect returns a promise', async ()=>{
191
- const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
189
+ (0, _vitest.describe)('CreateEntryLinkButton common', ()=>{
190
+ (0, _vitest.it)('should render a spinner if onSelect returns a promise', async ()=>{
191
+ const onSelect = _vitest.vi.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
192
192
  const { getByTestId, container } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
193
193
  contentTypes: [
194
194
  CONTENT_TYPE_1
@@ -196,15 +196,15 @@ describe('CreateEntryLinkButton common', ()=>{
196
196
  onSelect: onSelect
197
197
  }));
198
198
  _react1.fireEvent.click(findButton(getByTestId));
199
- expect(onSelect).toHaveBeenCalled();
199
+ (0, _vitest.expect)(onSelect).toHaveBeenCalled();
200
200
  const spinner = await (0, _react1.waitFor)(()=>getByTestId('cf-ui-spinner'), {
201
201
  container
202
202
  });
203
- expect(spinner).toBeDefined();
204
- expect(spinner.textContent).toMatch(/Loading/g);
203
+ (0, _vitest.expect)(spinner).toBeDefined();
204
+ (0, _vitest.expect)(spinner.textContent).toMatch(/Loading/g);
205
205
  });
206
- it('should hide a spinner after the promise from onSelect resolves', async ()=>{
207
- const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 500)));
206
+ (0, _vitest.it)('should hide a spinner after the promise from onSelect resolves', async ()=>{
207
+ const onSelect = _vitest.vi.fn(()=>new Promise((resolve)=>setTimeout(resolve, 500)));
208
208
  const { getByTestId, container } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
209
209
  contentTypes: [
210
210
  CONTENT_TYPE_1
@@ -216,12 +216,12 @@ describe('CreateEntryLinkButton common', ()=>{
216
216
  const spinner = await (0, _react1.waitFor)(getSpinner, {
217
217
  container
218
218
  });
219
- expect(spinner).toBeDefined();
219
+ (0, _vitest.expect)(spinner).toBeDefined();
220
220
  await (0, _react1.waitForElementToBeRemoved)(()=>document.querySelector('[data-test-id="cf-ui-spinner"]'));
221
- expect(getSpinner).toThrow('Unable to find an element by: [data-test-id="cf-ui-spinner"]');
221
+ (0, _vitest.expect)(getSpinner).toThrow('Unable to find an element by: [data-test-id="cf-ui-spinner"]');
222
222
  });
223
- it('does not emit onSelect on subsequent click before the promise from onSelect resolves', async ()=>{
224
- const onSelect = jest.fn(()=>new Promise((resolve)=>setTimeout(()=>resolve(undefined), 200)));
223
+ (0, _vitest.it)('does not emit onSelect on subsequent click before the promise from onSelect resolves', async ()=>{
224
+ const onSelect = _vitest.vi.fn(()=>new Promise((resolve)=>setTimeout(()=>resolve(undefined), 200)));
225
225
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
226
226
  contentTypes: [
227
227
  CONTENT_TYPE_1
@@ -234,10 +234,10 @@ describe('CreateEntryLinkButton common', ()=>{
234
234
  await (0, _react1.waitFor)(_noop.default, {
235
235
  timeout: 1000
236
236
  });
237
- expect(onSelect).toHaveBeenCalledTimes(1);
237
+ (0, _vitest.expect)(onSelect).toHaveBeenCalledTimes(1);
238
238
  });
239
- it('emits onSelect on subsequent click after the promise from onSelect resolves', async ()=>{
240
- const onSelect = jest.fn(()=>Promise.resolve());
239
+ (0, _vitest.it)('emits onSelect on subsequent click after the promise from onSelect resolves', async ()=>{
240
+ const onSelect = _vitest.vi.fn(()=>Promise.resolve());
241
241
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryLinkButton.CreateEntryLinkButton, {
242
242
  contentTypes: [
243
243
  CONTENT_TYPE_1
@@ -251,6 +251,6 @@ describe('CreateEntryLinkButton common', ()=>{
251
251
  });
252
252
  _react1.fireEvent.click(findButton(getByTestId));
253
253
  });
254
- expect(onSelect).toHaveBeenCalledTimes(2);
254
+ (0, _vitest.expect)(onSelect).toHaveBeenCalledTimes(2);
255
255
  });
256
256
  });
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
6
6
  const _f36components = require("@contentful/f36-components");
7
- require("@testing-library/jest-dom/extend-expect");
8
7
  const _react1 = require("@testing-library/react");
9
8
  const _noop = /*#__PURE__*/ _interop_require_default(require("lodash/noop"));
9
+ const _vitest = require("vitest");
10
10
  const _fill = /*#__PURE__*/ _interop_require_default(require("lodash/fill"));
11
11
  const _CreateEntryMenuTrigger = require("./CreateEntryMenuTrigger");
12
12
  function _interop_require_default(obj) {
@@ -95,7 +95,7 @@ const EXPERIENCE_TYPE = {
95
95
  }
96
96
  }
97
97
  };
98
- describe('CreateEntryMenuTrigger general', ()=>{
98
+ (0, _vitest.describe)('CreateEntryMenuTrigger general', ()=>{
99
99
  const props = {
100
100
  contentTypes: [
101
101
  CONTENT_TYPE_1,
@@ -106,22 +106,22 @@ describe('CreateEntryMenuTrigger general', ()=>{
106
106
  return Promise.resolve();
107
107
  }
108
108
  };
109
- let stub = jest.fn();
110
- beforeEach(()=>{
111
- stub = jest.fn().mockImplementation(()=>/*#__PURE__*/ _react.createElement(_f36components.Button, {
109
+ let stub = _vitest.vi.fn();
110
+ (0, _vitest.beforeEach)(()=>{
111
+ stub = _vitest.vi.fn().mockImplementation(()=>/*#__PURE__*/ _react.createElement(_f36components.Button, {
112
112
  testId: "menu-trigger"
113
113
  }));
114
114
  });
115
- it('shares the state and functions for the menu', ()=>{
115
+ (0, _vitest.it)('shares the state and functions for the menu', ()=>{
116
116
  const stub = (api)=>{
117
- expect(api.isOpen).toBe(false);
118
- expect(api.isSelecting).toBe(false);
117
+ (0, _vitest.expect)(api.isOpen).toBe(false);
118
+ (0, _vitest.expect)(api.isSelecting).toBe(false);
119
119
  return /*#__PURE__*/ _react.createElement("span", null);
120
120
  };
121
121
  (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, props, stub));
122
122
  });
123
- it('should set isSelecting to true in case onSelect returns a promise', async ()=>{
124
- const selectStub = jest.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
123
+ (0, _vitest.it)('should set isSelecting to true in case onSelect returns a promise', async ()=>{
124
+ const selectStub = _vitest.vi.fn(()=>new Promise((resolve)=>setTimeout(resolve, 1000)));
125
125
  const { getAllByTestId, getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
126
126
  ...props,
127
127
  onSelect: selectStub
@@ -132,10 +132,10 @@ describe('CreateEntryMenuTrigger general', ()=>{
132
132
  (0, _react1.act)(()=>{
133
133
  _react1.fireEvent.click(getAllByTestId('contentType')[0]);
134
134
  });
135
- expect(selectStub).toHaveBeenCalled();
135
+ (0, _vitest.expect)(selectStub).toHaveBeenCalled();
136
136
  });
137
- it('should not set isSelecting to true in case onSelect is sync', async ()=>{
138
- const selectStub = jest.fn();
137
+ (0, _vitest.it)('should not set isSelecting to true in case onSelect is sync', async ()=>{
138
+ const selectStub = _vitest.vi.fn();
139
139
  const { getAllByTestId, getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
140
140
  ...props,
141
141
  onSelect: selectStub
@@ -146,13 +146,13 @@ describe('CreateEntryMenuTrigger general', ()=>{
146
146
  (0, _react1.act)(()=>{
147
147
  _react1.fireEvent.click(getAllByTestId('contentType')[0]);
148
148
  });
149
- expect(stub).toHaveBeenLastCalledWith({
149
+ (0, _vitest.expect)(stub).toHaveBeenLastCalledWith({
150
150
  isOpen: false,
151
151
  isSelecting: false
152
152
  });
153
- expect(selectStub).toHaveBeenCalled();
153
+ (0, _vitest.expect)(selectStub).toHaveBeenCalled();
154
154
  });
155
- it('renders text input if contentTypes.length > 20', ()=>{
155
+ (0, _vitest.it)('renders text input if contentTypes.length > 20', ()=>{
156
156
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
157
157
  ...props,
158
158
  contentTypes: (0, _fill.default)(Array(21), CONTENT_TYPE_3)
@@ -160,9 +160,9 @@ describe('CreateEntryMenuTrigger general', ()=>{
160
160
  (0, _react1.act)(()=>{
161
161
  _react1.fireEvent.click(getByTestId('menu-trigger'));
162
162
  });
163
- expect(getByTestId('add-entry-menu-search')).toBeDefined();
163
+ (0, _vitest.expect)(getByTestId('add-entry-menu-search')).toBeDefined();
164
164
  });
165
- it('shows the search results if typed in input', ()=>{
165
+ (0, _vitest.it)('shows the search results if typed in input', ()=>{
166
166
  const contentTypes = (0, _fill.default)((0, _fill.default)((0, _fill.default)(Array(21), CONTENT_TYPE_1, 0, 10), CONTENT_TYPE_2, 10, 20), CONTENT_TYPE_3, 20);
167
167
  const { getByTestId, getAllByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
168
168
  ...props,
@@ -178,25 +178,25 @@ describe('CreateEntryMenuTrigger general', ()=>{
178
178
  },
179
179
  preventDefault: _noop.default
180
180
  });
181
- expect(getAllByTestId('contentType')).toHaveLength(10);
182
- expect(getByTestId('add-entry-menu-search-results').textContent).toBe('10 results');
181
+ (0, _vitest.expect)(getAllByTestId('contentType')).toHaveLength(10);
182
+ (0, _vitest.expect)(getByTestId('add-entry-menu-search-results').textContent).toBe('10 results');
183
183
  _react1.fireEvent.change(input, {
184
184
  target: {
185
185
  value: '3'
186
186
  },
187
187
  preventDefault: _noop.default
188
188
  });
189
- expect(getAllByTestId('contentType')).toHaveLength(1);
190
- expect(getByTestId('add-entry-menu-search-results').textContent).toBe('1 result');
189
+ (0, _vitest.expect)(getAllByTestId('contentType')).toHaveLength(1);
190
+ (0, _vitest.expect)(getByTestId('add-entry-menu-search-results').textContent).toBe('1 result');
191
191
  _react1.fireEvent.change(input, {
192
192
  target: {
193
193
  value: '4'
194
194
  },
195
195
  preventDefault: _noop.default
196
196
  });
197
- expect(getByTestId('add-entry-menu-search-results').textContent).toBe('No results found');
197
+ (0, _vitest.expect)(getByTestId('add-entry-menu-search-results').textContent).toBe('No results found');
198
198
  });
199
- it('shows suggestedContentType in the list', ()=>{
199
+ (0, _vitest.it)('shows suggestedContentType in the list', ()=>{
200
200
  const { getByTestId } = (0, _react1.render)(/*#__PURE__*/ _react.createElement(_CreateEntryMenuTrigger.CreateEntryMenuTrigger, {
201
201
  ...props,
202
202
  suggestedContentTypeId: props.contentTypes[0].sys.id
@@ -205,10 +205,10 @@ describe('CreateEntryMenuTrigger general', ()=>{
205
205
  _react1.fireEvent.click(getByTestId('menu-trigger'));
206
206
  });
207
207
  const suggestedContentType = getByTestId('suggested');
208
- expect(suggestedContentType).toBeDefined();
209
- expect(suggestedContentType.textContent).toBe(props.contentTypes[0].name);
208
+ (0, _vitest.expect)(suggestedContentType).toBeDefined();
209
+ (0, _vitest.expect)(suggestedContentType.textContent).toBe(props.contentTypes[0].name);
210
210
  });
211
- it('filters out content types with Contentful:ExperienceType annotation', ()=>{
211
+ (0, _vitest.it)('filters out content types with Contentful:ExperienceType annotation', ()=>{
212
212
  const contentTypesWithExperience = [
213
213
  CONTENT_TYPE_1,
214
214
  CONTENT_TYPE_2,
@@ -223,11 +223,11 @@ describe('CreateEntryMenuTrigger general', ()=>{
223
223
  _react1.fireEvent.click(getByTestId('menu-trigger'));
224
224
  });
225
225
  const contentTypeItems = getAllByTestId('contentType');
226
- expect(contentTypeItems).toHaveLength(3);
227
- expect(contentTypeItems[0].textContent).toBe('name-1');
228
- expect(contentTypeItems[1].textContent).toBe('name-2');
229
- expect(contentTypeItems[2].textContent).toBe('name-3');
226
+ (0, _vitest.expect)(contentTypeItems).toHaveLength(3);
227
+ (0, _vitest.expect)(contentTypeItems[0].textContent).toBe('name-1');
228
+ (0, _vitest.expect)(contentTypeItems[1].textContent).toBe('name-2');
229
+ (0, _vitest.expect)(contentTypeItems[2].textContent).toBe('name-3');
230
230
  const experienceTypeItem = contentTypeItems.find((item)=>item.textContent === 'experience-type');
231
- expect(experienceTypeItem).toBeUndefined();
231
+ (0, _vitest.expect)(experienceTypeItem).toBeUndefined();
232
232
  });
233
233
  });
@@ -2,70 +2,71 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ const _vitest = require("vitest");
5
6
  const _formatDateAndTime = require("./formatDateAndTime");
6
7
  const TODAY = new Date('2024-06-15T12:00:00.000Z');
7
- beforeEach(()=>{
8
- jest.useFakeTimers();
9
- jest.setSystemTime(TODAY);
8
+ (0, _vitest.beforeEach)(()=>{
9
+ _vitest.vi.useFakeTimers();
10
+ _vitest.vi.setSystemTime(TODAY);
10
11
  });
11
- afterEach(()=>{
12
- jest.useRealTimers();
12
+ (0, _vitest.afterEach)(()=>{
13
+ _vitest.vi.useRealTimers();
13
14
  });
14
- describe('formatDate', ()=>{
15
- it('returns "Today" (short) for a date on the same calendar day', ()=>{
16
- expect((0, _formatDateAndTime.formatDate)('2024-06-15T08:00:00.000Z', true)).toBe('Today');
15
+ (0, _vitest.describe)('formatDate', ()=>{
16
+ (0, _vitest.it)('returns "Today" (short) for a date on the same calendar day', ()=>{
17
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)('2024-06-15T08:00:00.000Z', true)).toBe('Today');
17
18
  });
18
- it('returns long form for today', ()=>{
19
- expect((0, _formatDateAndTime.formatDate)('2024-06-15T08:00:00.000Z')).toBe('Today, 15 Jun 2024');
19
+ (0, _vitest.it)('returns long form for today', ()=>{
20
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)('2024-06-15T08:00:00.000Z')).toBe('Today, 15 Jun 2024');
20
21
  });
21
- it('returns "Tomorrow" (short) for the next calendar day', ()=>{
22
- expect((0, _formatDateAndTime.formatDate)('2024-06-16T08:00:00.000Z', true)).toBe('Tomorrow');
22
+ (0, _vitest.it)('returns "Tomorrow" (short) for the next calendar day', ()=>{
23
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)('2024-06-16T08:00:00.000Z', true)).toBe('Tomorrow');
23
24
  });
24
- it('returns long form for tomorrow', ()=>{
25
- expect((0, _formatDateAndTime.formatDate)('2024-06-16T08:00:00.000Z')).toBe('Tomorrow, 16 Jun 2024');
25
+ (0, _vitest.it)('returns long form for tomorrow', ()=>{
26
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)('2024-06-16T08:00:00.000Z')).toBe('Tomorrow, 16 Jun 2024');
26
27
  });
27
- it('returns "Yesterday" (short) for the previous calendar day', ()=>{
28
- expect((0, _formatDateAndTime.formatDate)('2024-06-14T08:00:00.000Z', true)).toBe('Yesterday');
28
+ (0, _vitest.it)('returns "Yesterday" (short) for the previous calendar day', ()=>{
29
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)('2024-06-14T08:00:00.000Z', true)).toBe('Yesterday');
29
30
  });
30
- it('returns long form for yesterday', ()=>{
31
- expect((0, _formatDateAndTime.formatDate)('2024-06-14T08:00:00.000Z')).toBe('Yesterday, 14 Jun 2024');
31
+ (0, _vitest.it)('returns long form for yesterday', ()=>{
32
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)('2024-06-14T08:00:00.000Z')).toBe('Yesterday, 14 Jun 2024');
32
33
  });
33
- it('returns weekday + date for a past date beyond yesterday', ()=>{
34
- expect((0, _formatDateAndTime.formatDate)('2024-06-01T08:00:00.000Z')).toBe('Sat, 01 Jun 2024');
34
+ (0, _vitest.it)('returns weekday + date for a past date beyond yesterday', ()=>{
35
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)('2024-06-01T08:00:00.000Z')).toBe('Sat, 01 Jun 2024');
35
36
  });
36
- it('returns weekday + date for a future date beyond tomorrow', ()=>{
37
- expect((0, _formatDateAndTime.formatDate)('2024-06-20T08:00:00.000Z')).toBe('Thu, 20 Jun 2024');
37
+ (0, _vitest.it)('returns weekday + date for a future date beyond tomorrow', ()=>{
38
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)('2024-06-20T08:00:00.000Z')).toBe('Thu, 20 Jun 2024');
38
39
  });
39
- it('accepts a Date object', ()=>{
40
- expect((0, _formatDateAndTime.formatDate)(new Date('2024-06-15T09:30:00.000Z'), true)).toBe('Today');
40
+ (0, _vitest.it)('accepts a Date object', ()=>{
41
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDate)(new Date('2024-06-15T09:30:00.000Z'), true)).toBe('Today');
41
42
  });
42
43
  });
43
- describe('formatTime', ()=>{
44
- it('formats a UTC ISO string to local h:mm AM/PM', ()=>{
45
- expect((0, _formatDateAndTime.formatTime)('2024-06-15T15:36:45.000Z')).toBe('3:36 PM');
44
+ (0, _vitest.describe)('formatTime', ()=>{
45
+ (0, _vitest.it)('formats a UTC ISO string to local h:mm AM/PM', ()=>{
46
+ (0, _vitest.expect)((0, _formatDateAndTime.formatTime)('2024-06-15T15:36:45.000Z')).toBe('3:36 PM');
46
47
  });
47
- it('formats midnight UTC correctly', ()=>{
48
- expect((0, _formatDateAndTime.formatTime)('2024-06-15T00:00:00.000Z')).toBe('12:00 AM');
48
+ (0, _vitest.it)('formats midnight UTC correctly', ()=>{
49
+ (0, _vitest.expect)((0, _formatDateAndTime.formatTime)('2024-06-15T00:00:00.000Z')).toBe('12:00 AM');
49
50
  });
50
- it('formats noon UTC correctly', ()=>{
51
- expect((0, _formatDateAndTime.formatTime)('2024-06-15T12:00:00.000Z')).toBe('12:00 PM');
51
+ (0, _vitest.it)('formats noon UTC correctly', ()=>{
52
+ (0, _vitest.expect)((0, _formatDateAndTime.formatTime)('2024-06-15T12:00:00.000Z')).toBe('12:00 PM');
52
53
  });
53
- it('timezone shift: two UTC times 1 hour apart produce different outputs', ()=>{
54
- expect((0, _formatDateAndTime.formatTime)('2024-06-15T10:00:00.000Z')).toBe('10:00 AM');
55
- expect((0, _formatDateAndTime.formatTime)('2024-06-15T11:00:00.000Z')).toBe('11:00 AM');
54
+ (0, _vitest.it)('timezone shift: two UTC times 1 hour apart produce different outputs', ()=>{
55
+ (0, _vitest.expect)((0, _formatDateAndTime.formatTime)('2024-06-15T10:00:00.000Z')).toBe('10:00 AM');
56
+ (0, _vitest.expect)((0, _formatDateAndTime.formatTime)('2024-06-15T11:00:00.000Z')).toBe('11:00 AM');
56
57
  });
57
- it('accepts a Date object', ()=>{
58
- expect((0, _formatDateAndTime.formatTime)(new Date('2024-06-15T15:36:45.000Z'))).toBe('3:36 PM');
58
+ (0, _vitest.it)('accepts a Date object', ()=>{
59
+ (0, _vitest.expect)((0, _formatDateAndTime.formatTime)(new Date('2024-06-15T15:36:45.000Z'))).toBe('3:36 PM');
59
60
  });
60
61
  });
61
- describe('formatDateAndTime', ()=>{
62
- it('combines date and time with " at " separator', ()=>{
63
- expect((0, _formatDateAndTime.formatDateAndTime)('2024-06-15T15:36:45.000Z')).toBe('Today, 15 Jun 2024 at 3:36 PM');
62
+ (0, _vitest.describe)('formatDateAndTime', ()=>{
63
+ (0, _vitest.it)('combines date and time with " at " separator', ()=>{
64
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDateAndTime)('2024-06-15T15:36:45.000Z')).toBe('Today, 15 Jun 2024 at 3:36 PM');
64
65
  });
65
- it('passes short flag through to date portion', ()=>{
66
- expect((0, _formatDateAndTime.formatDateAndTime)('2024-06-15T15:36:45.000Z', true)).toBe('Today at 3:36 PM');
66
+ (0, _vitest.it)('passes short flag through to date portion', ()=>{
67
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDateAndTime)('2024-06-15T15:36:45.000Z', true)).toBe('Today at 3:36 PM');
67
68
  });
68
- it('works for a past date', ()=>{
69
- expect((0, _formatDateAndTime.formatDateAndTime)('2024-06-01T08:00:00.000Z')).toBe('Sat, 01 Jun 2024 at 8:00 AM');
69
+ (0, _vitest.it)('works for a past date', ()=>{
70
+ (0, _vitest.expect)((0, _formatDateAndTime.formatDateAndTime)('2024-06-01T08:00:00.000Z')).toBe('Sat, 01 Jun 2024 at 8:00 AM');
70
71
  });
71
72
  });