@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,262 +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 { CountryDegree } from '@/programmes/policies/CountryDegree';
|
|
6
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
7
|
-
import { CountryPresenter } from '@/presenters/CountryPresenter';
|
|
8
|
-
import { DegreePresenter } from '@/presenters/DegreePresenter';
|
|
9
|
-
describe('Policy:CountryDegree', () => {
|
|
10
|
-
describe('shouldIndex', () => {
|
|
11
|
-
let searchDependenciesHelper;
|
|
12
|
-
let countryDegreePolicy;
|
|
13
|
-
beforeEach(() => {
|
|
14
|
-
searchDependenciesHelper = new SearchDependencies();
|
|
15
|
-
countryDegreePolicy = new CountryDegree(searchDependenciesHelper.dependencies);
|
|
16
|
-
searchDependenciesHelper.setResultsCount(10);
|
|
17
|
-
searchDependenciesHelper.setPageNumber(1);
|
|
18
|
-
searchDependenciesHelper.setPortalType(PortalType.MASTER);
|
|
19
|
-
});
|
|
20
|
-
it('Should return true when all conditions are met', async () => {
|
|
21
|
-
const countryId = '30'; // UK
|
|
22
|
-
const degree = 'phd';
|
|
23
|
-
searchDependenciesHelper.setPortalType(PortalType.PHD);
|
|
24
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
25
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
26
|
-
[FilterKey.DEGREE_TYPE, [degree]]
|
|
27
|
-
]));
|
|
28
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
29
|
-
expect(result).toBe(true);
|
|
30
|
-
});
|
|
31
|
-
it('Should return false when multiple countries are selected', async () => {
|
|
32
|
-
const firstCountryId = '30'; // UK
|
|
33
|
-
const secondCountryId = '21'; // Portugal
|
|
34
|
-
const degree = 'mba';
|
|
35
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
36
|
-
[FilterKey.COUNTRY, [firstCountryId, secondCountryId]],
|
|
37
|
-
[FilterKey.DEGREE_TYPE, [degree]]
|
|
38
|
-
]));
|
|
39
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
40
|
-
expect(result).toBe(false);
|
|
41
|
-
});
|
|
42
|
-
it('Should return false when multiple degree values are selected', async () => {
|
|
43
|
-
const countryId = '30'; // UK
|
|
44
|
-
const firstDegree = 'phd';
|
|
45
|
-
const secondDegree = 'mba';
|
|
46
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
47
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
48
|
-
[FilterKey.DEGREE_TYPE, [firstDegree, secondDegree]]
|
|
49
|
-
]));
|
|
50
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
51
|
-
expect(result).toBe(false);
|
|
52
|
-
});
|
|
53
|
-
it('Should return false when no degree values are selected', async () => {
|
|
54
|
-
const countryId = '30'; // UK
|
|
55
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
|
|
56
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
57
|
-
expect(result).toBe(false);
|
|
58
|
-
});
|
|
59
|
-
it('Should return false when no countries are selected', async () => {
|
|
60
|
-
const degree = 'phd';
|
|
61
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DEGREE_TYPE, [degree]]]));
|
|
62
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
63
|
-
expect(result).toBe(false);
|
|
64
|
-
});
|
|
65
|
-
it('Should return false when other filters are selected', async () => {
|
|
66
|
-
const countryId = '30'; // UK
|
|
67
|
-
const degree = 'phd';
|
|
68
|
-
const disciplineId = '54'; // Agriculture & Forestry
|
|
69
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
70
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
71
|
-
[FilterKey.DEGREE_TYPE, [degree]],
|
|
72
|
-
[FilterKey.DISCIPLINES, [disciplineId]]
|
|
73
|
-
]));
|
|
74
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
75
|
-
expect(result).toBe(false);
|
|
76
|
-
});
|
|
77
|
-
it('Should return false when number of results is less than 7', async () => {
|
|
78
|
-
const countryId = '30'; // UK
|
|
79
|
-
const degree = 'phd';
|
|
80
|
-
searchDependenciesHelper.setResultsCount(6);
|
|
81
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
82
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
83
|
-
[FilterKey.DEGREE_TYPE, [degree]]
|
|
84
|
-
]));
|
|
85
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
86
|
-
expect(result).toBe(false);
|
|
87
|
-
});
|
|
88
|
-
it('Should return false when page number is higher than 2', async () => {
|
|
89
|
-
const countryId = '30'; // UK
|
|
90
|
-
const degree = 'phd';
|
|
91
|
-
searchDependenciesHelper.setPageNumber(3);
|
|
92
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
93
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
94
|
-
[FilterKey.DEGREE_TYPE, [degree]]
|
|
95
|
-
]));
|
|
96
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
97
|
-
expect(result).toBe(false);
|
|
98
|
-
});
|
|
99
|
-
it('Should return false when portal is distance learning', async () => {
|
|
100
|
-
const countryId = '30'; // UK
|
|
101
|
-
const degree = 'phd';
|
|
102
|
-
searchDependenciesHelper.setPortalType(PortalType.DISTANCE_LEARNING);
|
|
103
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
104
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
105
|
-
[FilterKey.DEGREE_TYPE, [degree]]
|
|
106
|
-
]));
|
|
107
|
-
const result = await countryDegreePolicy.shouldIndex();
|
|
108
|
-
expect(result).toBe(false);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
describe('generateUrls', () => {
|
|
112
|
-
let sitemapDependenciesHelper;
|
|
113
|
-
let countryDegreePolicy;
|
|
114
|
-
beforeEach(() => {
|
|
115
|
-
sitemapDependenciesHelper = new SitemapDependencies();
|
|
116
|
-
sitemapDependenciesHelper.setProgrammeCount(10); // More than 7 programs
|
|
117
|
-
countryDegreePolicy = new CountryDegree(sitemapDependenciesHelper.dependencies);
|
|
118
|
-
CountryPresenter.getInstance = vi.fn().mockReturnValue({
|
|
119
|
-
getFragments: vi.fn().mockReturnValue([
|
|
120
|
-
{ id: '30', path: 'uk' },
|
|
121
|
-
{ id: '202', path: 'australia' },
|
|
122
|
-
{ id: '56', path: 'usa' }
|
|
123
|
-
])
|
|
124
|
-
});
|
|
125
|
-
DegreePresenter.getInstance = vi.fn().mockReturnValue({
|
|
126
|
-
getFragments: vi.fn().mockReturnValue([
|
|
127
|
-
{ id: 'mba', path: 'mba' },
|
|
128
|
-
{ id: 'msc', path: 'msc' },
|
|
129
|
-
{ id: 'phd', path: 'phd' },
|
|
130
|
-
{ id: 'adiploma', path: 'adiploma' } // Non-indexable degree
|
|
131
|
-
])
|
|
132
|
-
});
|
|
133
|
-
});
|
|
134
|
-
afterEach(() => {
|
|
135
|
-
sitemapDependenciesHelper.resetMocks();
|
|
136
|
-
});
|
|
137
|
-
it('Should generate URLs for valid country-degree combinations', async () => {
|
|
138
|
-
// Mock the checkRulesForSitemap to filter out adiploma for all countries
|
|
139
|
-
// due to IndexableDegreeRule
|
|
140
|
-
const resultMap = new Map();
|
|
141
|
-
// Set up all possible combinations
|
|
142
|
-
for (const country of ['30', '202', '56']) {
|
|
143
|
-
for (const degree of ['mba', 'msc', 'phd', 'adiploma']) {
|
|
144
|
-
const key = `${FilterKey.COUNTRY}:${country}|${FilterKey.DEGREE_TYPE}:${degree}`;
|
|
145
|
-
// adiploma should be filtered out by IndexableDegreeRule
|
|
146
|
-
resultMap.set(key, degree !== 'adiploma');
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
150
|
-
// Call the method via reflection since it's protected
|
|
151
|
-
const urls = await countryDegreePolicy.generateUrls();
|
|
152
|
-
// Calculate expected URLs: 3 countries * 3 degrees (excluding adiploma) * 1 page = 9 URLs
|
|
153
|
-
expect(urls).toHaveLength(9);
|
|
154
|
-
// Verify paths structure
|
|
155
|
-
expect(urls).toContain('mba/uk');
|
|
156
|
-
expect(urls).toContain('msc/australia');
|
|
157
|
-
expect(urls).toContain('phd/usa');
|
|
158
|
-
// Verify adiploma is excluded
|
|
159
|
-
expect(urls).not.toContain('adiploma/uk');
|
|
160
|
-
expect(urls).not.toContain('adiploma/australia');
|
|
161
|
-
expect(urls).not.toContain('adiploma/usa');
|
|
162
|
-
});
|
|
163
|
-
it('Should exclude specific country-degree combinations based on rules', async () => {
|
|
164
|
-
// Create a map that returns false for specific combinations
|
|
165
|
-
const resultMap = new Map();
|
|
166
|
-
// Set UK with mba and USA with phd to fail, along with all adiploma combinations
|
|
167
|
-
for (const country of ['30', '202', '56']) {
|
|
168
|
-
for (const degree of ['mba', 'msc', 'phd', 'adiploma']) {
|
|
169
|
-
const key = `${FilterKey.COUNTRY}:${country}|${FilterKey.DEGREE_TYPE}:${degree}`;
|
|
170
|
-
const shouldPass = degree !== 'adiploma' && // All adiploma should fail
|
|
171
|
-
!(country === '30' && degree === 'mba') && // UK with MBA should fail
|
|
172
|
-
!(country === '56' && degree === 'phd'); // USA with PhD should fail
|
|
173
|
-
resultMap.set(key, shouldPass);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
177
|
-
const urls = await countryDegreePolicy.generateUrls();
|
|
178
|
-
// Calculate expected URLs: 9 total combinations - 2 specific exclusions - 3 adiploma exclusions * 1 page = 7 URLs
|
|
179
|
-
expect(urls).toHaveLength(7);
|
|
180
|
-
// Verify excluded combinations
|
|
181
|
-
expect(urls).not.toContain('mba/uk');
|
|
182
|
-
expect(urls).not.toContain('phd/usa');
|
|
183
|
-
expect(urls).not.toContain('adiploma/uk');
|
|
184
|
-
// Verify included combinations
|
|
185
|
-
expect(urls).toContain('msc/uk');
|
|
186
|
-
expect(urls).toContain('phd/uk');
|
|
187
|
-
expect(urls).toContain('mba/usa');
|
|
188
|
-
});
|
|
189
|
-
it('Should exclude all URLs when all rule checks fail', async () => {
|
|
190
|
-
// Create a map that returns false for all combinations
|
|
191
|
-
const resultMap = new Map();
|
|
192
|
-
for (const country of ['30', '202', '56']) {
|
|
193
|
-
for (const degree of ['mba', 'msc', 'phd', 'adiploma']) {
|
|
194
|
-
const key = `${FilterKey.COUNTRY}:${country}|${FilterKey.DEGREE_TYPE}:${degree}`;
|
|
195
|
-
resultMap.set(key, false);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
199
|
-
const urls = await countryDegreePolicy.generateUrls();
|
|
200
|
-
// Should include no URLs
|
|
201
|
-
expect(urls).toHaveLength(0);
|
|
202
|
-
});
|
|
203
|
-
it('Should handle empty country fragments', async () => {
|
|
204
|
-
// Mock the CountryPresenter to return empty fragments
|
|
205
|
-
CountryPresenter.getInstance.mockReturnValueOnce({
|
|
206
|
-
getFragments: vi.fn().mockReturnValue([])
|
|
207
|
-
});
|
|
208
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap();
|
|
209
|
-
const urls = await countryDegreePolicy.generateUrls();
|
|
210
|
-
// Should return empty array
|
|
211
|
-
expect(urls).toHaveLength(0);
|
|
212
|
-
});
|
|
213
|
-
it('Should handle empty degree fragments', async () => {
|
|
214
|
-
// Mock the DegreePresenter to return empty fragments
|
|
215
|
-
DegreePresenter.getInstance.mockReturnValueOnce({
|
|
216
|
-
getFragments: vi.fn().mockReturnValue([])
|
|
217
|
-
});
|
|
218
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap();
|
|
219
|
-
const urls = await countryDegreePolicy.generateUrls();
|
|
220
|
-
// Should return empty array
|
|
221
|
-
expect(urls).toHaveLength(0);
|
|
222
|
-
});
|
|
223
|
-
it('Should handle performance with large number of combinations', async () => {
|
|
224
|
-
// Generate larger datasets for testing
|
|
225
|
-
const largeCountrySet = Array.from({ length: 20 }, (_, index) => ({
|
|
226
|
-
id: `country-${index}`,
|
|
227
|
-
path: `country-path-${index}`
|
|
228
|
-
}));
|
|
229
|
-
const largeDegreeSet = Array.from({ length: 10 }, (_, index) => ({
|
|
230
|
-
id: `degree-${index}`,
|
|
231
|
-
path: `degree-path-${index}`
|
|
232
|
-
}));
|
|
233
|
-
// Override mocks with large datasets
|
|
234
|
-
CountryPresenter.getInstance.mockReturnValueOnce({
|
|
235
|
-
getFragments: vi.fn().mockReturnValue(largeCountrySet)
|
|
236
|
-
});
|
|
237
|
-
DegreePresenter.getInstance.mockReturnValueOnce({
|
|
238
|
-
getFragments: vi.fn().mockReturnValue(largeDegreeSet)
|
|
239
|
-
});
|
|
240
|
-
// Mock to allow only combinations where both country and degree indices are even
|
|
241
|
-
const resultMap = new Map();
|
|
242
|
-
for (let c = 0; c < largeCountrySet.length; c++) {
|
|
243
|
-
for (let d = 0; d < largeDegreeSet.length; d++) {
|
|
244
|
-
const countryId = largeCountrySet[c].id;
|
|
245
|
-
const degreeId = largeDegreeSet[d].id;
|
|
246
|
-
const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.DEGREE_TYPE}:${degreeId}`;
|
|
247
|
-
resultMap.set(key, c % 2 === 0 && d % 2 === 0);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap, false);
|
|
251
|
-
const urls = await countryDegreePolicy.generateUrls();
|
|
252
|
-
// Calculate expected count: 10 countries (even indices) * 5 degrees (even indices)
|
|
253
|
-
// 10 * 5 = 50 URLs
|
|
254
|
-
expect(urls).toHaveLength(50);
|
|
255
|
-
// Test specific items
|
|
256
|
-
expect(urls).toContain('degree-path-0/country-path-0'); // Both even indices
|
|
257
|
-
expect(urls).toContain('degree-path-2/country-path-4'); // Both even indices
|
|
258
|
-
expect(urls).not.toContain('degree-path-1/country-path-0'); // Odd degree index
|
|
259
|
-
expect(urls).not.toContain('degree-path-0/country-path-1'); // Odd country index
|
|
260
|
-
});
|
|
261
|
-
});
|
|
262
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
2
|
-
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
3
|
-
import { SearchDependencies } from '../utils/SearchDependencies.util.mjs';
|
|
4
|
-
import { CountryDuration } from '@/programmes/policies/CountryDuration';
|
|
5
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
6
|
-
import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
|
|
7
|
-
import { CountryPresenter } from '@/presenters/CountryPresenter';
|
|
8
|
-
import { DurationPresenter } from '@/presenters/DurationPresenter';
|
|
9
|
-
describe('Policy:CountryDuration', () => {
|
|
10
|
-
describe('shouldIndex', () => {
|
|
11
|
-
let searchDependenciesHelper;
|
|
12
|
-
let countryDurationPolicy;
|
|
13
|
-
beforeEach(() => {
|
|
14
|
-
searchDependenciesHelper = new SearchDependencies();
|
|
15
|
-
countryDurationPolicy = new CountryDuration(searchDependenciesHelper.dependencies);
|
|
16
|
-
searchDependenciesHelper.setResultsCount(10);
|
|
17
|
-
searchDependenciesHelper.setPageNumber(1);
|
|
18
|
-
searchDependenciesHelper.setPortalType(PortalType.BACHELOR);
|
|
19
|
-
});
|
|
20
|
-
it('Should return true when all conditions are met', async () => {
|
|
21
|
-
const countryId = '30'; // UK
|
|
22
|
-
const duration = '[360,360]'; // 1 year
|
|
23
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
24
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
25
|
-
[FilterKey.DURATION, [duration]]
|
|
26
|
-
]));
|
|
27
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
28
|
-
expect(result).toBe(true);
|
|
29
|
-
});
|
|
30
|
-
it('Should return false when multiple countries are selected', async () => {
|
|
31
|
-
const firstCountryId = '30'; // UK
|
|
32
|
-
const secondCountryId = '21'; // Portugal
|
|
33
|
-
const duration = '[360,360]'; // 1 year
|
|
34
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
35
|
-
[FilterKey.COUNTRY, [firstCountryId, secondCountryId]],
|
|
36
|
-
[FilterKey.DURATION, [duration]]
|
|
37
|
-
]));
|
|
38
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
39
|
-
expect(result).toBe(false);
|
|
40
|
-
});
|
|
41
|
-
it('Should return false when multiple duration values are selected', async () => {
|
|
42
|
-
const countryId = '30'; // UK
|
|
43
|
-
const firstDuration = '[360,360]'; // 1 year
|
|
44
|
-
const secondDuration = '[720,720]'; // 2 years
|
|
45
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
46
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
47
|
-
[FilterKey.DURATION, [firstDuration, secondDuration]]
|
|
48
|
-
]));
|
|
49
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
50
|
-
expect(result).toBe(false);
|
|
51
|
-
});
|
|
52
|
-
it('Should return false when no duration values are selected', async () => {
|
|
53
|
-
const countryId = '30'; // UK
|
|
54
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
|
|
55
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
56
|
-
expect(result).toBe(false);
|
|
57
|
-
});
|
|
58
|
-
it('Should return false when no countries are selected', async () => {
|
|
59
|
-
const duration = '[360,360]'; // 1 year
|
|
60
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DURATION, [duration]]]));
|
|
61
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
62
|
-
expect(result).toBe(false);
|
|
63
|
-
});
|
|
64
|
-
it('Should return false when other filters are selected', async () => {
|
|
65
|
-
const countryId = '30'; // UK
|
|
66
|
-
const duration = '[360,360]'; // 1 year
|
|
67
|
-
const disciplineId = '54'; // Agriculture & Forestry
|
|
68
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
69
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
70
|
-
[FilterKey.DURATION, [duration]],
|
|
71
|
-
[FilterKey.DISCIPLINES, [disciplineId]]
|
|
72
|
-
]));
|
|
73
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
74
|
-
expect(result).toBe(false);
|
|
75
|
-
});
|
|
76
|
-
it('Should return false when duration is not indexable (i.e. 2 years)', async () => {
|
|
77
|
-
const countryId = '30'; // UK
|
|
78
|
-
const duration = '[720,720]'; // 2 years
|
|
79
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
80
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
81
|
-
[FilterKey.DURATION, [duration]]
|
|
82
|
-
]));
|
|
83
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
84
|
-
expect(result).toBe(false);
|
|
85
|
-
});
|
|
86
|
-
it('Should return false when number of results is less than 7', async () => {
|
|
87
|
-
const countryId = '30'; // UK
|
|
88
|
-
const duration = '[360,360]'; // 1 year
|
|
89
|
-
searchDependenciesHelper.setResultsCount(6);
|
|
90
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
91
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
92
|
-
[FilterKey.DURATION, [duration]]
|
|
93
|
-
]));
|
|
94
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
95
|
-
expect(result).toBe(false);
|
|
96
|
-
});
|
|
97
|
-
it('Should return false when page number is higher than 2', async () => {
|
|
98
|
-
const countryId = '30'; // UK
|
|
99
|
-
const duration = '[360,360]'; // 1 year
|
|
100
|
-
searchDependenciesHelper.setPageNumber(4);
|
|
101
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
102
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
103
|
-
[FilterKey.DURATION, [duration]]
|
|
104
|
-
]));
|
|
105
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
106
|
-
expect(result).toBe(false);
|
|
107
|
-
});
|
|
108
|
-
it('Should return false when portal is distance learning', async () => {
|
|
109
|
-
const countryId = '30'; // UK
|
|
110
|
-
const duration = '[360,360]'; // 1 year
|
|
111
|
-
searchDependenciesHelper.setPortalType(PortalType.DISTANCE_LEARNING);
|
|
112
|
-
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
113
|
-
[FilterKey.COUNTRY, [countryId]],
|
|
114
|
-
[FilterKey.DURATION, [duration]]
|
|
115
|
-
]));
|
|
116
|
-
const result = await countryDurationPolicy.shouldIndex();
|
|
117
|
-
expect(result).toBe(false);
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
describe('generateUrls', () => {
|
|
121
|
-
let sitemapDependenciesHelper;
|
|
122
|
-
let countryDurationPolicy;
|
|
123
|
-
beforeEach(() => {
|
|
124
|
-
sitemapDependenciesHelper = new SitemapDependencies();
|
|
125
|
-
sitemapDependenciesHelper.setProgrammeCount(10); // More than 7 programs
|
|
126
|
-
countryDurationPolicy = new CountryDuration(sitemapDependenciesHelper.dependencies);
|
|
127
|
-
CountryPresenter.getInstance = vi.fn().mockReturnValue({
|
|
128
|
-
getFragments: vi.fn().mockReturnValue([
|
|
129
|
-
{ id: '30', path: 'uk' },
|
|
130
|
-
{ id: '202', path: 'australia' },
|
|
131
|
-
{ id: '56', path: 'usa' }
|
|
132
|
-
])
|
|
133
|
-
});
|
|
134
|
-
DurationPresenter.getInstance = vi.fn().mockReturnValue({
|
|
135
|
-
getFragments: vi.fn().mockReturnValue([
|
|
136
|
-
{ id: '[360,360]', path: '1-year' },
|
|
137
|
-
{ id: '[720,720]', path: '2-years' },
|
|
138
|
-
{ id: '[1080,1080]', path: '3-years' },
|
|
139
|
-
{ id: '[1440,1440]', path: '4-years' },
|
|
140
|
-
{ id: '[-1,719]', path: 'less-than-2-years' } // Non-indexable duration
|
|
141
|
-
])
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
afterEach(() => {
|
|
145
|
-
sitemapDependenciesHelper.resetMocks();
|
|
146
|
-
});
|
|
147
|
-
it('Should generate URLs for valid country-duration combinations', async () => {
|
|
148
|
-
// Mock the checkRulesForSitemap to filter out non-indexable durations for all countries
|
|
149
|
-
const resultMap = new Map();
|
|
150
|
-
// Set up all possible combinations - only [360,360] (1-year) is allowed by the policy
|
|
151
|
-
for (const country of ['30', '202', '56']) {
|
|
152
|
-
for (const duration of ['[360,360]', '[720,720]', '[1080,1080]', '[1440,1440]', '[-1,719]']) {
|
|
153
|
-
const key = `${FilterKey.COUNTRY}:${country}|${FilterKey.DURATION}:${duration}`;
|
|
154
|
-
// Only [360,360] should be allowed by the policy's allowedDurationIds
|
|
155
|
-
resultMap.set(key, duration === '[360,360]');
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
159
|
-
// Call the method via reflection since it's protected
|
|
160
|
-
const urls = await countryDurationPolicy.generateUrls();
|
|
161
|
-
// Calculate expected URLs: 3 countries * 1 duration ([360,360] only) * 1 page = 3 URLs
|
|
162
|
-
expect(urls).toHaveLength(3);
|
|
163
|
-
// Verify paths structure
|
|
164
|
-
expect(urls).toContain('1-year/uk');
|
|
165
|
-
expect(urls).toContain('1-year/australia');
|
|
166
|
-
expect(urls).toContain('1-year/usa');
|
|
167
|
-
// Verify other durations are excluded
|
|
168
|
-
expect(urls).not.toContain('2-years/uk');
|
|
169
|
-
expect(urls).not.toContain('3-years/uk');
|
|
170
|
-
expect(urls).not.toContain('4-years/uk');
|
|
171
|
-
expect(urls).not.toContain('less-than-2-years/uk');
|
|
172
|
-
});
|
|
173
|
-
it('Should exclude specific country-duration combinations based on rules', async () => {
|
|
174
|
-
// Create a map that returns false for specific combinations
|
|
175
|
-
const resultMap = new Map();
|
|
176
|
-
// Only [360,360] is allowed by policy, but we can exclude specific countries
|
|
177
|
-
for (const country of ['30', '202', '56']) {
|
|
178
|
-
for (const duration of ['[360,360]', '[720,720]', '[1080,1080]', '[1440,1440]', '[-1,719]']) {
|
|
179
|
-
const key = `${FilterKey.COUNTRY}:${country}|${FilterKey.DURATION}:${duration}`;
|
|
180
|
-
// Only [360,360] is allowed and exclude UK (30) for testing
|
|
181
|
-
const shouldPass = duration === '[360,360]' && country !== '30';
|
|
182
|
-
resultMap.set(key, shouldPass);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
186
|
-
const urls = await countryDurationPolicy.generateUrls();
|
|
187
|
-
// Calculate expected URLs: 2 countries (excluding UK) * 1 duration ([360,360]) = 2 URLs
|
|
188
|
-
expect(urls).toHaveLength(2);
|
|
189
|
-
// Verify excluded combinations
|
|
190
|
-
expect(urls).not.toContain('1-year/uk');
|
|
191
|
-
expect(urls).not.toContain('2-years/australia');
|
|
192
|
-
expect(urls).not.toContain('3-years/usa');
|
|
193
|
-
expect(urls).not.toContain('less-than-2-years/uk');
|
|
194
|
-
// Verify included combinations
|
|
195
|
-
expect(urls).toContain('1-year/australia');
|
|
196
|
-
expect(urls).toContain('1-year/usa');
|
|
197
|
-
});
|
|
198
|
-
it('Should exclude all URLs when all rule checks fail', async () => {
|
|
199
|
-
// Create a map that returns false for all combinations
|
|
200
|
-
const resultMap = new Map();
|
|
201
|
-
for (const country of ['30', '202', '56']) {
|
|
202
|
-
// Include [360,360] since that's what the policy actually uses
|
|
203
|
-
for (const duration of ['[360,360]', '[720,720]', '[1080,1080]', '[1440,1440]', '[-1,719]']) {
|
|
204
|
-
const key = `${FilterKey.COUNTRY}:${country}|${FilterKey.DURATION}:${duration}`;
|
|
205
|
-
resultMap.set(key, false);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
|
|
209
|
-
const urls = await countryDurationPolicy.generateUrls();
|
|
210
|
-
// Should include no URLs
|
|
211
|
-
expect(urls).toHaveLength(0);
|
|
212
|
-
});
|
|
213
|
-
it('Should handle empty country fragments', async () => {
|
|
214
|
-
// Mock the CountryPresenter to return empty fragments
|
|
215
|
-
CountryPresenter.getInstance.mockReturnValueOnce({
|
|
216
|
-
getFragments: vi.fn().mockReturnValue([])
|
|
217
|
-
});
|
|
218
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap();
|
|
219
|
-
const urls = await countryDurationPolicy.generateUrls();
|
|
220
|
-
// Should return empty array
|
|
221
|
-
expect(urls).toHaveLength(0);
|
|
222
|
-
});
|
|
223
|
-
it('Should handle empty duration fragments', async () => {
|
|
224
|
-
// Mock the DurationPresenter to return empty fragments
|
|
225
|
-
DurationPresenter.getInstance.mockReturnValueOnce({
|
|
226
|
-
getFragments: vi.fn().mockReturnValue([])
|
|
227
|
-
});
|
|
228
|
-
sitemapDependenciesHelper.mockCheckRulesForSitemap();
|
|
229
|
-
const urls = await countryDurationPolicy.generateUrls();
|
|
230
|
-
// Should return empty array
|
|
231
|
-
expect(urls).toHaveLength(0);
|
|
232
|
-
});
|
|
233
|
-
});
|
|
234
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|