I'd like to test this uncovered branch in my codebase. I've included a screenshot of where the
The test is as follows:
describe('addCourseContentCard()', () => {
it('should add course content card', () => {
spyOn(mockCourseContentService, 'onAddCourseContent').and.callThrough();
let newCourseContents: ICourseContent[] = JSON.parse(JSON.stringify(courseContents));
newCourseContents = (CourseContentService.addCourseContent(
newCourseContents,
CourseContentElementEditorService.setCourseContentEditorText(),
newCourseContents[0].uid as string,
CourseContentElementAddButtonEventType.AFTER
) as unknown) as ICourseContent[];
newCourseContents = (CourseContentElementButtonService.resetCourseContentElementButtonNavigation(
newCourseContents
) as unknown) as ICourseContent[];
service.addCourseContentCard(course, newCourseContents, newCourseContents[0], 0);
expect(mockCourseContentService.onAddCourseContent).toHaveBeenCalled();
});
it('should not add course content card', () => {
spyOn(mockCourseContentService, 'onAddCourseContent').and.callThrough();
let newCourseContents: ICourseContent[] = JSON.parse(JSON.stringify(courseContents));
newCourseContents = (CourseContentService.addCourseContent(
newCourseContents,
CourseContentElementEditorService.setCourseContentEditorText(),
newCourseContents[0].uid as string,
CourseContentElementAddButtonEventType.AFTER
) as unknown) as ICourseContent[];
newCourseContents = (CourseContentElementButtonService.resetCourseContentElementButtonNavigation(
newCourseContents
) as unknown) as ICourseContent[];
service.addCourseContentCard(null, null, newCourseContents[0], undefined);
service.addCourseContentCard(null, null, newCourseContents[0], null);
newCourseContents[newCourseContents.length - 1].uid = undefined;
service.addCourseContentCard(course, newCourseContents, newCourseContents[0], 0);
expect(mockCourseContentService.onAddCourseContent).not.toHaveBeenCalled();
});
});
My code is follows:
addCourseContentCard(
course: ICourse | undefined | null,
courseContents: ICourseContent[] | undefined | null,
courseContentStep: ICourseContent,
selectedCourseModule: number | undefined | null
): void {
if (
course &&
courseContents &&
(selectedCourseModule != undefined || selectedCourseModule != null)
) {
let selectedCourseContentUid: string | undefined | null;
if (courseContents[courseContents.length - 1].uid) {
selectedCourseContentUid = courseContents[courseContents.length - 1].uid;
courseContents = CourseContentService.addCourseContent(
courseContents,
courseContentStep,
selectedCourseContentUid,
CourseContentElementAddButtonEventType.AFTER
);
courseContents = CourseContentElementButtonService.resetCourseContentElementButtonNavigation(
courseContents
);
this.courseContentService.onAddCourseContent(course, courseContents, selectedCourseModule);
}
}
}