@@ -7,16 +7,17 @@ import { FeedbackForm } from '../../src/js/feedback/FeedbackForm';
77import type { FeedbackFormProps } from '../../src/js/feedback/FeedbackForm.types' ;
88
99const mockOnFormClose = jest . fn ( ) ;
10+ const mockGetUser = jest . fn ( ( ) => ( {
11+ email : 'test@example.com' ,
12+ name : 'Test User' ,
13+ } ) ) ;
1014
1115jest . spyOn ( Alert , 'alert' ) ;
1216
1317jest . mock ( '@sentry/core' , ( ) => ( {
1418 captureFeedback : jest . fn ( ) ,
1519 getCurrentScope : jest . fn ( ( ) => ( {
16- getUser : jest . fn ( ( ) => ( {
17- email : 'test@example.com' ,
18- name : 'Test User' ,
19- } ) ) ,
20+ getUser : mockGetUser ,
2021 } ) ) ,
2122 lastEventId : jest . fn ( ) ,
2223} ) ) ;
@@ -68,6 +69,17 @@ describe('FeedbackForm', () => {
6869 expect ( emailInput . props . value ) . toBe ( 'test@example.com' ) ;
6970 } ) ;
7071
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+
7183 it ( 'shows an error message if required fields are empty' , async ( ) => {
7284 const { getByText } = render ( < FeedbackForm { ...defaultProps } /> ) ;
7385
0 commit comments