@@ -7,16 +7,17 @@ import { FeedbackForm } from '../../src/js/feedback/FeedbackForm';
7
7
import type { FeedbackFormProps } from '../../src/js/feedback/FeedbackForm.types' ;
8
8
9
9
const mockOnFormClose = jest . fn ( ) ;
10
+ const mockGetUser = jest . fn ( ( ) => ( {
11
+
12
+ name : 'Test User' ,
13
+ } ) ) ;
10
14
11
15
jest . spyOn ( Alert , 'alert' ) ;
12
16
13
17
jest . mock ( '@sentry/core' , ( ) => ( {
14
18
captureFeedback : jest . fn ( ) ,
15
19
getCurrentScope : jest . fn ( ( ) => ( {
16
- getUser : jest . fn ( ( ) => ( {
17
-
18
- name : 'Test User' ,
19
- } ) ) ,
20
+ getUser : mockGetUser ,
20
21
} ) ) ,
21
22
lastEventId : jest . fn ( ) ,
22
23
} ) ) ;
@@ -68,6 +69,17 @@ describe('FeedbackForm', () => {
68
69
expect ( emailInput . props . value ) . toBe ( '[email protected] ' ) ;
69
70
} ) ;
70
71
72
+ it ( 'ensure getUser is called only after the component is rendered' , ( ) => {
73
+ // Ensure getUser is not called before render
74
+ expect ( mockGetUser ) . not . toHaveBeenCalled ( ) ;
75
+
76
+ // Render the component
77
+ render ( < FeedbackForm /> ) ;
78
+
79
+ // After rendering, check that getUser was called twice (email and name)
80
+ expect ( mockGetUser ) . toHaveBeenCalledTimes ( 2 ) ;
81
+ } ) ;
82
+
71
83
it ( 'shows an error message if required fields are empty' , async ( ) => {
72
84
const { getByText } = render ( < FeedbackForm { ...defaultProps } /> ) ;
73
85
0 commit comments