1
+ import { sendTrackEvent } from '@edx/frontend-platform/analytics' ;
1
2
import { shallow } from '@edx/react-unit-test-utils' ;
2
3
3
4
import TranslationSelection from './index' ;
5
+ import { initializeTestStore , render } from '../../../src/setupTest' ;
4
6
5
7
jest . mock ( 'react' , ( ) => ( {
6
8
...jest . requireActual ( 'react' ) ,
@@ -38,6 +40,7 @@ jest.mock('./useSelectLanguage', () => () => ({
38
40
setSelectedLanguage : jest . fn ( ) . mockName ( 'setSelectedLanguage' ) ,
39
41
} ) ) ;
40
42
jest . mock ( '../feedback-widget' , ( ) => 'FeedbackWidget' ) ;
43
+ jest . mock ( '@edx/frontend-platform/analytics' ) ;
41
44
42
45
describe ( '<TranslationSelection />' , ( ) => {
43
46
const props = {
@@ -60,4 +63,22 @@ describe('<TranslationSelection />', () => {
60
63
const wrapper = shallow ( < TranslationSelection { ...props } /> ) ;
61
64
expect ( wrapper . snapshot ) . toMatchSnapshot ( ) ;
62
65
} ) ;
66
+ it ( 'does not send track event when source != target language' , async ( ) => {
67
+ await initializeTestStore ( ) ;
68
+ render ( < TranslationSelection { ...props } /> ) ;
69
+ expect ( sendTrackEvent ) . not . toHaveBeenCalled ( ) ;
70
+ } ) ;
71
+ it ( 'sends track event when source != target language' , async ( ) => {
72
+ await initializeTestStore ( ) ;
73
+ render ( < TranslationSelection { ...props } /> ) ;
74
+ const eventName = 'edx.whole_course_translations.translation_requested' ;
75
+ const eventProperties = {
76
+ courseId : props . courseId ,
77
+ sourceLanguage : props . language ,
78
+ targetLanguage : 'en' ,
79
+ unitId : props . unitId ,
80
+ userId : '123' ,
81
+ } ;
82
+ expect ( sendTrackEvent ) . not . toHaveBeenCalledWith ( eventName , eventProperties ) ;
83
+ } ) ;
63
84
} ) ;
0 commit comments