1
1
import { ActionName } from '@sensenet/control-mapper'
2
- import { mount , ReactWrapper } from 'enzyme'
2
+ import { mount } from 'enzyme'
3
3
import React from 'react'
4
4
import { act } from 'react-dom/test-utils'
5
5
import { defaultLocalization , HtmlEditor } from '../src/fieldcontrols'
6
6
7
7
jest . mock ( 'react-monaco-editor' , ( ) =>
8
8
jest . fn ( ( props ) => {
9
- return < div data-test = "mock-monaco-editor" > { props . value } </ div >
9
+ return (
10
+ < div data-test = "mock-monaco-editor" onChange = { props . onChange } >
11
+ { props . value }
12
+ </ div >
13
+ )
10
14
} ) ,
11
15
)
12
16
13
17
describe ( 'Html Editor' , ( ) => {
14
18
it ( 'should display the content' , async ( ) => {
19
+ const onChange = jest . fn ( )
15
20
const props = {
16
21
actionName : 'edit' as ActionName ,
17
22
settings : {
@@ -26,18 +31,24 @@ describe('Html Editor', () => {
26
31
} ,
27
32
localization : defaultLocalization ,
28
33
fieldValue : '<p>Test</p>' ,
29
- fieldOnChange : jest . fn ( ) ,
34
+
35
+ onChange,
30
36
}
31
37
32
- let wrapper : ReactWrapper < any , Readonly < { } > , React . Component < { } , { } , any > >
38
+ const wrapper = mount ( < HtmlEditor { ... props } /> )
33
39
34
- await act ( async ( ) => {
35
- wrapper = mount ( < HtmlEditor { ...props } /> )
36
- } )
37
- wrapper ! . update ( )
40
+ wrapper . update ( )
38
41
39
42
const htmlEditorContainer = wrapper ! . find ( '[data-test="html-editor-container"]' )
40
43
41
44
expect ( htmlEditorContainer . text ( ) ) . toBe ( '<p>Test</p>' )
45
+
46
+ const mockMonacoEditor = wrapper . find ( '[data-test="mock-monaco-editor"]' )
47
+
48
+ await act ( async ( ) => {
49
+ mockMonacoEditor . prop ( 'onChange' ) ?.( '<p>Changed Test</p>' as any )
50
+ } )
51
+
52
+ expect ( htmlEditorContainer . text ( ) ) . toBe ( '<p>Changed Test</p>' )
42
53
} )
43
54
} )
0 commit comments