Skip to content

Commit 78e5c57

Browse files
committed
chore: fix translation for verified student only logic
1 parent 1086367 commit 78e5c57

File tree

3 files changed

+22
-25
lines changed

3 files changed

+22
-25
lines changed

.eslintignore

+2
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,5 @@ dist/
33
packages/
44
node_modules/
55
jest.config.js
6+
env.config.jsx
7+
example.env.config.jsx

plugins/UnitTranslationPlugin/index.jsx

+7-3
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,23 @@ import { fetchTranslationConfig } from './data/api';
88

99
const UnitTranslationPlugin = ({ id, courseId, unitId }) => {
1010
const { language } = useModel('coursewareMeta', courseId);
11-
const { verifiedMode } = useModel('courseHomeMeta', courseId);
11+
const { enrollmentMode } = useModel('courseHomeMeta', courseId);
1212
const [translationConfig, setTranslationConfig] = useState({
1313
enabled: false,
1414
availableLanguages: [],
1515
});
1616

17+
const verifiedMode = enrollmentMode === 'verified';
18+
1719
useEffect(() => {
18-
fetchTranslationConfig(courseId).then(setTranslationConfig);
20+
if (verifiedMode) {
21+
fetchTranslationConfig(courseId).then(setTranslationConfig);
22+
}
1923
}, []);
2024

2125
const { enabled, availableLanguages } = translationConfig;
2226

23-
if (!enabled || !language || !availableLanguages.length || !verifiedMode) {
27+
if (!verifiedMode || !enabled || !language || !availableLanguages.length) {
2428
return null;
2529
}
2630

plugins/UnitTranslationPlugin/index.test.jsx

+13-22
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,24 @@ describe('<UnitTranslationPlugin />', () => {
2525
const mockInitialState = ({ enabled = true, availableLanguages = ['en'] }) => {
2626
useState.mockReturnValue([{ enabled, availableLanguages }, jest.fn()]);
2727
};
28+
when(useModel)
29+
.calledWith('coursewareMeta', props.courseId)
30+
.mockReturnValue({ language: 'en' })
31+
.calledWith('courseHomeMeta', props.courseId)
32+
.mockReturnValue({ enrollmentMode: 'verified' });
33+
34+
beforeEach(() => {
35+
jest.clearAllMocks();
36+
});
37+
2838
it('render empty when translation is not enabled', () => {
29-
when(useModel)
30-
.calledWith('coursewareMeta', props.courseId)
31-
.mockReturnValueOnce({ language: 'en' })
32-
.calledWith('courseHomeMeta', props.courseId)
33-
.mockReturnValueOnce({ verifiedMode: { accessExpirationDate: null } });
3439
mockInitialState({ enabled: false });
3540

3641
const wrapper = shallow(<UnitTranslationPlugin {...props} />);
3742

3843
expect(wrapper.isEmptyRender()).toBe(true);
3944
});
4045
it('render empty when available languages is empty', () => {
41-
when(useModel)
42-
.calledWith('coursewareMeta', props.courseId)
43-
.mockReturnValueOnce({ language: 'fr' })
44-
.calledWith('courseHomeMeta', props.courseId)
45-
.mockReturnValueOnce({ verifiedMode: { accessExpirationDate: null } });
4646
mockInitialState({
4747
availableLanguages: [],
4848
});
@@ -55,22 +55,18 @@ describe('<UnitTranslationPlugin />', () => {
5555
it('render empty when course language has not been set', () => {
5656
when(useModel)
5757
.calledWith('coursewareMeta', props.courseId)
58-
.mockReturnValueOnce({ language: undefined })
59-
.calledWith('courseHomeMeta', props.courseId)
60-
.mockReturnValueOnce({ verifiedMode: { accessExpirationDate: null } });
58+
.mockReturnValueOnce({ language: null });
6159
mockInitialState({});
6260

6361
const wrapper = shallow(<UnitTranslationPlugin {...props} />);
6462

6563
expect(wrapper.isEmptyRender()).toBe(true);
6664
});
6765

68-
it('render empty when verifiedMode has not been set', () => {
66+
it('render empty when student is enroll as verified', () => {
6967
when(useModel)
70-
.calledWith('coursewareMeta', props.courseId)
71-
.mockReturnValueOnce({ language: 'en' })
7268
.calledWith('courseHomeMeta', props.courseId)
73-
.mockReturnValueOnce({ verifiedMode: null });
69+
.mockReturnValueOnce({ enrollmentMode: 'audit' });
7470
mockInitialState({});
7571

7672
const wrapper = shallow(<UnitTranslationPlugin {...props} />);
@@ -79,11 +75,6 @@ describe('<UnitTranslationPlugin />', () => {
7975
});
8076

8177
it('render TranslationSelection when translation is enabled and language is available', () => {
82-
when(useModel)
83-
.calledWith('coursewareMeta', props.courseId)
84-
.mockReturnValueOnce({ language: 'en' })
85-
.calledWith('courseHomeMeta', props.courseId)
86-
.mockReturnValueOnce({ verifiedMode: { accessExpirationDate: null } });
8778
mockInitialState({});
8879

8980
const wrapper = shallow(<UnitTranslationPlugin {...props} />);

0 commit comments

Comments
 (0)