0

I'd like to test this uncovered branch in my codebase. I've included a screenshot of where the

enter image description here

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);
      }
    }
  }
methuselah
  • 12,766
  • 47
  • 165
  • 315

1 Answers1

1

The second part of the following expression is basically dead code, hence you can't write a unit test that will cover it.

(selectedCourseModule != undefined || selectedCourseModule != null)

For further explanations, please take a look at this answer.

uminder
  • 23,831
  • 5
  • 37
  • 72