public TemplateResponse mapToTemplateResponse(ReviewGroup reviewGroup, Template template) {
        List<SectionResponse> sectionResponses = template.getSectionIds()
                .stream()
                .map(templateSection -> mapToSectionResponse(templateSection, reviewGroup))
                .toList();

        return new TemplateResponse(
                template.getId(),
                reviewGroup.getReviewee(),
                reviewGroup.getProjectName(),
                sectionResponses
        );
    }
@Test
    void 템플릿_매핑_시_옵션_그룹에_해당하는_옵션_아이템이_없을_경우_예외가_발생한다() {
        // given
        Question question1 = new Question(true, QuestionType.TEXT, "질문", "가이드라인", 1);
        Question question2 = new Question(true, QuestionType.CHECKBOX, "질문", "가이드라인", 1);
        questionRepository.saveAll(List.of(question1, question2));

        OptionGroup optionGroup = new OptionGroup(question2.getId(), 1, 2);
        optionGroupRepository.save(optionGroup);

        Section section1 = new Section(VisibleType.ALWAYS, List.of(question1.getId()), null, "섹션명", "말머리", 1);
        Section section2 = new Section(VisibleType.ALWAYS, List.of(question2.getId()), null, "섹션명", "말머리", 2);
        sectionRepository.saveAll(List.of(section1, section2));

        Template template = new Template(List.of(section1.getId(), section2.getId()));
        templateRepository.save(template);

        ReviewGroup reviewGroup = new ReviewGroup("리뷰이명", "프로젝트명", "reviewRequestCode", "groupAccessCode");
        reviewGroupRepository.save(reviewGroup);

        // when, then
        assertThatThrownBy(() -> templateMapper.mapToTemplateResponse(reviewGroup, template))
                .isInstanceOf(MissingOptionItemsInOptionGroupException.class);
    }