@portabletext/editor 1.44.9 → 1.44.11

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 (26) hide show
  1. package/lib/_chunks-cjs/editor-provider.cjs +1 -1
  2. package/lib/_chunks-cjs/editor-provider.cjs.map +1 -1
  3. package/lib/_chunks-es/editor-provider.js +1 -1
  4. package/lib/_chunks-es/editor-provider.js.map +1 -1
  5. package/lib/index.cjs +20 -5
  6. package/lib/index.cjs.map +1 -1
  7. package/lib/index.js +20 -5
  8. package/lib/index.js.map +1 -1
  9. package/package.json +1 -1
  10. package/src/editor/Editable.tsx +3 -2
  11. package/src/editor/__tests__/PortableTextEditor.test.tsx +10 -0
  12. package/src/editor/__tests__/PortableTextEditorTester.tsx +3 -17
  13. package/src/editor/__tests__/RangeDecorations.test.tsx +6 -0
  14. package/src/editor/__tests__/pteWarningsSelfSolving.test.tsx +12 -5
  15. package/src/editor/__tests__/sync-value.test.tsx +5 -0
  16. package/src/editor/plugins/__tests__/withEditableAPIDelete.test.tsx +8 -3
  17. package/src/editor/plugins/__tests__/withEditableAPIGetFragment.test.tsx +3 -0
  18. package/src/editor/plugins/__tests__/withEditableAPIInsert.test.tsx +20 -12
  19. package/src/editor/plugins/__tests__/withEditableAPISelectionsOverlapping.test.tsx +5 -0
  20. package/src/editor/plugins/__tests__/withPortableTextLists.test.tsx +2 -0
  21. package/src/editor/plugins/__tests__/withPortableTextMarkModel.test.tsx +10 -289
  22. package/src/editor/plugins/__tests__/withPortableTextSelections.test.tsx +2 -0
  23. package/src/editor/plugins/__tests__/withUndoRedo.test.tsx +3 -0
  24. package/src/editor/range-decorations-machine.ts +21 -3
  25. package/src/editor/sync-machine.ts +8 -6
  26. package/src/internal-utils/__tests__/valueNormalization.test.tsx +2 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@portabletext/editor",
3
- "version": "1.44.9",
3
+ "version": "1.44.11",
4
4
  "description": "Portable Text Editor made in React",
5
5
  "keywords": [
6
6
  "sanity",
@@ -175,10 +175,11 @@ export const PortableTextEditable = forwardRef<
175
175
 
176
176
  const rangeDecorationsActor = useActorRef(rangeDecorationsMachine, {
177
177
  input: {
178
+ rangeDecorations: rangeDecorations ?? [],
178
179
  readOnly,
179
- slateEditor,
180
180
  schema: schemaTypes,
181
- rangeDecorations: rangeDecorations ?? [],
181
+ slateEditor,
182
+ skipSetup: !editorActor.getSnapshot().matches({setup: 'setting up'}),
182
183
  },
183
184
  })
184
185
  useSelector(rangeDecorationsActor, (s) => s.context.updateCount)
@@ -3,6 +3,7 @@ import {render, waitFor} from '@testing-library/react'
3
3
  import {createRef, type RefObject} from 'react'
4
4
  import {describe, expect, it, vi} from 'vitest'
5
5
  import type {EditorSelection} from '../..'
6
+ import {createTestKeyGenerator} from '../../internal-utils/test-key-generator'
6
7
  import {PortableTextEditor} from '../PortableTextEditor'
7
8
  import {PortableTextEditorTester, schemaType} from './PortableTextEditorTester'
8
9
 
@@ -21,6 +22,7 @@ describe('initialization', () => {
21
22
  const onChange = vi.fn()
22
23
  const {container} = render(
23
24
  <PortableTextEditorTester
25
+ keyGenerator={createTestKeyGenerator()}
24
26
  onChange={onChange}
25
27
  renderPlaceholder={renderPlaceholder}
26
28
  ref={editorRef}
@@ -87,6 +89,7 @@ describe('initialization', () => {
87
89
  const editorRef = createRef<PortableTextEditor>()
88
90
  render(
89
91
  <PortableTextEditorTester
92
+ keyGenerator={createTestKeyGenerator()}
90
93
  ref={editorRef}
91
94
  onChange={onChange}
92
95
  schemaType={schemaType}
@@ -118,6 +121,7 @@ describe('initialization', () => {
118
121
  const onChange = vi.fn()
119
122
  render(
120
123
  <PortableTextEditorTester
124
+ keyGenerator={createTestKeyGenerator()}
121
125
  onChange={onChange}
122
126
  ref={editorRef}
123
127
  selection={initialSelection}
@@ -162,6 +166,7 @@ describe('initialization', () => {
162
166
  const onChange = vi.fn()
163
167
  const {rerender} = render(
164
168
  <PortableTextEditorTester
169
+ keyGenerator={createTestKeyGenerator()}
165
170
  onChange={onChange}
166
171
  ref={editorRef}
167
172
  selection={initialSelection}
@@ -195,6 +200,7 @@ describe('initialization', () => {
195
200
  })
196
201
  rerender(
197
202
  <PortableTextEditorTester
203
+ keyGenerator={createTestKeyGenerator()}
198
204
  onChange={onChange}
199
205
  ref={editorRef}
200
206
  selection={newSelection}
@@ -221,6 +227,7 @@ describe('initialization', () => {
221
227
  const onChange = vi.fn()
222
228
  render(
223
229
  <PortableTextEditorTester
230
+ keyGenerator={createTestKeyGenerator()}
224
231
  onChange={onChange}
225
232
  ref={editorRef}
226
233
  selection={initialSelection}
@@ -266,6 +273,7 @@ describe('initialization', () => {
266
273
  await waitFor(() => {
267
274
  render(
268
275
  <PortableTextEditorTester
276
+ keyGenerator={createTestKeyGenerator()}
269
277
  onChange={onChange}
270
278
  ref={editorRef}
271
279
  selection={initialSelection}
@@ -298,6 +306,7 @@ describe('initialization', () => {
298
306
  const newOnChange = vi.fn()
299
307
  _rerender(
300
308
  <PortableTextEditorTester
309
+ keyGenerator={createTestKeyGenerator()}
301
310
  onChange={newOnChange}
302
311
  ref={editorRef}
303
312
  selection={initialSelection}
@@ -350,6 +359,7 @@ describe('initialization', () => {
350
359
  const onChange = vi.fn()
351
360
  render(
352
361
  <PortableTextEditorTester
362
+ keyGenerator={createTestKeyGenerator()}
353
363
  onChange={onChange}
354
364
  ref={editorRef}
355
365
  selection={initialSelection}
@@ -1,12 +1,6 @@
1
1
  import {Schema} from '@sanity/schema'
2
2
  import {defineArrayMember, defineField} from '@sanity/types'
3
- import {
4
- forwardRef,
5
- useCallback,
6
- useEffect,
7
- useMemo,
8
- type ForwardedRef,
9
- } from 'react'
3
+ import {forwardRef, useMemo, type ForwardedRef} from 'react'
10
4
  import {vi} from 'vitest'
11
5
  import {
12
6
  PortableTextEditable,
@@ -77,8 +71,6 @@ const schema = Schema.compile({
77
71
  types: [portableTextType, colorAndLink],
78
72
  })
79
73
 
80
- let key = 0
81
-
82
74
  export const PortableTextEditorTester = forwardRef(
83
75
  function PortableTextEditorTester(
84
76
  props: Partial<
@@ -90,23 +82,17 @@ export const PortableTextEditorTester = forwardRef(
90
82
  schemaType: PortableTextEditorProps['schemaType']
91
83
  selection?: PortableTextEditableProps['selection']
92
84
  value?: PortableTextEditorProps['value']
85
+ keyGenerator: PortableTextEditorProps['keyGenerator']
93
86
  },
94
87
  ref: ForwardedRef<PortableTextEditor>,
95
88
  ) {
96
- useEffect(() => {
97
- key = 0
98
- }, [])
99
- const _keyGenerator = useCallback(() => {
100
- key++
101
- return `${key}`
102
- }, [])
103
89
  const onChange = useMemo(() => props.onChange || vi.fn(), [props.onChange])
104
90
  return (
105
91
  <PortableTextEditor
106
92
  schemaType={props.schemaType}
107
93
  onChange={onChange}
108
94
  value={props.value || undefined}
109
- keyGenerator={_keyGenerator}
95
+ keyGenerator={props.keyGenerator}
110
96
  ref={ref}
111
97
  >
112
98
  <PortableTextEditable
@@ -3,6 +3,7 @@ import {render, waitFor} from '@testing-library/react'
3
3
  import {createRef, type ReactNode, type RefObject} from 'react'
4
4
  import {describe, expect, it, vi} from 'vitest'
5
5
  import type {RangeDecoration} from '../..'
6
+ import {createTestKeyGenerator} from '../../internal-utils/test-key-generator'
6
7
  import type {PortableTextEditor} from '../PortableTextEditor'
7
8
  import {PortableTextEditorTester, schemaType} from './PortableTextEditorTester'
8
9
 
@@ -38,6 +39,7 @@ describe('RangeDecorations', () => {
38
39
  const {rerender} = await waitFor(() =>
39
40
  render(
40
41
  <PortableTextEditorTester
42
+ keyGenerator={createTestKeyGenerator()}
41
43
  onChange={onChange}
42
44
  rangeDecorations={rangeDecorations}
43
45
  ref={editorRef}
@@ -64,6 +66,7 @@ describe('RangeDecorations', () => {
64
66
  // Re-render with the same range decorations
65
67
  rerender(
66
68
  <PortableTextEditorTester
69
+ keyGenerator={createTestKeyGenerator()}
67
70
  onChange={onChange}
68
71
  rangeDecorations={rangeDecorations}
69
72
  ref={editorRef}
@@ -86,6 +89,7 @@ describe('RangeDecorations', () => {
86
89
  ]
87
90
  rerender(
88
91
  <PortableTextEditorTester
92
+ keyGenerator={createTestKeyGenerator()}
89
93
  onChange={onChange}
90
94
  rangeDecorations={rangeDecorations}
91
95
  ref={editorRef}
@@ -111,6 +115,7 @@ describe('RangeDecorations', () => {
111
115
  ]
112
116
  rerender(
113
117
  <PortableTextEditorTester
118
+ keyGenerator={createTestKeyGenerator()}
114
119
  onChange={onChange}
115
120
  rangeDecorations={rangeDecorations}
116
121
  ref={editorRef}
@@ -137,6 +142,7 @@ describe('RangeDecorations', () => {
137
142
  ]
138
143
  rerender(
139
144
  <PortableTextEditorTester
145
+ keyGenerator={createTestKeyGenerator()}
140
146
  onChange={onChange}
141
147
  rangeDecorations={rangeDecorations}
142
148
  ref={editorRef}
@@ -2,6 +2,7 @@ import type {PortableTextBlock} from '@sanity/types'
2
2
  import {render, waitFor} from '@testing-library/react'
3
3
  import {createRef, type RefObject} from 'react'
4
4
  import {describe, expect, it, vi} from 'vitest'
5
+ import {createTestKeyGenerator} from '../../internal-utils/test-key-generator'
5
6
  import {PortableTextEditor} from '../PortableTextEditor'
6
7
  import {PortableTextEditorTester, schemaType} from './PortableTextEditorTester'
7
8
 
@@ -27,6 +28,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
27
28
  const onChange = vi.fn()
28
29
  render(
29
30
  <PortableTextEditorTester
31
+ keyGenerator={createTestKeyGenerator()}
30
32
  onChange={onChange}
31
33
  ref={editorRef}
32
34
  schemaType={schemaType}
@@ -48,7 +50,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
48
50
  _type: 'myTestBlockType',
49
51
  children: [
50
52
  {
51
- _key: '2',
53
+ _key: 'k3',
52
54
  _type: 'span',
53
55
  text: 'Hello with a new key',
54
56
  marks: [],
@@ -83,6 +85,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
83
85
  const onChange = vi.fn()
84
86
  render(
85
87
  <PortableTextEditorTester
88
+ keyGenerator={createTestKeyGenerator()}
86
89
  onChange={onChange}
87
90
  ref={editorRef}
88
91
  schemaType={schemaType}
@@ -140,6 +143,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
140
143
  const onChange = vi.fn()
141
144
  render(
142
145
  <PortableTextEditorTester
146
+ keyGenerator={createTestKeyGenerator()}
143
147
  onChange={onChange}
144
148
  ref={editorRef}
145
149
  schemaType={schemaType}
@@ -162,7 +166,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
162
166
  _type: 'myTestBlockType',
163
167
  children: [
164
168
  {
165
- _key: '2',
169
+ _key: 'k3',
166
170
  _type: 'span',
167
171
  text: '',
168
172
  marks: [],
@@ -176,7 +180,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
176
180
  _type: 'myTestBlockType',
177
181
  children: [
178
182
  {
179
- _key: '4',
183
+ _key: 'k5',
180
184
  _type: 'span',
181
185
  text: '',
182
186
  marks: [],
@@ -212,6 +216,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
212
216
  const onChange = vi.fn()
213
217
  render(
214
218
  <PortableTextEditorTester
219
+ keyGenerator={createTestKeyGenerator()}
215
220
  onChange={onChange}
216
221
  ref={editorRef}
217
222
  schemaType={schemaType}
@@ -276,6 +281,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
276
281
  const onChange = vi.fn()
277
282
  render(
278
283
  <PortableTextEditorTester
284
+ keyGenerator={createTestKeyGenerator()}
279
285
  onChange={onChange}
280
286
  ref={editorRef}
281
287
  schemaType={schemaType}
@@ -319,6 +325,7 @@ describe('when PTE would display warnings, instead it self solves', () => {
319
325
  const onChange = vi.fn()
320
326
  render(
321
327
  <PortableTextEditorTester
328
+ keyGenerator={createTestKeyGenerator()}
322
329
  onChange={onChange}
323
330
  ref={editorRef}
324
331
  schemaType={schemaType}
@@ -337,9 +344,9 @@ describe('when PTE would display warnings, instead it self solves', () => {
337
344
  PortableTextEditor.focus(editorRef.current)
338
345
  expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
339
346
  {
340
- _key: '3',
347
+ _key: 'k2',
341
348
  _type: 'myTestBlockType',
342
- children: [{_key: '4', _type: 'span', marks: [], text: ''}],
349
+ children: [{_key: 'k3', _type: 'span', marks: [], text: ''}],
343
350
  markDefs: [],
344
351
  style: 'normal',
345
352
  },
@@ -1,6 +1,7 @@
1
1
  import {render, waitFor} from '@testing-library/react'
2
2
  import {createRef, type RefObject} from 'react'
3
3
  import {describe, expect, it, vi} from 'vitest'
4
+ import {createTestKeyGenerator} from '../../internal-utils/test-key-generator'
4
5
  import {PortableTextEditor} from '../PortableTextEditor'
5
6
  import {PortableTextEditorTester, schemaType} from './PortableTextEditorTester'
6
7
 
@@ -43,6 +44,7 @@ describe('useSyncValue', () => {
43
44
  ]
44
45
  const {rerender} = render(
45
46
  <PortableTextEditorTester
47
+ keyGenerator={createTestKeyGenerator()}
46
48
  onChange={onChange}
47
49
  ref={editorRef}
48
50
  schemaType={schemaType}
@@ -62,6 +64,7 @@ describe('useSyncValue', () => {
62
64
 
63
65
  rerender(
64
66
  <PortableTextEditorTester
67
+ keyGenerator={createTestKeyGenerator()}
65
68
  onChange={onChange}
66
69
  ref={editorRef}
67
70
  schemaType={schemaType}
@@ -99,6 +102,7 @@ describe('useSyncValue', () => {
99
102
  ]
100
103
  const {rerender} = render(
101
104
  <PortableTextEditorTester
105
+ keyGenerator={createTestKeyGenerator()}
102
106
  onChange={onChange}
103
107
  ref={editorRef}
104
108
  schemaType={schemaType}
@@ -118,6 +122,7 @@ describe('useSyncValue', () => {
118
122
 
119
123
  rerender(
120
124
  <PortableTextEditorTester
125
+ keyGenerator={createTestKeyGenerator()}
121
126
  onChange={onChange}
122
127
  ref={editorRef}
123
128
  schemaType={schemaType}
@@ -5,6 +5,7 @@ import {
5
5
  PortableTextEditorTester,
6
6
  schemaType,
7
7
  } from '../../__tests__/PortableTextEditorTester'
8
+ import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
8
9
  import {PortableTextEditor} from '../../PortableTextEditor'
9
10
 
10
11
  const initialValue = [
@@ -53,6 +54,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
53
54
  ref={editorRef}
54
55
  schemaType={schemaType}
55
56
  value={initialValue}
57
+ keyGenerator={createTestKeyGenerator()}
56
58
  />,
57
59
  )
58
60
 
@@ -103,6 +105,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
103
105
  const onChange = vi.fn()
104
106
  render(
105
107
  <PortableTextEditorTester
108
+ keyGenerator={createTestKeyGenerator()}
106
109
  onChange={onChange}
107
110
  ref={editorRef}
108
111
  schemaType={schemaType}
@@ -137,11 +140,11 @@ describe('plugin:withEditableAPI: .delete()', () => {
137
140
  .toMatchInlineSnapshot(`
138
141
  [
139
142
  {
140
- "_key": "1",
143
+ "_key": "k2",
141
144
  "_type": "myTestBlockType",
142
145
  "children": [
143
146
  {
144
- "_key": "2",
147
+ "_key": "k3",
145
148
  "_type": "span",
146
149
  "marks": [],
147
150
  "text": "",
@@ -162,6 +165,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
162
165
 
163
166
  render(
164
167
  <PortableTextEditorTester
168
+ keyGenerator={createTestKeyGenerator()}
165
169
  onChange={onChange}
166
170
  ref={editorRef}
167
171
  schemaType={schemaType}
@@ -222,7 +226,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
222
226
  "_type": "myTestBlockType",
223
227
  "children": [
224
228
  {
225
- "_key": "1",
229
+ "_key": "k2",
226
230
  "_type": "span",
227
231
  "marks": [],
228
232
  "text": "",
@@ -247,6 +251,7 @@ describe('plugin:withEditableAPI: .delete()', () => {
247
251
  ref={editorRef}
248
252
  schemaType={schemaType}
249
253
  value={initialValue}
254
+ keyGenerator={createTestKeyGenerator()}
250
255
  />,
251
256
  )
252
257
 
@@ -6,6 +6,7 @@ import {
6
6
  PortableTextEditorTester,
7
7
  schemaType,
8
8
  } from '../../__tests__/PortableTextEditorTester'
9
+ import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
9
10
  import {PortableTextEditor} from '../../PortableTextEditor'
10
11
 
11
12
  const initialValue = [
@@ -56,6 +57,7 @@ describe('plugin:withEditableAPI: .getFragment()', () => {
56
57
 
57
58
  render(
58
59
  <PortableTextEditorTester
60
+ keyGenerator={createTestKeyGenerator()}
59
61
  onChange={onChange}
60
62
  ref={editorRef}
61
63
  schemaType={schemaType}
@@ -97,6 +99,7 @@ describe('plugin:withEditableAPI: .getFragment()', () => {
97
99
 
98
100
  render(
99
101
  <PortableTextEditorTester
102
+ keyGenerator={createTestKeyGenerator()}
100
103
  onChange={onChange}
101
104
  ref={editorRef}
102
105
  schemaType={schemaType}
@@ -5,6 +5,7 @@ import {
5
5
  PortableTextEditorTester,
6
6
  schemaType,
7
7
  } from '../../__tests__/PortableTextEditorTester'
8
+ import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
8
9
  import {PortableTextEditor} from '../../PortableTextEditor'
9
10
 
10
11
  const initialValue = [
@@ -62,6 +63,7 @@ describe('plugin:withEditableAPI: .insertChild()', () => {
62
63
 
63
64
  render(
64
65
  <PortableTextEditorTester
66
+ keyGenerator={createTestKeyGenerator()}
65
67
  onChange={onChange}
66
68
  ref={editorRef}
67
69
  schemaType={schemaType}
@@ -111,12 +113,12 @@ describe('plugin:withEditableAPI: .insertChild()', () => {
111
113
  text: 'Block A',
112
114
  },
113
115
  {
114
- _key: '2',
116
+ _key: 'k3',
115
117
  _type: 'someObject',
116
118
  color: 'red',
117
119
  },
118
120
  {
119
- _key: '3',
121
+ _key: 'k4',
120
122
  _type: 'span',
121
123
  marks: [],
122
124
  text: '',
@@ -155,12 +157,12 @@ describe('plugin:withEditableAPI: .insertChild()', () => {
155
157
  text: 'Block A',
156
158
  },
157
159
  {
158
- _key: '2',
160
+ _key: 'k3',
159
161
  _type: 'someObject',
160
162
  color: 'red',
161
163
  },
162
164
  {
163
- _key: '5',
165
+ _key: 'k6',
164
166
  _type: 'span',
165
167
  marks: [],
166
168
  text: ' ',
@@ -172,8 +174,8 @@ describe('plugin:withEditableAPI: .insertChild()', () => {
172
174
  ])
173
175
 
174
176
  expect(PortableTextEditor.getSelection(editorRef.current)).toEqual({
175
- anchor: {path: [{_key: 'a'}, 'children', {_key: '5'}], offset: 1},
176
- focus: {path: [{_key: 'a'}, 'children', {_key: '5'}], offset: 1},
177
+ anchor: {path: [{_key: 'a'}, 'children', {_key: 'k6'}], offset: 1},
178
+ focus: {path: [{_key: 'a'}, 'children', {_key: 'k6'}], offset: 1},
177
179
  backward: false,
178
180
  })
179
181
  }
@@ -208,6 +210,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
208
210
  schemaType={schemaType}
209
211
  value={emptyTextBlock}
210
212
  onChange={onChange}
213
+ keyGenerator={createTestKeyGenerator()}
211
214
  />,
212
215
  )
213
216
 
@@ -240,7 +243,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
240
243
  await waitFor(() => {
241
244
  if (editorRef.current) {
242
245
  expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
243
- {_key: '1', _type: 'someObject', color: 'red'},
246
+ {_key: 'k2', _type: 'someObject', color: 'red'},
244
247
  ])
245
248
  }
246
249
  })
@@ -256,6 +259,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
256
259
  schemaType={schemaType}
257
260
  value={initialValue}
258
261
  onChange={onChange}
262
+ keyGenerator={createTestKeyGenerator()}
259
263
  />,
260
264
  )
261
265
 
@@ -292,7 +296,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
292
296
  if (editorRef.current) {
293
297
  expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
294
298
  ...initialValue,
295
- {_key: '1', _type: 'someObject', color: 'red'},
299
+ {_key: 'k2', _type: 'someObject', color: 'red'},
296
300
  ])
297
301
  }
298
302
  })
@@ -308,6 +312,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
308
312
  ref={editorRef}
309
313
  schemaType={schemaType}
310
314
  value={initialValue}
315
+ keyGenerator={createTestKeyGenerator()}
311
316
  />,
312
317
  )
313
318
 
@@ -345,7 +350,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
345
350
  await waitFor(() => {
346
351
  if (editorRef.current) {
347
352
  expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
348
- {_key: '1', _type: 'someObject', color: 'red'},
353
+ {_key: 'k2', _type: 'someObject', color: 'red'},
349
354
  ...initialValue,
350
355
  ])
351
356
  }
@@ -366,6 +371,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
366
371
  schemaType={schemaType}
367
372
  value={value}
368
373
  onChange={onChange}
374
+ keyGenerator={createTestKeyGenerator()}
369
375
  />,
370
376
  )
371
377
 
@@ -402,7 +408,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
402
408
  if (editorRef.current) {
403
409
  expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
404
410
  ...value,
405
- {_key: '1', _type: 'someObject', color: 'yellow'},
411
+ {_key: 'k2', _type: 'someObject', color: 'yellow'},
406
412
  ])
407
413
  }
408
414
  })
@@ -422,6 +428,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
422
428
  schemaType={schemaType}
423
429
  value={value}
424
430
  onChange={onChange}
431
+ keyGenerator={createTestKeyGenerator()}
425
432
  />,
426
433
  )
427
434
 
@@ -455,7 +462,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
455
462
  if (editorRef.current) {
456
463
  expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
457
464
  value[0],
458
- {_key: '1', _type: 'someObject', color: 'yellow'},
465
+ {_key: 'k2', _type: 'someObject', color: 'yellow'},
459
466
  value[1],
460
467
  ])
461
468
  }
@@ -473,6 +480,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
473
480
  schemaType={schemaType}
474
481
  value={value}
475
482
  onChange={onChange}
483
+ keyGenerator={createTestKeyGenerator()}
476
484
  />,
477
485
  )
478
486
 
@@ -504,7 +512,7 @@ describe('plugin:withEditableAPI: .insertBlock()', () => {
504
512
  if (editorRef.current) {
505
513
  expect(PortableTextEditor.getValue(editorRef.current)).toEqual([
506
514
  value[0],
507
- {_key: '1', _type: 'someObject', color: 'yellow'},
515
+ {_key: 'k2', _type: 'someObject', color: 'yellow'},
508
516
  ])
509
517
  }
510
518
  })
@@ -6,6 +6,7 @@ import {
6
6
  PortableTextEditorTester,
7
7
  schemaType,
8
8
  } from '../../__tests__/PortableTextEditorTester'
9
+ import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
9
10
  import {PortableTextEditor} from '../../PortableTextEditor'
10
11
 
11
12
  const INITIAL_VALUE: PortableTextBlock[] = [
@@ -31,6 +32,7 @@ describe('plugin:withEditableAPI: .isSelectionsOverlapping', () => {
31
32
  const onChange = vi.fn()
32
33
  render(
33
34
  <PortableTextEditorTester
35
+ keyGenerator={createTestKeyGenerator()}
34
36
  onChange={onChange}
35
37
  ref={editorRef}
36
38
  schemaType={schemaType}
@@ -65,6 +67,7 @@ describe('plugin:withEditableAPI: .isSelectionsOverlapping', () => {
65
67
  const onChange = vi.fn()
66
68
  render(
67
69
  <PortableTextEditorTester
70
+ keyGenerator={createTestKeyGenerator()}
68
71
  onChange={onChange}
69
72
  ref={editorRef}
70
73
  schemaType={schemaType}
@@ -99,6 +102,7 @@ describe('plugin:withEditableAPI: .isSelectionsOverlapping', () => {
99
102
  const onChange = vi.fn()
100
103
  render(
101
104
  <PortableTextEditorTester
105
+ keyGenerator={createTestKeyGenerator()}
102
106
  onChange={onChange}
103
107
  ref={editorRef}
104
108
  schemaType={schemaType}
@@ -133,6 +137,7 @@ describe('plugin:withEditableAPI: .isSelectionsOverlapping', () => {
133
137
  const onChange = vi.fn()
134
138
  render(
135
139
  <PortableTextEditorTester
140
+ keyGenerator={createTestKeyGenerator()}
136
141
  onChange={onChange}
137
142
  ref={editorRef}
138
143
  schemaType={schemaType}
@@ -5,6 +5,7 @@ import {
5
5
  PortableTextEditorTester,
6
6
  schemaType,
7
7
  } from '../../__tests__/PortableTextEditorTester'
8
+ import {createTestKeyGenerator} from '../../../internal-utils/test-key-generator'
8
9
  import {PortableTextEditor} from '../../PortableTextEditor'
9
10
 
10
11
  describe('plugin:withPortableTextLists', () => {
@@ -46,6 +47,7 @@ describe('plugin:withPortableTextLists', () => {
46
47
  await waitFor(() => {
47
48
  render(
48
49
  <PortableTextEditorTester
50
+ keyGenerator={createTestKeyGenerator()}
49
51
  onChange={onChange}
50
52
  ref={editorRef}
51
53
  schemaType={schemaType}