@studyportals/fawkes 8.7.1-0 → 8.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/organisations-seo/index.d.ts +3 -3
- package/dist/organisations-seo/index.js +1 -1
- package/dist/programmes-seo/index.d.ts +5 -5
- package/dist/programmes-seo/index.js +1 -1
- package/dist/scholarships-seo/index.d.ts +4 -4
- package/dist/scholarships-seo/index.js +2 -2
- package/dist/sitemap-generator-seo/index.d.ts +14 -14
- package/dist/sitemap-generator-seo/index.js +5 -5
- package/dist/src/common/IDependencies.d.ts +1 -1
- package/dist/src/common/IPresenter.d.ts +1 -1
- package/dist/src/common/ISearchDependencies.d.ts +1 -1
- package/dist/src/common/ISeoDependencies.d.ts +2 -2
- package/dist/src/common/ISitemapDependencies.d.ts +2 -2
- package/dist/src/common/ISitemapUrlGenerator.d.ts +1 -1
- package/dist/src/common/policies/BaseSeoIndexabilityPolicy.d.ts +1 -1
- package/dist/src/common/policies/BaseSeoIndexabilityPolicy.js +2 -2
- package/dist/src/common/rules/NoFiltersSelectedRule.d.ts +2 -2
- package/dist/src/common/rules/OnlineAttendanceRule.d.ts +1 -1
- package/dist/src/common/rules/OnlineAttendanceRule.js +1 -1
- package/dist/src/common/rules/OnlyFiltersSelectedRule.d.ts +2 -2
- package/dist/src/common/rules/SingleValueSelectedForFilterRule.d.ts +2 -2
- package/dist/src/organisations/IOrganisationSearchApplicationState.d.ts +1 -1
- package/dist/src/organisations/ISeoSortingState.d.ts +1 -1
- package/dist/src/organisations/SearchIndexabilityManager.d.ts +4 -4
- package/dist/src/organisations/SearchIndexabilityManager.js +2 -2
- package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.d.ts +3 -3
- package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.js +3 -3
- package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.d.ts +1 -1
- package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.js +1 -1
- package/dist/src/organisations/policies/our-picks/Area.d.ts +5 -5
- package/dist/src/organisations/policies/our-picks/Area.js +6 -6
- package/dist/src/organisations/policies/our-picks/AreaAttendance.d.ts +7 -7
- package/dist/src/organisations/policies/our-picks/AreaAttendance.js +9 -9
- package/dist/src/organisations/policies/our-picks/Attendance.d.ts +6 -6
- package/dist/src/organisations/policies/our-picks/Attendance.js +7 -7
- package/dist/src/organisations/policies/our-picks/Continent.d.ts +5 -5
- package/dist/src/organisations/policies/our-picks/Continent.js +6 -6
- package/dist/src/organisations/policies/our-picks/Country.d.ts +5 -5
- package/dist/src/organisations/policies/our-picks/Country.js +6 -6
- package/dist/src/organisations/policies/our-picks/CountryAreaCity.d.ts +6 -6
- package/dist/src/organisations/policies/our-picks/CountryAreaCity.js +7 -7
- package/dist/src/organisations/policies/our-picks/CountryAttendance.d.ts +7 -7
- package/dist/src/organisations/policies/our-picks/CountryAttendance.js +9 -9
- package/dist/src/organisations/policies/our-picks/CountryCity.d.ts +6 -6
- package/dist/src/organisations/policies/our-picks/CountryCity.js +7 -7
- package/dist/src/organisations/policies/our-picks/Unfiltered.d.ts +4 -4
- package/dist/src/organisations/policies/our-picks/Unfiltered.js +4 -4
- package/dist/src/organisations/policies/ranked/RankedArea.d.ts +4 -4
- package/dist/src/organisations/policies/ranked/RankedArea.js +4 -4
- package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.d.ts +5 -5
- package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.js +6 -6
- package/dist/src/organisations/policies/ranked/RankedAttendance.d.ts +5 -5
- package/dist/src/organisations/policies/ranked/RankedAttendance.js +5 -5
- package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.d.ts +5 -5
- package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.js +6 -6
- package/dist/src/organisations/policies/ranked/RankedContinent.d.ts +4 -4
- package/dist/src/organisations/policies/ranked/RankedContinent.js +4 -4
- package/dist/src/organisations/policies/ranked/RankedContinentAttendance.d.ts +6 -6
- package/dist/src/organisations/policies/ranked/RankedContinentAttendance.js +7 -7
- package/dist/src/organisations/policies/ranked/RankedCountry.d.ts +4 -4
- package/dist/src/organisations/policies/ranked/RankedCountry.js +4 -4
- package/dist/src/organisations/policies/ranked/RankedCountryAttendance.d.ts +5 -5
- package/dist/src/organisations/policies/ranked/RankedCountryAttendance.js +6 -6
- package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.d.ts +4 -4
- package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.js +5 -5
- package/dist/src/organisations/policies/ranked/RankedDiscipline.d.ts +4 -4
- package/dist/src/organisations/policies/ranked/RankedDiscipline.js +4 -4
- package/dist/src/organisations/policies/ranked/RankedUnfiltered.d.ts +3 -3
- package/dist/src/organisations/policies/ranked/RankedUnfiltered.js +2 -2
- package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.d.ts +3 -3
- package/dist/src/organisations/rules/ContinentIsEuropeRule.d.ts +1 -1
- package/dist/src/organisations/rules/ContinentIsEuropeRule.js +1 -1
- package/dist/src/organisations/rules/ExcludeByIdForCitiesRule.d.ts +3 -3
- package/dist/src/organisations/rules/MinimumAmountOfRankedResultsRule.d.ts +3 -3
- package/dist/src/organisations/rules/MinimumAmountOfRankedResultsRule.js +1 -1
- package/dist/src/organisations/rules/MinimumAmountOfResultsRule.d.ts +4 -4
- package/dist/src/organisations/rules/MinimumAmountOfResultsRule.js +1 -1
- package/dist/src/organisations/rules/NoFiltersSelectedRule.d.ts +2 -2
- package/dist/src/organisations/types/IOrganisationSearchDependencies.d.ts +2 -2
- package/dist/src/organisations/types/IOrganisationsSitemapDependencies.d.ts +3 -3
- package/dist/src/presenters/AreaPresenter.d.ts +1 -1
- package/dist/src/presenters/AttendancePresenter.d.ts +1 -1
- package/dist/src/presenters/CityPresenter.d.ts +1 -1
- package/dist/src/presenters/ContinentPresenter.d.ts +1 -1
- package/dist/src/presenters/CountryPresenter.d.ts +1 -1
- package/dist/src/presenters/DegreePresenter.d.ts +1 -1
- package/dist/src/presenters/DisciplinePresenter.d.ts +1 -1
- package/dist/src/presenters/DurationPresenter.d.ts +1 -1
- package/dist/src/presenters/EducationalFormPresenter.d.ts +1 -1
- package/dist/src/presenters/FormatPresenter.d.ts +1 -1
- package/dist/src/presenters/SpecialProgrammesPresenter.d.ts +1 -1
- package/dist/src/presenters/TuitionFeePresenter.d.ts +1 -1
- package/dist/src/programmes/BaseProgrammeFilterKeyValueRule.d.ts +2 -2
- package/dist/src/programmes/BaseProgrammeFilterKeyValueRule.js +1 -1
- package/dist/src/programmes/BaseProgrammeRule.d.ts +2 -2
- package/dist/src/programmes/IProgrammeRule.d.ts +2 -2
- package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.d.ts +3 -3
- package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.js +1 -1
- package/dist/src/programmes/SearchIndexabilityManager.d.ts +4 -4
- package/dist/src/programmes/SearchIndexabilityManager.js +1 -1
- package/dist/src/programmes/policies/Area.d.ts +3 -3
- package/dist/src/programmes/policies/Area.js +4 -4
- package/dist/src/programmes/policies/Attendance.d.ts +4 -4
- package/dist/src/programmes/policies/Attendance.js +5 -5
- package/dist/src/programmes/policies/AttendanceArea.d.ts +4 -4
- package/dist/src/programmes/policies/AttendanceArea.js +6 -6
- package/dist/src/programmes/policies/AttendanceContinent.d.ts +4 -4
- package/dist/src/programmes/policies/AttendanceContinent.js +6 -6
- package/dist/src/programmes/policies/AttendanceDegree.d.ts +2 -2
- package/dist/src/programmes/policies/AttendanceDegree.js +5 -5
- package/dist/src/programmes/policies/AttendanceDuration.d.ts +5 -5
- package/dist/src/programmes/policies/AttendanceDuration.js +7 -7
- package/dist/src/programmes/policies/AttendanceFormat.d.ts +4 -4
- package/dist/src/programmes/policies/AttendanceFormat.js +6 -6
- package/dist/src/programmes/policies/Continent.d.ts +3 -3
- package/dist/src/programmes/policies/Continent.js +4 -4
- package/dist/src/programmes/policies/ContinentDuration.d.ts +3 -3
- package/dist/src/programmes/policies/ContinentDuration.js +5 -5
- package/dist/src/programmes/policies/ContinentFormat.d.ts +3 -3
- package/dist/src/programmes/policies/ContinentFormat.js +5 -5
- package/dist/src/programmes/policies/ContinentSpecialProgrammes.d.ts +4 -4
- package/dist/src/programmes/policies/ContinentSpecialProgrammes.js +6 -6
- package/dist/src/programmes/policies/Country.d.ts +3 -3
- package/dist/src/programmes/policies/Country.js +4 -4
- package/dist/src/programmes/policies/CountryAttendance.d.ts +4 -4
- package/dist/src/programmes/policies/CountryAttendance.js +6 -6
- package/dist/src/programmes/policies/CountryAttendanceDegree.d.ts +4 -4
- package/dist/src/programmes/policies/CountryAttendanceDegree.js +7 -7
- package/dist/src/programmes/policies/CountryDegree.d.ts +2 -2
- package/dist/src/programmes/policies/CountryDegree.js +5 -5
- package/dist/src/programmes/policies/CountryDuration.d.ts +3 -3
- package/dist/src/programmes/policies/CountryDuration.js +5 -5
- package/dist/src/programmes/policies/CountryDurationDegree.d.ts +3 -3
- package/dist/src/programmes/policies/CountryDurationDegree.js +6 -6
- package/dist/src/programmes/policies/CountryEducationalForm.d.ts +2 -2
- package/dist/src/programmes/policies/CountryEducationalForm.js +5 -5
- package/dist/src/programmes/policies/CountryFormat.d.ts +3 -3
- package/dist/src/programmes/policies/CountryFormat.js +5 -5
- package/dist/src/programmes/policies/CountrySpecialProgrammes.d.ts +4 -4
- package/dist/src/programmes/policies/CountrySpecialProgrammes.js +6 -6
- package/dist/src/programmes/policies/Degree.d.ts +3 -3
- package/dist/src/programmes/policies/Degree.js +4 -4
- package/dist/src/programmes/policies/DegreeArea.d.ts +3 -3
- package/dist/src/programmes/policies/DegreeArea.js +5 -5
- package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +4 -4
- package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +7 -7
- package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +4 -4
- package/dist/src/programmes/policies/DegreeAttendanceFormat.js +7 -7
- package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +4 -4
- package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +7 -7
- package/dist/src/programmes/policies/DegreeContinent.d.ts +2 -2
- package/dist/src/programmes/policies/DegreeContinent.js +5 -5
- package/dist/src/programmes/policies/DegreeCountryAttendance.d.ts +3 -3
- package/dist/src/programmes/policies/DegreeCountryAttendance.js +6 -6
- package/dist/src/programmes/policies/DegreeCountryDiscipline.d.ts +3 -3
- package/dist/src/programmes/policies/DegreeCountryDiscipline.js +6 -6
- package/dist/src/programmes/policies/DegreeCountryTuitionFee.d.ts +3 -3
- package/dist/src/programmes/policies/DegreeCountryTuitionFee.js +6 -6
- package/dist/src/programmes/policies/DegreeDuration.d.ts +2 -2
- package/dist/src/programmes/policies/DegreeDuration.js +5 -5
- package/dist/src/programmes/policies/DegreeFormat.d.ts +2 -2
- package/dist/src/programmes/policies/DegreeFormat.js +5 -5
- package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +3 -3
- package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +5 -5
- package/dist/src/programmes/policies/DegreeTuitionFee.d.ts +3 -3
- package/dist/src/programmes/policies/DegreeTuitionFee.js +5 -5
- package/dist/src/programmes/policies/DegreeTuitionFeeArea.d.ts +3 -3
- package/dist/src/programmes/policies/DegreeTuitionFeeArea.js +6 -6
- package/dist/src/programmes/policies/DegreeTuitionFeeAttendance.d.ts +2 -2
- package/dist/src/programmes/policies/DegreeTuitionFeeAttendance.js +7 -7
- package/dist/src/programmes/policies/DegreeTuitionFeeContinent.d.ts +2 -2
- package/dist/src/programmes/policies/DegreeTuitionFeeContinent.js +6 -6
- package/dist/src/programmes/policies/DegreeTuitionFeeFormat.d.ts +2 -2
- package/dist/src/programmes/policies/DegreeTuitionFeeFormat.js +6 -6
- package/dist/src/programmes/policies/Discipline.d.ts +3 -3
- package/dist/src/programmes/policies/Discipline.js +4 -4
- package/dist/src/programmes/policies/DisciplineAttendance.d.ts +4 -4
- package/dist/src/programmes/policies/DisciplineAttendance.js +6 -6
- package/dist/src/programmes/policies/DisciplineContinent.d.ts +3 -3
- package/dist/src/programmes/policies/DisciplineContinent.js +5 -5
- package/dist/src/programmes/policies/DisciplineContinentAttendance.d.ts +4 -4
- package/dist/src/programmes/policies/DisciplineContinentAttendance.js +7 -7
- package/dist/src/programmes/policies/DisciplineCountry.d.ts +3 -3
- package/dist/src/programmes/policies/DisciplineCountry.js +5 -5
- package/dist/src/programmes/policies/DisciplineCountryAttendance.d.ts +4 -4
- package/dist/src/programmes/policies/DisciplineCountryAttendance.js +7 -7
- package/dist/src/programmes/policies/DisciplineCountryEducationalForm.d.ts +2 -2
- package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +6 -6
- package/dist/src/programmes/policies/DisciplineCountryFormat.d.ts +3 -3
- package/dist/src/programmes/policies/DisciplineCountryFormat.js +6 -6
- package/dist/src/programmes/policies/DisciplineDegree.d.ts +3 -3
- package/dist/src/programmes/policies/DisciplineDegree.js +5 -5
- package/dist/src/programmes/policies/DisciplineDuration.d.ts +3 -3
- package/dist/src/programmes/policies/DisciplineDuration.js +5 -5
- package/dist/src/programmes/policies/DisciplineEducationalForm.d.ts +2 -2
- package/dist/src/programmes/policies/DisciplineEducationalForm.js +5 -5
- package/dist/src/programmes/policies/DisciplineFormat.d.ts +3 -3
- package/dist/src/programmes/policies/DisciplineFormat.js +5 -5
- package/dist/src/programmes/policies/DisciplineSpecialProgrammes.d.ts +3 -3
- package/dist/src/programmes/policies/DisciplineSpecialProgrammes.js +5 -5
- package/dist/src/programmes/policies/Duration.d.ts +3 -3
- package/dist/src/programmes/policies/Duration.js +4 -4
- package/dist/src/programmes/policies/Format.d.ts +3 -3
- package/dist/src/programmes/policies/Format.js +4 -4
- package/dist/src/programmes/policies/SpecialProgrammes.d.ts +3 -3
- package/dist/src/programmes/policies/SpecialProgrammes.js +4 -4
- package/dist/src/programmes/policies/TuitionFee.d.ts +3 -3
- package/dist/src/programmes/policies/TuitionFee.js +4 -4
- package/dist/src/programmes/policies/TuitionFeeAttendance.d.ts +4 -4
- package/dist/src/programmes/policies/TuitionFeeAttendance.js +6 -6
- package/dist/src/programmes/policies/TuitionFeeAttendanceDiscipline.d.ts +4 -4
- package/dist/src/programmes/policies/TuitionFeeAttendanceDiscipline.js +7 -7
- package/dist/src/programmes/policies/TuitionFeeContinent.d.ts +3 -3
- package/dist/src/programmes/policies/TuitionFeeContinent.js +5 -5
- package/dist/src/programmes/policies/TuitionFeeCountry.d.ts +3 -3
- package/dist/src/programmes/policies/TuitionFeeCountry.js +5 -5
- package/dist/src/programmes/policies/TuitionFeeDiscipline.d.ts +3 -3
- package/dist/src/programmes/policies/TuitionFeeDiscipline.js +5 -5
- package/dist/src/programmes/policies/Unfiltered.d.ts +2 -2
- package/dist/src/programmes/policies/Unfiltered.js +2 -2
- package/dist/src/programmes/rules/DegreeAttendanceDisciplineRule.d.ts +2 -2
- package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.d.ts +2 -2
- package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.d.ts +2 -2
- package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.d.ts +2 -2
- package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.d.ts +2 -2
- package/dist/src/programmes/rules/DegreeDisciplineRule.d.ts +2 -2
- package/dist/src/programmes/rules/IndexableDegreeRule.d.ts +2 -2
- package/dist/src/programmes/rules/IndexableDegreeRule.js +1 -1
- package/dist/src/programmes/rules/IndexableDurationRule.d.ts +2 -2
- package/dist/src/programmes/rules/IndexableDurationRule.js +1 -1
- package/dist/src/programmes/rules/IndexableEducationalFormRule.d.ts +2 -2
- package/dist/src/programmes/rules/IndexableEducationalFormRule.js +1 -1
- package/dist/src/programmes/rules/IndexablePageNumberRule.js +1 -1
- package/dist/src/programmes/rules/MbaOrMscDegreeRule.d.ts +2 -2
- package/dist/src/programmes/rules/MinimumAmountOfResultsRule.d.ts +3 -3
- package/dist/src/programmes/rules/MinimumAmountOfResultsRule.js +1 -1
- package/dist/src/programmes/rules/NotDistanceLearningPortalRule.js +1 -1
- package/dist/src/programmes/rules/OneYearOnlyRule.d.ts +2 -2
- package/dist/src/programmes/types/IProgrammeSearchApplicationState.d.ts +1 -1
- package/dist/src/programmes/types/IProgrammeSearchDependencies.d.ts +1 -1
- package/dist/src/programmes/types/IProgrammeSearchSitemapDependencies.d.ts +1 -1
- package/dist/src/programmes/types/IProgrammeSitemapDependencies.d.ts +2 -2
- package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.d.ts +1 -1
- package/dist/src/scholarships/SearchIndexabilityManager.d.ts +5 -5
- package/dist/src/scholarships/SearchIndexabilityManager.js +1 -1
- package/dist/src/scholarships/policies/Area.d.ts +3 -3
- package/dist/src/scholarships/policies/Area.js +4 -4
- package/dist/src/scholarships/policies/Country.d.ts +3 -3
- package/dist/src/scholarships/policies/Country.js +4 -4
- package/dist/src/scholarships/policies/Discipline.d.ts +4 -4
- package/dist/src/scholarships/policies/Discipline.js +5 -5
- package/dist/src/scholarships/policies/DisciplineCountry.d.ts +3 -3
- package/dist/src/scholarships/policies/DisciplineCountry.js +5 -5
- package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.d.ts +2 -2
- package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.js +2 -2
- package/dist/src/scholarships/policies/Unfiltered.d.ts +2 -2
- package/dist/src/scholarships/policies/Unfiltered.js +2 -2
- package/dist/src/scholarships/policies/UniversityCountry.d.ts +3 -3
- package/dist/src/scholarships/policies/UniversityCountry.js +4 -4
- package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.d.ts +3 -3
- package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.js +1 -1
- package/dist/src/scholarships/rules/SearchVolumeAreasRule.d.ts +3 -3
- package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.d.ts +3 -3
- package/dist/src/scholarships/rules/SearchVolumeCountriesRule.d.ts +3 -3
- package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.d.ts +3 -3
- package/dist/src/scholarships/types/IScholarshipSeoDependencies.d.ts +1 -1
- package/dist/src/scholarships/types/IScholarshipSitemapDependencies.d.ts +2 -2
- package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +3 -3
- package/dist/src/sitemap-generator/IRankingApiClient.d.ts +1 -1
- package/dist/src/sitemap-generator/ISearchApiClient.d.ts +1 -1
- package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +3 -3
- package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.d.ts +4 -4
- package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.js +8 -8
- package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.d.ts +3 -3
- package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +13 -13
- package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.d.ts +3 -3
- package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.js +7 -7
- package/dist/src/structured-data/OrganisationStructuredDataFactory.d.ts +1 -1
- package/dist/src/structured-data/ProgrammeStructuredDataFactory.d.ts +1 -1
- package/package.json +1 -1
- package/dist/tests/common/rules/NoFiltersSelectedRule.test.d.mts +0 -1
- package/dist/tests/common/rules/NoFiltersSelectedRule.test.mjs +0 -40
- package/dist/tests/common/rules/OnlyFiltersSelectedRule.test.d.mts +0 -1
- package/dist/tests/common/rules/OnlyFiltersSelectedRule.test.mjs +0 -70
- package/dist/tests/common/rules/SingleValueSelectedForFilterRule.test.d.mts +0 -1
- package/dist/tests/common/rules/SingleValueSelectedForFilterRule.test.mjs +0 -54
- package/dist/tests/organisations/policies/our-picks/Area.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/Area.test.mjs +0 -125
- package/dist/tests/organisations/policies/our-picks/AreaAttendance.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/AreaAttendance.test.mjs +0 -238
- package/dist/tests/organisations/policies/our-picks/Attendance.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/Attendance.test.mjs +0 -119
- package/dist/tests/organisations/policies/our-picks/Continent.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/Continent.test.mjs +0 -105
- package/dist/tests/organisations/policies/our-picks/Country.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/Country.test.mjs +0 -109
- package/dist/tests/organisations/policies/our-picks/CountryAreaCity.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/CountryAreaCity.test.mjs +0 -152
- package/dist/tests/organisations/policies/our-picks/CountryAttendance.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/CountryAttendance.test.mjs +0 -223
- package/dist/tests/organisations/policies/our-picks/CountryCity.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/CountryCity.test.mjs +0 -109
- package/dist/tests/organisations/policies/our-picks/Unfiltered.test.d.mts +0 -1
- package/dist/tests/organisations/policies/our-picks/Unfiltered.test.mjs +0 -60
- package/dist/tests/organisations/policies/ranked/RankedArea.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedArea.test.mjs +0 -149
- package/dist/tests/organisations/policies/ranked/RankedAreaDiscipline.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedAreaDiscipline.test.mjs +0 -237
- package/dist/tests/organisations/policies/ranked/RankedAttendance.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedAttendance.test.mjs +0 -139
- package/dist/tests/organisations/policies/ranked/RankedAttendanceDiscipline.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedAttendanceDiscipline.test.mjs +0 -224
- package/dist/tests/organisations/policies/ranked/RankedContinent.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedContinent.test.mjs +0 -125
- package/dist/tests/organisations/policies/ranked/RankedContinentAttendance.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedContinentAttendance.test.mjs +0 -253
- package/dist/tests/organisations/policies/ranked/RankedCountry.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedCountry.test.mjs +0 -131
- package/dist/tests/organisations/policies/ranked/RankedCountryAttendance.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedCountryAttendance.test.mjs +0 -230
- package/dist/tests/organisations/policies/ranked/RankedCountryDiscipline.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedCountryDiscipline.test.mjs +0 -197
- package/dist/tests/organisations/policies/ranked/RankedDiscipline.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedDiscipline.test.mjs +0 -124
- package/dist/tests/organisations/policies/ranked/RankedUnfiltered.test.d.mts +0 -1
- package/dist/tests/organisations/policies/ranked/RankedUnfiltered.test.mjs +0 -75
- package/dist/tests/organisations/rules/ContinentIsEuropeRule.test.d.mts +0 -1
- package/dist/tests/organisations/rules/ContinentIsEuropeRule.test.mjs +0 -59
- package/dist/tests/organisations/rules/MinimumAmountOfRankedResultsRule.test.d.mts +0 -1
- package/dist/tests/organisations/rules/MinimumAmountOfRankedResultsRule.test.mjs +0 -77
- package/dist/tests/organisations/rules/MinimumAmountOfResultsRule.test.d.mts +0 -1
- package/dist/tests/organisations/rules/MinimumAmountOfResultsRule.test.mjs +0 -77
- package/dist/tests/organisations/rules/OnlineAttendanceRule.test.d.mts +0 -1
- package/dist/tests/organisations/rules/OnlineAttendanceRule.test.mjs +0 -59
- package/dist/tests/organisations/rules/SearchVolumeAreasAttendanceRule.test.d.mts +0 -1
- package/dist/tests/organisations/rules/SearchVolumeAreasAttendanceRule.test.mjs +0 -59
- package/dist/tests/organisations/rules/SearchVolumeAreasDisciplineRule.test.d.mts +0 -1
- package/dist/tests/organisations/rules/SearchVolumeAreasDisciplineRule.test.mjs +0 -59
- package/dist/tests/organisations/rules/SearchVolumeCountriesAttendanceRule.test.d.mts +0 -1
- package/dist/tests/organisations/rules/SearchVolumeCountriesAttendanceRule.test.mjs +0 -59
- package/dist/tests/organisations/utils/SearchDependencies.util.d.mts +0 -20
- package/dist/tests/organisations/utils/SearchDependencies.util.mjs +0 -88
- package/dist/tests/organisations/utils/SitemapDependencies.util.d.mts +0 -18
- package/dist/tests/organisations/utils/SitemapDependencies.util.mjs +0 -54
- package/dist/tests/presenters/AreaPresenter.test.d.mts +0 -1
- package/dist/tests/presenters/AreaPresenter.test.mjs +0 -46
- package/dist/tests/presenters/AttendancePresenter.test.d.mts +0 -1
- package/dist/tests/presenters/AttendancePresenter.test.mjs +0 -41
- package/dist/tests/presenters/ContinentPresenter.test.d.mts +0 -1
- package/dist/tests/presenters/ContinentPresenter.test.mjs +0 -44
- package/dist/tests/presenters/CountryPresenter.test.d.mts +0 -1
- package/dist/tests/presenters/CountryPresenter.test.mjs +0 -50
- package/dist/tests/presenters/DegreePresenter.test.d.mts +0 -1
- package/dist/tests/presenters/DegreePresenter.test.mjs +0 -51
- package/dist/tests/presenters/DisciplinePresenter.test.d.mts +0 -1
- package/dist/tests/presenters/DisciplinePresenter.test.mjs +0 -40
- package/dist/tests/presenters/DurationPresenter.test.d.mts +0 -1
- package/dist/tests/presenters/DurationPresenter.test.mjs +0 -64
- package/dist/tests/presenters/EducationalFormPresenter.test.d.mts +0 -1
- package/dist/tests/presenters/EducationalFormPresenter.test.mjs +0 -60
- package/dist/tests/presenters/FormatPresenter.test.d.mts +0 -1
- package/dist/tests/presenters/FormatPresenter.test.mjs +0 -43
- package/dist/tests/presenters/SpecialProgrammesPresenter.test.d.mts +0 -1
- package/dist/tests/presenters/SpecialProgrammesPresenter.test.mjs +0 -66
- package/dist/tests/presenters/TuitionFeePresenter.test.d.mts +0 -1
- package/dist/tests/presenters/TuitionFeePresenter.test.mjs +0 -52
- package/dist/tests/programmes/policies/Area.test.d.mts +0 -1
- package/dist/tests/programmes/policies/Area.test.mjs +0 -153
- package/dist/tests/programmes/policies/Attendance.test.d.mts +0 -1
- package/dist/tests/programmes/policies/Attendance.test.mjs +0 -173
- package/dist/tests/programmes/policies/AttendanceDegree.test.d.mts +0 -1
- package/dist/tests/programmes/policies/AttendanceDegree.test.mjs +0 -291
- package/dist/tests/programmes/policies/Continent.test.d.mts +0 -1
- package/dist/tests/programmes/policies/Continent.test.mjs +0 -169
- package/dist/tests/programmes/policies/Country.test.d.mts +0 -1
- package/dist/tests/programmes/policies/Country.test.mjs +0 -164
- package/dist/tests/programmes/policies/CountryAttendance.test.d.mts +0 -1
- package/dist/tests/programmes/policies/CountryAttendance.test.mjs +0 -251
- package/dist/tests/programmes/policies/CountryAttendanceDegree.test.d.mts +0 -1
- package/dist/tests/programmes/policies/CountryAttendanceDegree.test.mjs +0 -337
- package/dist/tests/programmes/policies/CountryDegree.test.d.mts +0 -1
- package/dist/tests/programmes/policies/CountryDegree.test.mjs +0 -262
- package/dist/tests/programmes/policies/CountryDuration.test.d.mts +0 -1
- package/dist/tests/programmes/policies/CountryDuration.test.mjs +0 -234
- package/dist/tests/programmes/policies/CountryDurationDegree.test.d.mts +0 -1
- package/dist/tests/programmes/policies/CountryDurationDegree.test.mjs +0 -304
- package/dist/tests/programmes/policies/CountryEducationalForm.test.d.mts +0 -1
- package/dist/tests/programmes/policies/CountryEducationalForm.test.mjs +0 -260
- package/dist/tests/programmes/policies/CountryFormat.test.d.mts +0 -1
- package/dist/tests/programmes/policies/CountryFormat.test.mjs +0 -253
- package/dist/tests/programmes/policies/DegreeAttendanceDiscipline.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DegreeAttendanceDiscipline.test.mjs +0 -179
- package/dist/tests/programmes/policies/DegreeCountryAttendance.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DegreeCountryAttendance.test.mjs +0 -267
- package/dist/tests/programmes/policies/DegreeCountryTuitionFee.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DegreeCountryTuitionFee.test.mjs +0 -217
- package/dist/tests/programmes/policies/DegreeFormat.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DegreeFormat.test.mjs +0 -221
- package/dist/tests/programmes/policies/Discipline.test.d.mts +0 -1
- package/dist/tests/programmes/policies/Discipline.test.mjs +0 -159
- package/dist/tests/programmes/policies/DisciplineAttendance.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DisciplineAttendance.test.mjs +0 -292
- package/dist/tests/programmes/policies/DisciplineContinent.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DisciplineContinent.test.mjs +0 -253
- package/dist/tests/programmes/policies/DisciplineCountry.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DisciplineCountry.test.mjs +0 -244
- package/dist/tests/programmes/policies/DisciplineCountryEducationalForm.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DisciplineCountryEducationalForm.test.mjs +0 -345
- package/dist/tests/programmes/policies/DisciplineDegree.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DisciplineDegree.test.mjs +0 -273
- package/dist/tests/programmes/policies/DisciplineDuration.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DisciplineDuration.test.mjs +0 -278
- package/dist/tests/programmes/policies/DisciplineEducationalForm.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DisciplineEducationalForm.test.mjs +0 -302
- package/dist/tests/programmes/policies/DisciplineFormat.test.d.mts +0 -1
- package/dist/tests/programmes/policies/DisciplineFormat.test.mjs +0 -266
- package/dist/tests/programmes/policies/Duration.test.d.mts +0 -1
- package/dist/tests/programmes/policies/Duration.test.mjs +0 -179
- package/dist/tests/programmes/policies/Format.test.d.mts +0 -1
- package/dist/tests/programmes/policies/Format.test.mjs +0 -117
- package/dist/tests/programmes/policies/NewRulesValidation.test.d.mts +0 -1
- package/dist/tests/programmes/policies/NewRulesValidation.test.mjs +0 -320
- package/dist/tests/programmes/policies/SpecialProgrammes.test.d.mts +0 -1
- package/dist/tests/programmes/policies/SpecialProgrammes.test.mjs +0 -171
- package/dist/tests/programmes/policies/TuitionFeeAttendanceDiscipline.test.d.mts +0 -1
- package/dist/tests/programmes/policies/TuitionFeeAttendanceDiscipline.test.mjs +0 -360
- package/dist/tests/programmes/policies/TuitionFeeContinent.test.d.mts +0 -1
- package/dist/tests/programmes/policies/TuitionFeeContinent.test.mjs +0 -293
- package/dist/tests/programmes/policies/TuitionFeeCountry.test.d.mts +0 -1
- package/dist/tests/programmes/policies/TuitionFeeCountry.test.mjs +0 -266
- package/dist/tests/programmes/policies/TuitionFeeDiscipline.test.d.mts +0 -1
- package/dist/tests/programmes/policies/TuitionFeeDiscipline.test.mjs +0 -267
- package/dist/tests/programmes/policies/Unfiltered.test.d.mts +0 -1
- package/dist/tests/programmes/policies/Unfiltered.test.mjs +0 -90
- package/dist/tests/programmes/rules/AffordableTuitionFeeRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/AffordableTuitionFeeRule.test.mjs +0 -27
- package/dist/tests/programmes/rules/DegreeCountrySpecificRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/DegreeCountrySpecificRule.test.mjs +0 -121
- package/dist/tests/programmes/rules/DegreeDisciplineRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/DegreeDisciplineRule.test.mjs +0 -169
- package/dist/tests/programmes/rules/IndexableDegreeRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/IndexableDegreeRule.test.mjs +0 -101
- package/dist/tests/programmes/rules/IndexableDurationRule.test..d.mts +0 -1
- package/dist/tests/programmes/rules/IndexableDurationRule.test..mjs +0 -25
- package/dist/tests/programmes/rules/IndexableEducationalFormRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/IndexableEducationalFormRule.test.mjs +0 -27
- package/dist/tests/programmes/rules/IndexablePageNumberRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/IndexablePageNumberRule.test.mjs +0 -51
- package/dist/tests/programmes/rules/MbaDegreeRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/MbaDegreeRule.test.mjs +0 -55
- package/dist/tests/programmes/rules/MbaOrMscDegreeRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/MbaOrMscDegreeRule.test.mjs +0 -53
- package/dist/tests/programmes/rules/MinimumAmountOfResultsRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/MinimumAmountOfResultsRule.test.mjs +0 -79
- package/dist/tests/programmes/rules/NotDistanceLearningPortalRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/NotDistanceLearningPortalRule.test.mjs +0 -57
- package/dist/tests/programmes/rules/OneYearDurationRule.test..d.mts +0 -1
- package/dist/tests/programmes/rules/OneYearDurationRule.test..mjs +0 -40
- package/dist/tests/programmes/rules/OnlineAttendanceRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/OnlineAttendanceRule.test.mjs +0 -69
- package/dist/tests/programmes/rules/PartTimeFormatRule.test.d.mts +0 -1
- package/dist/tests/programmes/rules/PartTimeFormatRule.test.mjs +0 -27
- package/dist/tests/programmes/utils/SearchDependencies.util.d.mts +0 -16
- package/dist/tests/programmes/utils/SearchDependencies.util.mjs +0 -73
- package/dist/tests/programmes/utils/SitemapDependencies.util.d.mts +0 -15
- package/dist/tests/programmes/utils/SitemapDependencies.util.mjs +0 -49
- package/dist/tests/scholarships/policies/Area.test.d.mts +0 -1
- package/dist/tests/scholarships/policies/Area.test.mjs +0 -121
- package/dist/tests/scholarships/policies/Country.test.d.mts +0 -1
- package/dist/tests/scholarships/policies/Country.test.mjs +0 -97
- package/dist/tests/scholarships/policies/Discipline.test.d.mts +0 -1
- package/dist/tests/scholarships/policies/Discipline.test.mjs +0 -93
- package/dist/tests/scholarships/policies/DisciplineCountry.test.d.mts +0 -1
- package/dist/tests/scholarships/policies/DisciplineCountry.test.mjs +0 -151
- package/dist/tests/scholarships/policies/Unfiltered.test.d.mts +0 -1
- package/dist/tests/scholarships/policies/Unfiltered.test.mjs +0 -44
- package/dist/tests/scholarships/policies/UniversityCountry.test.d.mts +0 -1
- package/dist/tests/scholarships/policies/UniversityCountry.test.mjs +0 -115
- package/dist/tests/scholarships/rules/ExceptAustaliaAreasRule.test.d.mts +0 -1
- package/dist/tests/scholarships/rules/ExceptAustaliaAreasRule.test.mjs +0 -64
- package/dist/tests/scholarships/rules/SearchVolumeAreasRule.test.d.mts +0 -1
- package/dist/tests/scholarships/rules/SearchVolumeAreasRule.test.mjs +0 -62
- package/dist/tests/scholarships/rules/SearchVolumeCountriesDisciplinesRule.test.d.mts +0 -1
- package/dist/tests/scholarships/rules/SearchVolumeCountriesDisciplinesRule.test.mjs +0 -114
- package/dist/tests/scholarships/rules/SearchVolumeCountriesRule.test.d.mts +0 -1
- package/dist/tests/scholarships/rules/SearchVolumeCountriesRule.test.mjs +0 -62
- package/dist/tests/scholarships/rules/SearchVolumeDisciplinesRule.test.d.mts +0 -1
- package/dist/tests/scholarships/rules/SearchVolumeDisciplinesRule.test.mjs +0 -62
- package/dist/tests/scholarships/utils/SearchDependencies.util.d.mts +0 -16
- package/dist/tests/scholarships/utils/SearchDependencies.util.mjs +0 -70
- package/dist/tests/scholarships/utils/SitemapDependencies.util.d.mts +0 -11
- package/dist/tests/scholarships/utils/SitemapDependencies.util.mjs +0 -33
- package/dist/tests/sitemap-generator/BaseSitemapUrlGeneratorManager.test.d.mts +0 -1
- package/dist/tests/sitemap-generator/BaseSitemapUrlGeneratorManager.test.mjs +0 -82
- package/dist/tests/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.test.d.mts +0 -1
- package/dist/tests/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.test.mjs +0 -85
- package/dist/tests/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.test.d.mts +0 -1
- package/dist/tests/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.test.mjs +0 -77
- package/dist/tests/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.test.d.mts +0 -1
- package/dist/tests/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.test.mjs +0 -60
- package/dist/tests/structured-data/OrganisationStructuredDataFactory.test.d.mts +0 -1
- package/dist/tests/structured-data/OrganisationStructuredDataFactory.test.mjs +0 -334
- package/dist/tests/structured-data/ProgrammeStructuredDataFactory.test.d.mts +0 -1
- package/dist/tests/structured-data/ProgrammeStructuredDataFactory.test.mjs +0 -562
- package/dist/tests/structured-data/ScholarshipStructuredDataFactory.test.d.mts +0 -1
- package/dist/tests/structured-data/ScholarshipStructuredDataFactory.test.mjs +0 -292
- package/dist/tests/structured-data/SearchStructuredDataFactory.paywall.test.d.mts +0 -1
- package/dist/tests/structured-data/SearchStructuredDataFactory.paywall.test.mjs +0 -258
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { EducationalFormPresenter } from '@/presenters/EducationalFormPresenter';
|
|
3
|
-
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
4
|
-
describe('EducationalFormPresenter', () => {
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
// Reset the singleton instance before each test
|
|
7
|
-
EducationalFormPresenter.instance = undefined;
|
|
8
|
-
});
|
|
9
|
-
it('Should be a singleton', () => {
|
|
10
|
-
const instance1 = EducationalFormPresenter.getInstance();
|
|
11
|
-
const instance2 = EducationalFormPresenter.getInstance();
|
|
12
|
-
expect(instance1).toBe(instance2);
|
|
13
|
-
});
|
|
14
|
-
it('Should have the correct filter key', () => {
|
|
15
|
-
const presenter = EducationalFormPresenter.getInstance();
|
|
16
|
-
expect(presenter.filterKey).toBe(FilterKey.EDUCATIONAL_FORM);
|
|
17
|
-
});
|
|
18
|
-
it('Should return educational form fragments', () => {
|
|
19
|
-
const presenter = EducationalFormPresenter.getInstance();
|
|
20
|
-
const fragments = presenter.getFragments();
|
|
21
|
-
// Should include the educational form fragments
|
|
22
|
-
expect(fragments.length).toBeGreaterThan(0);
|
|
23
|
-
// Check structure of fragments
|
|
24
|
-
fragments.forEach((fragment) => {
|
|
25
|
-
expect(fragment).toHaveProperty('id');
|
|
26
|
-
expect(fragment).toHaveProperty('path');
|
|
27
|
-
expect(typeof fragment.id).toBe('string');
|
|
28
|
-
expect(typeof fragment.path).toBe('string');
|
|
29
|
-
});
|
|
30
|
-
// Expected educational form paths
|
|
31
|
-
const expectedPathTerms = ['academic', 'summer', 'semester', 'course'];
|
|
32
|
-
const foundPaths = fragments.map((f) => f.path);
|
|
33
|
-
// Check if at least some paths contain expected terms
|
|
34
|
-
const hasExpectedTerms = expectedPathTerms.some((term) => foundPaths.some((path) => path.includes(term)));
|
|
35
|
-
expect(hasExpectedTerms).toBe(true);
|
|
36
|
-
});
|
|
37
|
-
it('Should format educational form paths correctly', () => {
|
|
38
|
-
const presenter = EducationalFormPresenter.getInstance();
|
|
39
|
-
const fragments = presenter.getFragments();
|
|
40
|
-
// Check that paths are lowercase and use hyphens instead of underscores
|
|
41
|
-
fragments.forEach((fragment) => {
|
|
42
|
-
// Path should be lowercase
|
|
43
|
-
expect(fragment.path).toBe(fragment.path.toLowerCase());
|
|
44
|
-
// Path should not contain underscores
|
|
45
|
-
expect(fragment.path.includes('_')).toBe(false);
|
|
46
|
-
// If ID contains underscores, path should have hyphens instead
|
|
47
|
-
if (fragment.id.includes('_')) {
|
|
48
|
-
// Get expected path by replacing underscores with hyphens
|
|
49
|
-
const expectedPath = fragment.id.toLowerCase().replace(/_/g, '-');
|
|
50
|
-
expect(fragment.path).toBe(expectedPath);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
it('Should return the same fragments on multiple calls', () => {
|
|
55
|
-
const presenter = EducationalFormPresenter.getInstance();
|
|
56
|
-
const fragments1 = presenter.getFragments();
|
|
57
|
-
const fragments2 = presenter.getFragments();
|
|
58
|
-
expect(fragments1).toBe(fragments2); // Should be the same instance
|
|
59
|
-
});
|
|
60
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { FormatPresenter } from '@/presenters/FormatPresenter';
|
|
3
|
-
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
4
|
-
describe('FormatPresenter', () => {
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
// Reset the singleton instance before each test
|
|
7
|
-
FormatPresenter.instance = undefined;
|
|
8
|
-
});
|
|
9
|
-
it('Should be a singleton', () => {
|
|
10
|
-
const instance1 = FormatPresenter.getInstance();
|
|
11
|
-
const instance2 = FormatPresenter.getInstance();
|
|
12
|
-
expect(instance1).toBe(instance2);
|
|
13
|
-
});
|
|
14
|
-
it('Should have the correct filter key', () => {
|
|
15
|
-
const presenter = FormatPresenter.getInstance();
|
|
16
|
-
expect(presenter.filterKey).toBe(FilterKey.ATTENDANCE);
|
|
17
|
-
});
|
|
18
|
-
it('Should return format fragments', () => {
|
|
19
|
-
const presenter = FormatPresenter.getInstance();
|
|
20
|
-
const fragments = presenter.getFragments();
|
|
21
|
-
// Should include the part-time format fragment
|
|
22
|
-
expect(fragments.length).toBeGreaterThan(0);
|
|
23
|
-
// Check structure of fragments
|
|
24
|
-
fragments.forEach((fragment) => {
|
|
25
|
-
expect(fragment).toHaveProperty('id');
|
|
26
|
-
expect(fragment).toHaveProperty('path');
|
|
27
|
-
expect(typeof fragment.id).toBe('string');
|
|
28
|
-
expect(typeof fragment.path).toBe('string');
|
|
29
|
-
});
|
|
30
|
-
// Should have the part-time fragment
|
|
31
|
-
const partTimeFragment = fragments.find((f) => f.id === 'parttime');
|
|
32
|
-
expect(partTimeFragment).toBeDefined();
|
|
33
|
-
if (partTimeFragment) {
|
|
34
|
-
expect(partTimeFragment.path).toBe('part-time');
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
it('Should return the same fragments on multiple calls', () => {
|
|
38
|
-
const presenter = FormatPresenter.getInstance();
|
|
39
|
-
const fragments1 = presenter.getFragments();
|
|
40
|
-
const fragments2 = presenter.getFragments();
|
|
41
|
-
expect(fragments1).toBe(fragments2); // Should be the same instance
|
|
42
|
-
});
|
|
43
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { SpecialProgrammesPresenter } from '@/presenters/SpecialProgrammesPresenter';
|
|
3
|
-
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
4
|
-
describe('SpecialProgrammesPresenter', () => {
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
// Reset the singleton instance before each test
|
|
7
|
-
SpecialProgrammesPresenter.instance = undefined;
|
|
8
|
-
});
|
|
9
|
-
it('Should be a singleton', () => {
|
|
10
|
-
const instance1 = SpecialProgrammesPresenter.getInstance();
|
|
11
|
-
const instance2 = SpecialProgrammesPresenter.getInstance();
|
|
12
|
-
expect(instance1).toBe(instance2);
|
|
13
|
-
});
|
|
14
|
-
it('Should have the correct filter key', () => {
|
|
15
|
-
const presenter = SpecialProgrammesPresenter.getInstance();
|
|
16
|
-
expect(presenter.filterKey).toBe(FilterKey.SPECIAL_PROGRAMMES);
|
|
17
|
-
});
|
|
18
|
-
it('Should return special programmes fragments', () => {
|
|
19
|
-
const presenter = SpecialProgrammesPresenter.getInstance();
|
|
20
|
-
const fragments = presenter.getFragments();
|
|
21
|
-
// Should include special programme fragments
|
|
22
|
-
expect(fragments.length).toBe(3);
|
|
23
|
-
// Check structure of fragments
|
|
24
|
-
fragments.forEach((fragment) => {
|
|
25
|
-
expect(fragment).toHaveProperty('id');
|
|
26
|
-
expect(fragment).toHaveProperty('path');
|
|
27
|
-
expect(typeof fragment.id).toBe('string');
|
|
28
|
-
expect(typeof fragment.path).toBe('string');
|
|
29
|
-
});
|
|
30
|
-
// Should have joint programmes fragment
|
|
31
|
-
const jointProgrammeFragment = fragments.find((f) => f.id === 'joint');
|
|
32
|
-
expect(jointProgrammeFragment).toBeDefined();
|
|
33
|
-
if (jointProgrammeFragment) {
|
|
34
|
-
expect(jointProgrammeFragment.path).toBe('joint-programmes');
|
|
35
|
-
}
|
|
36
|
-
// Should have erasmus mundus fragment
|
|
37
|
-
const erasmusMundusFragment = fragments.find((f) => f.id === 'erasmus');
|
|
38
|
-
expect(erasmusMundusFragment).toBeDefined();
|
|
39
|
-
if (erasmusMundusFragment) {
|
|
40
|
-
expect(erasmusMundusFragment.path).toBe('erasmus-mundus');
|
|
41
|
-
}
|
|
42
|
-
const executiveFragment = fragments.find((f) => f.id === 'executive');
|
|
43
|
-
expect(executiveFragment).toBeDefined();
|
|
44
|
-
if (executiveFragment) {
|
|
45
|
-
expect(executiveFragment.path).toBe('executive-programmes');
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
it('Should format paths correctly', () => {
|
|
49
|
-
const presenter = SpecialProgrammesPresenter.getInstance();
|
|
50
|
-
const fragments = presenter.getFragments();
|
|
51
|
-
// Check path formatting for all fragments
|
|
52
|
-
fragments.forEach((fragment) => {
|
|
53
|
-
// IDs with underscores should have hyphens in the path
|
|
54
|
-
if (fragment.id.includes('_')) {
|
|
55
|
-
const expectedPath = fragment.id.replace(/_/g, '-');
|
|
56
|
-
expect(fragment.path).toBe(expectedPath);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
it('Should return the same fragments on multiple calls', () => {
|
|
61
|
-
const presenter = SpecialProgrammesPresenter.getInstance();
|
|
62
|
-
const fragments1 = presenter.getFragments();
|
|
63
|
-
const fragments2 = presenter.getFragments();
|
|
64
|
-
expect(fragments1).toBe(fragments2); // Should be the same instance
|
|
65
|
-
});
|
|
66
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach } from 'vitest';
|
|
2
|
-
import { TuitionFeePresenter } from '@/presenters/TuitionFeePresenter';
|
|
3
|
-
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
4
|
-
describe('TuitionFeePresenter', () => {
|
|
5
|
-
beforeEach(() => {
|
|
6
|
-
// Reset the singleton instance before each test
|
|
7
|
-
TuitionFeePresenter.instance = undefined;
|
|
8
|
-
});
|
|
9
|
-
it('Should be a singleton', () => {
|
|
10
|
-
const instance1 = TuitionFeePresenter.getInstance();
|
|
11
|
-
const instance2 = TuitionFeePresenter.getInstance();
|
|
12
|
-
expect(instance1).toBe(instance2);
|
|
13
|
-
});
|
|
14
|
-
it('Should have the correct filter key', () => {
|
|
15
|
-
const presenter = TuitionFeePresenter.getInstance();
|
|
16
|
-
expect(presenter.filterKey).toBe(FilterKey.TUITION_FEE);
|
|
17
|
-
});
|
|
18
|
-
it('Should return tuition fee fragments', () => {
|
|
19
|
-
const presenter = TuitionFeePresenter.getInstance();
|
|
20
|
-
const fragments = presenter.getFragments();
|
|
21
|
-
// Should include one tuition fee fragment
|
|
22
|
-
expect(fragments.length).toBe(1);
|
|
23
|
-
// Check structure of fragments
|
|
24
|
-
fragments.forEach((fragment) => {
|
|
25
|
-
expect(fragment).toHaveProperty('id');
|
|
26
|
-
expect(fragment).toHaveProperty('path');
|
|
27
|
-
expect(typeof fragment.id).toBe('string');
|
|
28
|
-
expect(typeof fragment.path).toBe('string');
|
|
29
|
-
});
|
|
30
|
-
// Should have the affordable option
|
|
31
|
-
const affordableFragment = fragments.find((f) => f.path === 'affordable');
|
|
32
|
-
expect(affordableFragment).toBeDefined();
|
|
33
|
-
if (affordableFragment) {
|
|
34
|
-
expect(affordableFragment.id).toBe('[0,2500]');
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
it('Should map tuition fee ranges to user-friendly paths', () => {
|
|
38
|
-
const presenter = TuitionFeePresenter.getInstance();
|
|
39
|
-
const fragments = presenter.getFragments();
|
|
40
|
-
// The zero to 2500 range should map to "affordable"
|
|
41
|
-
const affordableFragment = fragments[0];
|
|
42
|
-
expect(affordableFragment.path).toBe('affordable');
|
|
43
|
-
// The ID should be the range
|
|
44
|
-
expect(affordableFragment.id).toBe('[0,2500]');
|
|
45
|
-
});
|
|
46
|
-
it('Should return the same fragments on multiple calls', () => {
|
|
47
|
-
const presenter = TuitionFeePresenter.getInstance();
|
|
48
|
-
const fragments1 = presenter.getFragments();
|
|
49
|
-
const fragments2 = presenter.getFragments();
|
|
50
|
-
expect(fragments1).toBe(fragments2); // Should be the same instance
|
|
51
|
-
});
|
|
52
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
|
|
2
|
-
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
3
|
-
import { SearchDependencies } from '../utils/SearchDependencies.util.mjs';
|
|
4
|
-
import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
|
|
5
|
-
import { Area } from '@/programmes/policies/Area';
|
|
6
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
7
|
-
import { AreaPresenter } from '@/presenters/AreaPresenter';
|
|
8
|
-
describe('Policy:Area', () => {
|
|
9
|
-
describe('shouldIndex', () => {
|
|
10
|
-
let searchDependenciesHelper;
|
|
11
|
-
let areaPolicy;
|
|
12
|
-
beforeEach(() => {
|
|
13
|
-
searchDependenciesHelper = new SearchDependencies();
|
|
14
|
-
areaPolicy = new Area(searchDependenciesHelper.dependencies);
|
|
15
|
-
searchDependenciesHelper.setResultsCount(10);
|
|
16
|
-
searchDependenciesHelper.setPageNumber(1);
|
|
17
|
-
searchDependenciesHelper.setPortalType(PortalType.MASTER);
|
|
18
|
-
});
|
|
19
|
-
it('Should return true when all conditions are met', async () => {
|
|
20
|
-
const countryId = '30'; // UK
|
|
21
|
-
const areaId = '996'; // England
|
|
22
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
23
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
24
|
-
[FilterKey.AREA, [areaId]]
|
|
25
|
-
]));
|
|
26
|
-
const result = await areaPolicy.shouldIndex();
|
|
27
|
-
expect(result).toBe(true);
|
|
28
|
-
});
|
|
29
|
-
it('Should return false when multiple areas are selected', async () => {
|
|
30
|
-
const countryId = '30'; // UK
|
|
31
|
-
const firstAreaId = '994'; // Scotland
|
|
32
|
-
const secondAreaId = '996'; // England
|
|
33
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
34
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
35
|
-
[FilterKey.AREA, [firstAreaId, secondAreaId]]
|
|
36
|
-
]));
|
|
37
|
-
const result = await areaPolicy.shouldIndex();
|
|
38
|
-
expect(result).toBe(false);
|
|
39
|
-
});
|
|
40
|
-
it('Should return false when no areas are selected', async () => {
|
|
41
|
-
const countryId = '30'; // UK
|
|
42
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
|
|
43
|
-
const result = await areaPolicy.shouldIndex();
|
|
44
|
-
expect(result).toBe(false);
|
|
45
|
-
});
|
|
46
|
-
it('Should return false when other filters are selected', async () => {
|
|
47
|
-
const countryId = '202'; // Australia
|
|
48
|
-
const areaId = '137'; // Western Australia
|
|
49
|
-
const disciplineId = '54'; // Agriculture & Forestry
|
|
50
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
51
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
52
|
-
[FilterKey.AREA, [areaId]],
|
|
53
|
-
[FilterKey.DISCIPLINES, [disciplineId]]
|
|
54
|
-
]));
|
|
55
|
-
const result = await areaPolicy.shouldIndex();
|
|
56
|
-
expect(result).toBe(false);
|
|
57
|
-
});
|
|
58
|
-
it('Should return false when number of results is less than 7', async () => {
|
|
59
|
-
const countryId = '202'; // Australia
|
|
60
|
-
const areaId = '137'; // Western Australia
|
|
61
|
-
searchDependenciesHelper.setResultsCount(6);
|
|
62
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
63
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
64
|
-
[FilterKey.AREA, [areaId]]
|
|
65
|
-
]));
|
|
66
|
-
const result = await areaPolicy.shouldIndex();
|
|
67
|
-
expect(result).toBe(false);
|
|
68
|
-
});
|
|
69
|
-
it('Should return false when page number is higher than 2', async () => {
|
|
70
|
-
const countryId = '30'; // UK
|
|
71
|
-
const areaId = '996'; // England
|
|
72
|
-
searchDependenciesHelper.setPageNumber(3);
|
|
73
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
74
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
75
|
-
[FilterKey.AREA, [areaId]]
|
|
76
|
-
]));
|
|
77
|
-
const result = await areaPolicy.shouldIndex();
|
|
78
|
-
expect(result).toBe(false);
|
|
79
|
-
});
|
|
80
|
-
it('Should return false when portal is distance learning', async () => {
|
|
81
|
-
const countryId = '30'; // UK
|
|
82
|
-
const areaId = '996'; // England
|
|
83
|
-
searchDependenciesHelper.setPortalType(PortalType.DISTANCE_LEARNING);
|
|
84
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
85
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
86
|
-
[FilterKey.AREA, [areaId]]
|
|
87
|
-
]));
|
|
88
|
-
const result = await areaPolicy.shouldIndex();
|
|
89
|
-
expect(result).toBe(false);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
describe('generateUrls', () => {
|
|
93
|
-
let sitemapDependenciesHelper;
|
|
94
|
-
let areaPolicy;
|
|
95
|
-
beforeEach(() => {
|
|
96
|
-
sitemapDependenciesHelper = new SitemapDependencies();
|
|
97
|
-
sitemapDependenciesHelper.setProgrammeCount(10);
|
|
98
|
-
areaPolicy = new Area(sitemapDependenciesHelper.dependencies);
|
|
99
|
-
AreaPresenter.getInstance = vi.fn().mockReturnValue({
|
|
100
|
-
getFragments: vi.fn().mockReturnValue([
|
|
101
|
-
{ id: '137', path: 'australia/western-australia', countryId: '202' },
|
|
102
|
-
{ id: '138', path: 'australia/south-australia', countryId: '202' },
|
|
103
|
-
{ id: '139', path: 'australia/northern-territory', countryId: '202' }
|
|
104
|
-
])
|
|
105
|
-
});
|
|
106
|
-
});
|
|
107
|
-
afterEach(() => {
|
|
108
|
-
sitemapDependenciesHelper.resetMocks();
|
|
109
|
-
});
|
|
110
|
-
it('Should generate URLs for all valid areas', async () => {
|
|
111
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap();
|
|
112
|
-
// Call the method via reflection since it's protected
|
|
113
|
-
const urls = await areaPolicy.generateUrls();
|
|
114
|
-
// Verify all area fragments were included
|
|
115
|
-
expect(urls).toHaveLength(3);
|
|
116
|
-
expect(urls).toContain('australia/western-australia');
|
|
117
|
-
expect(urls).toContain('australia/south-australia');
|
|
118
|
-
expect(urls).toContain('australia/northern-territory');
|
|
119
|
-
});
|
|
120
|
-
it('Should exclude URLs that fail rule checks', async () => {
|
|
121
|
-
// Create a map that returns false for Western Australia
|
|
122
|
-
const resultMap = new Map([[`${FilterKey.AREA}:137|${FilterKey.COUNTRY}:202`, false]]);
|
|
123
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
124
|
-
const urls = await areaPolicy.generateUrls();
|
|
125
|
-
// Should only include England and Scotland, not Western Australia
|
|
126
|
-
expect(urls).toHaveLength(2);
|
|
127
|
-
expect(urls).toContain('australia/south-australia');
|
|
128
|
-
expect(urls).toContain('australia/northern-territory');
|
|
129
|
-
expect(urls).not.toContain('australia/western-australia');
|
|
130
|
-
});
|
|
131
|
-
it('Should exclude all URLs when all checks fail', async () => {
|
|
132
|
-
// Create a map that returns false for all areas
|
|
133
|
-
const resultMap = new Map([
|
|
134
|
-
[`${FilterKey.AREA}:137|${FilterKey.COUNTRY}:202`, false],
|
|
135
|
-
[`${FilterKey.AREA}:138|${FilterKey.COUNTRY}:202`, false],
|
|
136
|
-
[`${FilterKey.AREA}:139|${FilterKey.COUNTRY}:202`, false]
|
|
137
|
-
]);
|
|
138
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
139
|
-
const urls = await areaPolicy.generateUrls();
|
|
140
|
-
// Should include no URLs
|
|
141
|
-
expect(urls).toHaveLength(0);
|
|
142
|
-
});
|
|
143
|
-
it('Should handle empty fragments array', async () => {
|
|
144
|
-
AreaPresenter.getInstance = vi.fn().mockReturnValue({
|
|
145
|
-
getFragments: vi.fn().mockReturnValue([])
|
|
146
|
-
});
|
|
147
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap();
|
|
148
|
-
const urls = await areaPolicy.generateUrls();
|
|
149
|
-
// Should return empty array
|
|
150
|
-
expect(urls).toHaveLength(0);
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
|
|
2
|
-
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
3
|
-
import { SearchDependencies } from '../utils/SearchDependencies.util.mjs';
|
|
4
|
-
import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
|
|
5
|
-
import { Attendance } from '@/programmes/policies/Attendance';
|
|
6
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
7
|
-
import { AttendancePresenter } from '@/presenters/AttendancePresenter';
|
|
8
|
-
describe('Policy:Attendance', () => {
|
|
9
|
-
describe('shouldIndex', () => {
|
|
10
|
-
let searchDependenciesHelper;
|
|
11
|
-
let attendancePolicy;
|
|
12
|
-
beforeEach(() => {
|
|
13
|
-
searchDependenciesHelper = new SearchDependencies();
|
|
14
|
-
attendancePolicy = new Attendance(searchDependenciesHelper.dependencies);
|
|
15
|
-
searchDependenciesHelper.setResultsCount(10);
|
|
16
|
-
searchDependenciesHelper.setPageNumber(1);
|
|
17
|
-
searchDependenciesHelper.setPortalType(PortalType.BACHELOR);
|
|
18
|
-
});
|
|
19
|
-
it('Should return true when all conditions are met', async () => {
|
|
20
|
-
const attendance = 'online';
|
|
21
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
|
|
22
|
-
const result = await attendancePolicy.shouldIndex();
|
|
23
|
-
expect(result).toBe(true);
|
|
24
|
-
});
|
|
25
|
-
it('Should return false when multiple attendance values are selected', async () => {
|
|
26
|
-
const firstAttendance = 'online';
|
|
27
|
-
const secondAttendance = 'blended';
|
|
28
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [firstAttendance, secondAttendance]]]));
|
|
29
|
-
const result = await attendancePolicy.shouldIndex();
|
|
30
|
-
expect(result).toBe(false);
|
|
31
|
-
});
|
|
32
|
-
it('Should return false when no attendance values are selected', async () => {
|
|
33
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([]));
|
|
34
|
-
const result = await attendancePolicy.shouldIndex();
|
|
35
|
-
expect(result).toBe(false);
|
|
36
|
-
});
|
|
37
|
-
it('Should return false when other filters are selected', async () => {
|
|
38
|
-
const attendance = 'online';
|
|
39
|
-
const countryId = '202'; // Australia
|
|
40
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
41
|
-
[FilterKey.DELIVERY_METHOD, [attendance]],
|
|
42
|
-
[FilterKey.COUNTRY, [countryId]]
|
|
43
|
-
]));
|
|
44
|
-
const result = await attendancePolicy.shouldIndex();
|
|
45
|
-
expect(result).toBe(false);
|
|
46
|
-
});
|
|
47
|
-
it('Should return false when attendance is not online', async () => {
|
|
48
|
-
const attendance = 'blended';
|
|
49
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
|
|
50
|
-
const result = await attendancePolicy.shouldIndex();
|
|
51
|
-
expect(result).toBe(false);
|
|
52
|
-
});
|
|
53
|
-
it('Should return false when number of results is less than 7', async () => {
|
|
54
|
-
const attendance = 'online';
|
|
55
|
-
searchDependenciesHelper.setResultsCount(6);
|
|
56
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
|
|
57
|
-
const result = await attendancePolicy.shouldIndex();
|
|
58
|
-
expect(result).toBe(false);
|
|
59
|
-
});
|
|
60
|
-
it('Should return false when page number is higher than 2', async () => {
|
|
61
|
-
const attendance = 'online';
|
|
62
|
-
searchDependenciesHelper.setPageNumber(3);
|
|
63
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
|
|
64
|
-
const result = await attendancePolicy.shouldIndex();
|
|
65
|
-
expect(result).toBe(false);
|
|
66
|
-
});
|
|
67
|
-
it('Should return false when portal is distance learning', async () => {
|
|
68
|
-
const attendance = 'online';
|
|
69
|
-
searchDependenciesHelper.setPortalType(PortalType.DISTANCE_LEARNING);
|
|
70
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
|
|
71
|
-
const result = await attendancePolicy.shouldIndex();
|
|
72
|
-
expect(result).toBe(false);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
describe('generateUrls', () => {
|
|
76
|
-
let sitemapDependenciesHelper;
|
|
77
|
-
let attendancePolicy;
|
|
78
|
-
beforeEach(() => {
|
|
79
|
-
sitemapDependenciesHelper = new SitemapDependencies();
|
|
80
|
-
sitemapDependenciesHelper.setProgrammeCount(10); // More than 7 programs
|
|
81
|
-
attendancePolicy = new Attendance(sitemapDependenciesHelper.dependencies);
|
|
82
|
-
AttendancePresenter.getInstance = vi.fn().mockReturnValue({
|
|
83
|
-
getFragments: vi.fn().mockReturnValue([
|
|
84
|
-
{ id: 'online', path: 'online-programmes' },
|
|
85
|
-
{ id: 'face2face', path: 'on-campus-programmes' },
|
|
86
|
-
{ id: 'blended', path: 'blended-programmes' }
|
|
87
|
-
])
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
afterEach(() => {
|
|
91
|
-
sitemapDependenciesHelper.resetMocks();
|
|
92
|
-
});
|
|
93
|
-
it('Should generate URLs for online attendance only', async () => {
|
|
94
|
-
// Mock the checkRulesForSitemap to return true only for online attendance due to OnlineAttendanceRule
|
|
95
|
-
const resultMap = new Map([
|
|
96
|
-
[`${FilterKey.DELIVERY_METHOD}:online`, true],
|
|
97
|
-
[`${FilterKey.DELIVERY_METHOD}:face2face`, false],
|
|
98
|
-
[`${FilterKey.DELIVERY_METHOD}:blended`, false]
|
|
99
|
-
]);
|
|
100
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
101
|
-
// Call the method via reflection since it's protected
|
|
102
|
-
const urls = await attendancePolicy.generateUrls();
|
|
103
|
-
// Verify only online attendance was included
|
|
104
|
-
expect(urls).toHaveLength(1);
|
|
105
|
-
expect(urls).toContain('online-programmes');
|
|
106
|
-
expect(urls).not.toContain('on-campus-programmes');
|
|
107
|
-
expect(urls).not.toContain('blended-programmes');
|
|
108
|
-
});
|
|
109
|
-
it('Should exclude all URLs when all checks fail', async () => {
|
|
110
|
-
// Create a map that returns false for all attendance types
|
|
111
|
-
const resultMap = new Map([
|
|
112
|
-
[`${FilterKey.DELIVERY_METHOD}:online`, false],
|
|
113
|
-
[`${FilterKey.DELIVERY_METHOD}:face2face`, false],
|
|
114
|
-
[`${FilterKey.DELIVERY_METHOD}:blended`, false]
|
|
115
|
-
]);
|
|
116
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
117
|
-
const urls = await attendancePolicy.generateUrls();
|
|
118
|
-
// Should include no URLs
|
|
119
|
-
expect(urls).toHaveLength(0);
|
|
120
|
-
});
|
|
121
|
-
it('Should handle empty fragments array', async () => {
|
|
122
|
-
// Mock the AttendancePresenter to return empty fragments
|
|
123
|
-
AttendancePresenter.getInstance.mockReturnValueOnce({
|
|
124
|
-
getFragments: vi.fn().mockReturnValue([])
|
|
125
|
-
});
|
|
126
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap();
|
|
127
|
-
const urls = await attendancePolicy.generateUrls();
|
|
128
|
-
// Should return empty array
|
|
129
|
-
expect(urls).toHaveLength(0);
|
|
130
|
-
});
|
|
131
|
-
it('Should handle multiple attendance types if rule allows', async () => {
|
|
132
|
-
// This is a hypothetical scenario where the rule might allow multiple attendance types
|
|
133
|
-
// (in production, OnlineAttendanceRule would only allow online)
|
|
134
|
-
const resultMap = new Map([
|
|
135
|
-
[`${FilterKey.DELIVERY_METHOD}:online`, true],
|
|
136
|
-
[`${FilterKey.DELIVERY_METHOD}:face2face`, true],
|
|
137
|
-
[`${FilterKey.DELIVERY_METHOD}:blended`, false]
|
|
138
|
-
]);
|
|
139
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
140
|
-
const urls = await attendancePolicy.generateUrls();
|
|
141
|
-
// Should include online and on-campus
|
|
142
|
-
expect(urls).toHaveLength(2);
|
|
143
|
-
expect(urls).toContain('online-programmes');
|
|
144
|
-
expect(urls).toContain('on-campus-programmes');
|
|
145
|
-
expect(urls).not.toContain('blended-programmes');
|
|
146
|
-
});
|
|
147
|
-
it('Should handle performance with a larger set of attendance types', async () => {
|
|
148
|
-
// Generate more attendance types for testing
|
|
149
|
-
const largeAttendanceSet = Array.from({ length: 10 }, (_, index) => ({
|
|
150
|
-
id: `attendance-${index}`,
|
|
151
|
-
path: `attendance-type-${index}`
|
|
152
|
-
}));
|
|
153
|
-
// Mock the AttendancePresenter to return large set
|
|
154
|
-
AttendancePresenter.getInstance.mockReturnValueOnce({
|
|
155
|
-
getFragments: vi.fn().mockReturnValue(largeAttendanceSet)
|
|
156
|
-
});
|
|
157
|
-
// Mock to only allow attendance types with even indices
|
|
158
|
-
const resultMap = new Map();
|
|
159
|
-
for (let i = 0; i < largeAttendanceSet.length; i++) {
|
|
160
|
-
const attendanceId = largeAttendanceSet[i].id;
|
|
161
|
-
resultMap.set(`${FilterKey.DELIVERY_METHOD}:${attendanceId}`, i % 2 === 0);
|
|
162
|
-
}
|
|
163
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
164
|
-
const urls = await attendancePolicy.generateUrls();
|
|
165
|
-
// Should include half of the attendance types (those with even indices)
|
|
166
|
-
expect(urls).toHaveLength(5);
|
|
167
|
-
// Check specific items
|
|
168
|
-
expect(urls).toContain('attendance-type-0'); // Even index
|
|
169
|
-
expect(urls).not.toContain('attendance-type-1'); // Odd index
|
|
170
|
-
expect(urls).toContain('attendance-type-2'); // Even index
|
|
171
|
-
});
|
|
172
|
-
});
|
|
173
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|