-
Notifications
You must be signed in to change notification settings - Fork 37
/
edit-dialog-body.test.tsx
58 lines (53 loc) · 1.8 KB
/
edit-dialog-body.test.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import { Repository } from '@sensenet/client-core'
import { RepositoryContext } from '@sensenet/hooks-react'
import { mount } from 'enzyme'
import React from 'react'
import { act } from 'react-dom/test-utils'
import EditPropertiesDialogBody from '../src/components/edit-dialog-body'
import { SharedContext } from '../src/context/shared-context'
import { MaterialDialogProps, mockContent } from './mocks/test-objects'
describe('EditPropertiesDialogBody', () => {
const testprops = {
contentId: 135121,
dialogProps: MaterialDialogProps,
}
const content = mockContent
const shareobject = {
openeditmodal: true,
setOpeneditmodal: jest.fn(),
setEvent: jest.fn(),
opendisplaymodal: false,
setOpendisplaymodal: jest.fn(),
event: content,
refreshcalendar: true,
setRefreshcalendar: jest.fn(),
opennewmodal: true,
setOpennewmodal: jest.fn(),
setOpennoti: jest.fn(),
}
it('call onSubmit', async () => {
const repo = new Repository()
repo.load = function load() {
return Promise.resolve({ d: content } as any)
}
repo.patch = function patch() {
return Promise.resolve({ d: { ...content, Path: '/Root/Path/A' } } as any)
}
let wrapper: any
await act(async () => {
wrapper = mount(
<RepositoryContext.Provider value={repo as any}>
<SharedContext.Provider value={shareobject}>
<EditPropertiesDialogBody {...(testprops as any)} />
</SharedContext.Provider>
</RepositoryContext.Provider>,
)
})
const form = wrapper.update().find('form')
await act(async () => {
form.simulate('submit')
})
expect(shareobject.setEvent).toBeCalledWith({ ...content, Path: '/Root/Path/A' })
expect(shareobject.setRefreshcalendar).toBeCalledWith(!shareobject.refreshcalendar)
})
})