44 */
55
66import React from 'react' ;
7- import { mount } from 'enzyme ' ;
7+ import { render , waitFor } from '@testing-library/react ' ;
88import {
99 notificationServiceMock ,
1010 httpServiceMock ,
@@ -19,32 +19,53 @@ httpClientMock.get.mockResolvedValue({
1919 response : { anomalyResult : { anomalies : [ ] , featureData : [ ] } , detector : { } } ,
2020} ) ;
2121
22- const mockedRender = jest . fn ( ) . mockImplementation ( ( ) => null ) ;
23- function getMountWrapper ( ) {
24- return mount (
25- < CoreContext . Provider value = { { http : httpClientMock } } >
26- < AnomalyDetectorData detectorId = "randomId" render = { mockedRender } />
27- </ CoreContext . Provider >
28- ) ;
29- }
30-
3122describe ( 'AnomalyDetectorData' , ( ) => {
3223 const notifications = notificationServiceMock . createStartContract ( ) ;
3324 setNotifications ( notifications ) ;
3425 const httpClient = httpServiceMock . createStartContract ( ) ;
3526 setClient ( httpClient ) ;
27+
3628 beforeEach ( ( ) => {
3729 jest . clearAllMocks ( ) ;
3830 } ) ;
39- test ( 'calls preview api call on mount' , ( ) => {
40- const getPreviewData = jest . spyOn ( AnomalyDetectorData . prototype , 'getPreviewData' ) ;
41- getMountWrapper ( ) ;
42- expect ( getPreviewData ) . toHaveBeenCalled ( ) ;
43- expect ( getPreviewData ) . toHaveBeenCalledTimes ( 1 ) ;
31+
32+ test ( 'calls render function on mount' , async ( ) => {
33+ const mockRender = jest . fn ( ) . mockImplementation ( ( ) => < div > Rendered</ div > ) ;
34+
35+ render (
36+ < CoreContext . Provider value = { { http : httpClientMock } } >
37+ < AnomalyDetectorData detectorId = "randomId" render = { mockRender } />
38+ </ CoreContext . Provider >
39+ ) ;
40+
41+ await waitFor (
42+ ( ) => {
43+ expect ( mockRender ) . toHaveBeenCalled ( ) ;
44+ } ,
45+ { timeout : 3000 }
46+ ) ;
4447 } ) ;
45- test ( 'calls render with anomalyResult' , ( ) => {
46- const wrapper = getMountWrapper ( ) ;
47- expect ( mockedRender ) . toHaveBeenCalled ( ) ;
48- expect ( mockedRender ) . toHaveBeenCalledWith ( wrapper . state ( ) ) ;
48+
49+ test ( 'calls render with anomalyResult' , async ( ) => {
50+ const mockRender = jest . fn ( ) . mockImplementation ( ( ) => < div > Rendered</ div > ) ;
51+
52+ render (
53+ < CoreContext . Provider value = { { http : httpClientMock } } >
54+ < AnomalyDetectorData detectorId = "randomId" render = { mockRender } />
55+ </ CoreContext . Provider >
56+ ) ;
57+
58+ await waitFor (
59+ ( ) => {
60+ expect ( mockRender ) . toHaveBeenCalled ( ) ;
61+ } ,
62+ { timeout : 3000 }
63+ ) ;
64+
65+ expect ( mockRender ) . toHaveBeenCalledWith (
66+ expect . objectContaining ( {
67+ anomalyResult : expect . any ( Object ) ,
68+ } )
69+ ) ;
4970 } ) ;
5071} ) ;
0 commit comments