@studyportals/fawkes 8.7.0 → 8.7.1-0
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 +8 -4
- 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/{DisciplineTuitionFee.d.ts → DegreeTuitionFeeArea.d.ts} +5 -5
- package/dist/src/programmes/policies/{DegreeAreaTuitionFee.js → DegreeTuitionFeeArea.js} +7 -7
- package/dist/src/programmes/policies/{DegreeAttendanceTuitionFee.d.ts → DegreeTuitionFeeAttendance.d.ts} +2 -2
- package/dist/src/programmes/policies/{DegreeAttendanceTuitionFee.js → DegreeTuitionFeeAttendance.js} +7 -7
- package/dist/src/programmes/policies/{DegreeContinentTuitionFee.d.ts → DegreeTuitionFeeContinent.d.ts} +2 -2
- package/dist/src/programmes/policies/{DegreeContinentTuitionFee.js → DegreeTuitionFeeContinent.js} +6 -6
- package/dist/src/programmes/policies/{DegreeFormatTuitionFee.d.ts → DegreeTuitionFeeFormat.d.ts} +3 -3
- package/dist/src/programmes/policies/{DegreeFormatTuitionFee.js → DegreeTuitionFeeFormat.js} +9 -9
- 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/policies/index.d.ts +4 -5
- package/dist/src/programmes/policies/index.js +4 -5
- 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 +15 -15
- 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/dist/tests/common/rules/NoFiltersSelectedRule.test.d.mts +1 -0
- package/dist/tests/common/rules/NoFiltersSelectedRule.test.mjs +40 -0
- package/dist/tests/common/rules/OnlyFiltersSelectedRule.test.d.mts +1 -0
- package/dist/tests/common/rules/OnlyFiltersSelectedRule.test.mjs +70 -0
- package/dist/tests/common/rules/SingleValueSelectedForFilterRule.test.d.mts +1 -0
- package/dist/tests/common/rules/SingleValueSelectedForFilterRule.test.mjs +54 -0
- package/dist/tests/organisations/policies/our-picks/Area.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/Area.test.mjs +125 -0
- package/dist/tests/organisations/policies/our-picks/AreaAttendance.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/AreaAttendance.test.mjs +238 -0
- package/dist/tests/organisations/policies/our-picks/Attendance.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/Attendance.test.mjs +119 -0
- package/dist/tests/organisations/policies/our-picks/Continent.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/Continent.test.mjs +105 -0
- package/dist/tests/organisations/policies/our-picks/Country.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/Country.test.mjs +109 -0
- package/dist/tests/organisations/policies/our-picks/CountryAreaCity.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/CountryAreaCity.test.mjs +152 -0
- package/dist/tests/organisations/policies/our-picks/CountryAttendance.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/CountryAttendance.test.mjs +223 -0
- package/dist/tests/organisations/policies/our-picks/CountryCity.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/CountryCity.test.mjs +109 -0
- package/dist/tests/organisations/policies/our-picks/Unfiltered.test.d.mts +1 -0
- package/dist/tests/organisations/policies/our-picks/Unfiltered.test.mjs +60 -0
- package/dist/tests/organisations/policies/ranked/RankedArea.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedArea.test.mjs +149 -0
- package/dist/tests/organisations/policies/ranked/RankedAreaDiscipline.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedAreaDiscipline.test.mjs +237 -0
- package/dist/tests/organisations/policies/ranked/RankedAttendance.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedAttendance.test.mjs +139 -0
- package/dist/tests/organisations/policies/ranked/RankedAttendanceDiscipline.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedAttendanceDiscipline.test.mjs +224 -0
- package/dist/tests/organisations/policies/ranked/RankedContinent.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedContinent.test.mjs +125 -0
- package/dist/tests/organisations/policies/ranked/RankedContinentAttendance.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedContinentAttendance.test.mjs +253 -0
- package/dist/tests/organisations/policies/ranked/RankedCountry.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedCountry.test.mjs +131 -0
- package/dist/tests/organisations/policies/ranked/RankedCountryAttendance.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedCountryAttendance.test.mjs +230 -0
- package/dist/tests/organisations/policies/ranked/RankedCountryDiscipline.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedCountryDiscipline.test.mjs +197 -0
- package/dist/tests/organisations/policies/ranked/RankedDiscipline.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedDiscipline.test.mjs +124 -0
- package/dist/tests/organisations/policies/ranked/RankedUnfiltered.test.d.mts +1 -0
- package/dist/tests/organisations/policies/ranked/RankedUnfiltered.test.mjs +75 -0
- package/dist/tests/organisations/rules/ContinentIsEuropeRule.test.d.mts +1 -0
- package/dist/tests/organisations/rules/ContinentIsEuropeRule.test.mjs +59 -0
- package/dist/tests/organisations/rules/MinimumAmountOfRankedResultsRule.test.d.mts +1 -0
- package/dist/tests/organisations/rules/MinimumAmountOfRankedResultsRule.test.mjs +77 -0
- package/dist/tests/organisations/rules/MinimumAmountOfResultsRule.test.d.mts +1 -0
- package/dist/tests/organisations/rules/MinimumAmountOfResultsRule.test.mjs +77 -0
- package/dist/tests/organisations/rules/OnlineAttendanceRule.test.d.mts +1 -0
- package/dist/tests/organisations/rules/OnlineAttendanceRule.test.mjs +59 -0
- package/dist/tests/organisations/rules/SearchVolumeAreasAttendanceRule.test.d.mts +1 -0
- package/dist/tests/organisations/rules/SearchVolumeAreasAttendanceRule.test.mjs +59 -0
- package/dist/tests/organisations/rules/SearchVolumeAreasDisciplineRule.test.d.mts +1 -0
- package/dist/tests/organisations/rules/SearchVolumeAreasDisciplineRule.test.mjs +59 -0
- package/dist/tests/organisations/rules/SearchVolumeCountriesAttendanceRule.test.d.mts +1 -0
- package/dist/tests/organisations/rules/SearchVolumeCountriesAttendanceRule.test.mjs +59 -0
- package/dist/tests/organisations/utils/SearchDependencies.util.d.mts +20 -0
- package/dist/tests/organisations/utils/SearchDependencies.util.mjs +88 -0
- package/dist/tests/organisations/utils/SitemapDependencies.util.d.mts +18 -0
- package/dist/tests/organisations/utils/SitemapDependencies.util.mjs +54 -0
- package/dist/tests/presenters/AreaPresenter.test.d.mts +1 -0
- package/dist/tests/presenters/AreaPresenter.test.mjs +46 -0
- package/dist/tests/presenters/AttendancePresenter.test.d.mts +1 -0
- package/dist/tests/presenters/AttendancePresenter.test.mjs +41 -0
- package/dist/tests/presenters/ContinentPresenter.test.d.mts +1 -0
- package/dist/tests/presenters/ContinentPresenter.test.mjs +44 -0
- package/dist/tests/presenters/CountryPresenter.test.d.mts +1 -0
- package/dist/tests/presenters/CountryPresenter.test.mjs +50 -0
- package/dist/tests/presenters/DegreePresenter.test.d.mts +1 -0
- package/dist/tests/presenters/DegreePresenter.test.mjs +51 -0
- package/dist/tests/presenters/DisciplinePresenter.test.d.mts +1 -0
- package/dist/tests/presenters/DisciplinePresenter.test.mjs +40 -0
- package/dist/tests/presenters/DurationPresenter.test.d.mts +1 -0
- package/dist/tests/presenters/DurationPresenter.test.mjs +64 -0
- package/dist/tests/presenters/EducationalFormPresenter.test.d.mts +1 -0
- package/dist/tests/presenters/EducationalFormPresenter.test.mjs +60 -0
- package/dist/tests/presenters/FormatPresenter.test.d.mts +1 -0
- package/dist/tests/presenters/FormatPresenter.test.mjs +43 -0
- package/dist/tests/presenters/SpecialProgrammesPresenter.test.d.mts +1 -0
- package/dist/tests/presenters/SpecialProgrammesPresenter.test.mjs +66 -0
- package/dist/tests/presenters/TuitionFeePresenter.test.d.mts +1 -0
- package/dist/tests/presenters/TuitionFeePresenter.test.mjs +52 -0
- package/dist/tests/programmes/policies/Area.test.d.mts +1 -0
- package/dist/tests/programmes/policies/Area.test.mjs +153 -0
- package/dist/tests/programmes/policies/Attendance.test.d.mts +1 -0
- package/dist/tests/programmes/policies/Attendance.test.mjs +173 -0
- package/dist/tests/programmes/policies/AttendanceDegree.test.d.mts +1 -0
- package/dist/tests/programmes/policies/AttendanceDegree.test.mjs +291 -0
- package/dist/tests/programmes/policies/Continent.test.d.mts +1 -0
- package/dist/tests/programmes/policies/Continent.test.mjs +169 -0
- package/dist/tests/programmes/policies/Country.test.d.mts +1 -0
- package/dist/tests/programmes/policies/Country.test.mjs +164 -0
- package/dist/tests/programmes/policies/CountryAttendance.test.d.mts +1 -0
- package/dist/tests/programmes/policies/CountryAttendance.test.mjs +251 -0
- package/dist/tests/programmes/policies/CountryAttendanceDegree.test.d.mts +1 -0
- package/dist/tests/programmes/policies/CountryAttendanceDegree.test.mjs +337 -0
- package/dist/tests/programmes/policies/CountryDegree.test.d.mts +1 -0
- package/dist/tests/programmes/policies/CountryDegree.test.mjs +262 -0
- package/dist/tests/programmes/policies/CountryDuration.test.d.mts +1 -0
- package/dist/tests/programmes/policies/CountryDuration.test.mjs +234 -0
- package/dist/tests/programmes/policies/CountryDurationDegree.test.d.mts +1 -0
- package/dist/tests/programmes/policies/CountryDurationDegree.test.mjs +304 -0
- package/dist/tests/programmes/policies/CountryEducationalForm.test.d.mts +1 -0
- package/dist/tests/programmes/policies/CountryEducationalForm.test.mjs +260 -0
- package/dist/tests/programmes/policies/CountryFormat.test.d.mts +1 -0
- package/dist/tests/programmes/policies/CountryFormat.test.mjs +253 -0
- package/dist/tests/programmes/policies/DegreeAttendanceDiscipline.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DegreeAttendanceDiscipline.test.mjs +179 -0
- package/dist/tests/programmes/policies/DegreeCountryAttendance.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DegreeCountryAttendance.test.mjs +267 -0
- package/dist/tests/programmes/policies/DegreeCountryTuitionFee.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DegreeCountryTuitionFee.test.mjs +217 -0
- package/dist/tests/programmes/policies/DegreeFormat.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DegreeFormat.test.mjs +221 -0
- package/dist/tests/programmes/policies/Discipline.test.d.mts +1 -0
- package/dist/tests/programmes/policies/Discipline.test.mjs +159 -0
- package/dist/tests/programmes/policies/DisciplineAttendance.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DisciplineAttendance.test.mjs +292 -0
- package/dist/tests/programmes/policies/DisciplineContinent.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DisciplineContinent.test.mjs +253 -0
- package/dist/tests/programmes/policies/DisciplineCountry.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DisciplineCountry.test.mjs +244 -0
- package/dist/tests/programmes/policies/DisciplineCountryEducationalForm.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DisciplineCountryEducationalForm.test.mjs +345 -0
- package/dist/tests/programmes/policies/DisciplineDegree.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DisciplineDegree.test.mjs +273 -0
- package/dist/tests/programmes/policies/DisciplineDuration.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DisciplineDuration.test.mjs +278 -0
- package/dist/tests/programmes/policies/DisciplineEducationalForm.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DisciplineEducationalForm.test.mjs +302 -0
- package/dist/tests/programmes/policies/DisciplineFormat.test.d.mts +1 -0
- package/dist/tests/programmes/policies/DisciplineFormat.test.mjs +266 -0
- package/dist/tests/programmes/policies/Duration.test.d.mts +1 -0
- package/dist/tests/programmes/policies/Duration.test.mjs +179 -0
- package/dist/tests/programmes/policies/Format.test.d.mts +1 -0
- package/dist/tests/programmes/policies/Format.test.mjs +117 -0
- package/dist/tests/programmes/policies/NewRulesValidation.test.d.mts +1 -0
- package/dist/tests/programmes/policies/NewRulesValidation.test.mjs +320 -0
- package/dist/tests/programmes/policies/SpecialProgrammes.test.d.mts +1 -0
- package/dist/tests/programmes/policies/SpecialProgrammes.test.mjs +171 -0
- package/dist/tests/programmes/policies/TuitionFeeAttendanceDiscipline.test.d.mts +1 -0
- package/dist/tests/programmes/policies/TuitionFeeAttendanceDiscipline.test.mjs +360 -0
- package/dist/tests/programmes/policies/TuitionFeeContinent.test.d.mts +1 -0
- package/dist/tests/programmes/policies/TuitionFeeContinent.test.mjs +293 -0
- package/dist/tests/programmes/policies/TuitionFeeCountry.test.d.mts +1 -0
- package/dist/tests/programmes/policies/TuitionFeeCountry.test.mjs +266 -0
- package/dist/tests/programmes/policies/TuitionFeeDiscipline.test.d.mts +1 -0
- package/dist/tests/programmes/policies/TuitionFeeDiscipline.test.mjs +267 -0
- package/dist/tests/programmes/policies/Unfiltered.test.d.mts +1 -0
- package/dist/tests/programmes/policies/Unfiltered.test.mjs +90 -0
- package/dist/tests/programmes/rules/AffordableTuitionFeeRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/AffordableTuitionFeeRule.test.mjs +27 -0
- package/dist/tests/programmes/rules/DegreeCountrySpecificRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/DegreeCountrySpecificRule.test.mjs +121 -0
- package/dist/tests/programmes/rules/DegreeDisciplineRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/DegreeDisciplineRule.test.mjs +169 -0
- package/dist/tests/programmes/rules/IndexableDegreeRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/IndexableDegreeRule.test.mjs +101 -0
- package/dist/tests/programmes/rules/IndexableDurationRule.test..d.mts +1 -0
- package/dist/tests/programmes/rules/IndexableDurationRule.test..mjs +25 -0
- package/dist/tests/programmes/rules/IndexableEducationalFormRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/IndexableEducationalFormRule.test.mjs +27 -0
- package/dist/tests/programmes/rules/IndexablePageNumberRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/IndexablePageNumberRule.test.mjs +51 -0
- package/dist/tests/programmes/rules/MbaDegreeRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/MbaDegreeRule.test.mjs +55 -0
- package/dist/tests/programmes/rules/MbaOrMscDegreeRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/MbaOrMscDegreeRule.test.mjs +53 -0
- package/dist/tests/programmes/rules/MinimumAmountOfResultsRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/MinimumAmountOfResultsRule.test.mjs +79 -0
- package/dist/tests/programmes/rules/NotDistanceLearningPortalRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/NotDistanceLearningPortalRule.test.mjs +57 -0
- package/dist/tests/programmes/rules/OneYearDurationRule.test..d.mts +1 -0
- package/dist/tests/programmes/rules/OneYearDurationRule.test..mjs +40 -0
- package/dist/tests/programmes/rules/OnlineAttendanceRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/OnlineAttendanceRule.test.mjs +69 -0
- package/dist/tests/programmes/rules/PartTimeFormatRule.test.d.mts +1 -0
- package/dist/tests/programmes/rules/PartTimeFormatRule.test.mjs +27 -0
- package/dist/tests/programmes/utils/SearchDependencies.util.d.mts +16 -0
- package/dist/tests/programmes/utils/SearchDependencies.util.mjs +73 -0
- package/dist/tests/programmes/utils/SitemapDependencies.util.d.mts +15 -0
- package/dist/tests/programmes/utils/SitemapDependencies.util.mjs +49 -0
- package/dist/tests/scholarships/policies/Area.test.d.mts +1 -0
- package/dist/tests/scholarships/policies/Area.test.mjs +121 -0
- package/dist/tests/scholarships/policies/Country.test.d.mts +1 -0
- package/dist/tests/scholarships/policies/Country.test.mjs +97 -0
- package/dist/tests/scholarships/policies/Discipline.test.d.mts +1 -0
- package/dist/tests/scholarships/policies/Discipline.test.mjs +93 -0
- package/dist/tests/scholarships/policies/DisciplineCountry.test.d.mts +1 -0
- package/dist/tests/scholarships/policies/DisciplineCountry.test.mjs +151 -0
- package/dist/tests/scholarships/policies/Unfiltered.test.d.mts +1 -0
- package/dist/tests/scholarships/policies/Unfiltered.test.mjs +44 -0
- package/dist/tests/scholarships/policies/UniversityCountry.test.d.mts +1 -0
- package/dist/tests/scholarships/policies/UniversityCountry.test.mjs +115 -0
- package/dist/tests/scholarships/rules/ExceptAustaliaAreasRule.test.d.mts +1 -0
- package/dist/tests/scholarships/rules/ExceptAustaliaAreasRule.test.mjs +64 -0
- package/dist/tests/scholarships/rules/SearchVolumeAreasRule.test.d.mts +1 -0
- package/dist/tests/scholarships/rules/SearchVolumeAreasRule.test.mjs +62 -0
- package/dist/tests/scholarships/rules/SearchVolumeCountriesDisciplinesRule.test.d.mts +1 -0
- package/dist/tests/scholarships/rules/SearchVolumeCountriesDisciplinesRule.test.mjs +114 -0
- package/dist/tests/scholarships/rules/SearchVolumeCountriesRule.test.d.mts +1 -0
- package/dist/tests/scholarships/rules/SearchVolumeCountriesRule.test.mjs +62 -0
- package/dist/tests/scholarships/rules/SearchVolumeDisciplinesRule.test.d.mts +1 -0
- package/dist/tests/scholarships/rules/SearchVolumeDisciplinesRule.test.mjs +62 -0
- package/dist/tests/scholarships/utils/SearchDependencies.util.d.mts +16 -0
- package/dist/tests/scholarships/utils/SearchDependencies.util.mjs +70 -0
- package/dist/tests/scholarships/utils/SitemapDependencies.util.d.mts +11 -0
- package/dist/tests/scholarships/utils/SitemapDependencies.util.mjs +33 -0
- package/dist/tests/sitemap-generator/BaseSitemapUrlGeneratorManager.test.d.mts +1 -0
- package/dist/tests/sitemap-generator/BaseSitemapUrlGeneratorManager.test.mjs +82 -0
- package/dist/tests/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.test.d.mts +1 -0
- package/dist/tests/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.test.mjs +85 -0
- package/dist/tests/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.test.d.mts +1 -0
- package/dist/tests/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.test.mjs +77 -0
- package/dist/tests/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.test.d.mts +1 -0
- package/dist/tests/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.test.mjs +60 -0
- package/dist/tests/structured-data/OrganisationStructuredDataFactory.test.d.mts +1 -0
- package/dist/tests/structured-data/OrganisationStructuredDataFactory.test.mjs +334 -0
- package/dist/tests/structured-data/ProgrammeStructuredDataFactory.test.d.mts +1 -0
- package/dist/tests/structured-data/ProgrammeStructuredDataFactory.test.mjs +562 -0
- package/dist/tests/structured-data/ScholarshipStructuredDataFactory.test.d.mts +1 -0
- package/dist/tests/structured-data/ScholarshipStructuredDataFactory.test.mjs +292 -0
- package/dist/tests/structured-data/SearchStructuredDataFactory.paywall.test.d.mts +1 -0
- package/dist/tests/structured-data/SearchStructuredDataFactory.paywall.test.mjs +258 -0
- package/package.json +1 -1
- package/dist/src/programmes/policies/AttendanceTuitionFee.d.ts +0 -17
- package/dist/src/programmes/policies/AttendanceTuitionFee.js +0 -51
- package/dist/src/programmes/policies/ContinentTuitionFee.d.ts +0 -16
- package/dist/src/programmes/policies/ContinentTuitionFee.js +0 -46
- package/dist/src/programmes/policies/CountryTuitionFee.d.ts +0 -16
- package/dist/src/programmes/policies/CountryTuitionFee.js +0 -46
- package/dist/src/programmes/policies/DegreeAreaTuitionFee.d.ts +0 -16
- package/dist/src/programmes/policies/DisciplineTuitionFee.js +0 -46
- package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.d.ts +0 -17
- package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.js +0 -54
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { NoFiltersSelectedRule } from '@/common/rules/NoFiltersSelectedRule';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
3
|
+
import { SearchDependencies } from '../../organisations/utils/SearchDependencies.util.mjs';
|
|
4
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
5
|
+
describe('Rule:NoFiltersSelected', () => {
|
|
6
|
+
describe('forSearch', () => {
|
|
7
|
+
let searchDependenciesHelper;
|
|
8
|
+
let rule;
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
searchDependenciesHelper = new SearchDependencies();
|
|
11
|
+
rule = new NoFiltersSelectedRule();
|
|
12
|
+
});
|
|
13
|
+
it('Returns true if no filters are selected', async () => {
|
|
14
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([]));
|
|
15
|
+
const result = await rule.forSearch(searchDependenciesHelper.dependencies);
|
|
16
|
+
expect(result).toBe(true);
|
|
17
|
+
});
|
|
18
|
+
it('Returns false if at least one filter is selected', async () => {
|
|
19
|
+
const countryId = '999'; // Dummy country
|
|
20
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
|
|
21
|
+
const result = await rule.forSearch(searchDependenciesHelper.dependencies);
|
|
22
|
+
expect(result).toBe(false);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
describe('forSitemapGenerator', () => {
|
|
26
|
+
let rule;
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
rule = new NoFiltersSelectedRule();
|
|
29
|
+
});
|
|
30
|
+
it('Returns true if no filters are selected', async () => {
|
|
31
|
+
const result = await rule.forSitemapGenerator(new Map([]));
|
|
32
|
+
expect(result).toBe(true);
|
|
33
|
+
});
|
|
34
|
+
it('Returns false at least one filter is selected', async () => {
|
|
35
|
+
const countryId = '999'; // Dummy country
|
|
36
|
+
const result = await rule.forSitemapGenerator(new Map([[FilterKey.COUNTRY, [countryId]]]));
|
|
37
|
+
expect(result).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
2
|
+
import { SearchDependencies } from '../../organisations/utils/SearchDependencies.util.mjs';
|
|
3
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
4
|
+
import { OnlyFiltersSelectedRule } from '@/common/rules/OnlyFiltersSelectedRule';
|
|
5
|
+
const expectedFilterKeys = [FilterKey.COUNTRY, FilterKey.AREA];
|
|
6
|
+
describe('Rule:OnlyFiltersSelected', () => {
|
|
7
|
+
describe('forSearch', () => {
|
|
8
|
+
let searchDependenciesHelper;
|
|
9
|
+
let rule;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
searchDependenciesHelper = new SearchDependencies();
|
|
12
|
+
rule = new OnlyFiltersSelectedRule(expectedFilterKeys);
|
|
13
|
+
});
|
|
14
|
+
it('Returns true if exactly the expected filters are selected', async () => {
|
|
15
|
+
const dummyId = '999';
|
|
16
|
+
const filterKeyValues = new Map();
|
|
17
|
+
for (const filterKey of expectedFilterKeys) {
|
|
18
|
+
filterKeyValues.set(filterKey, [dummyId]);
|
|
19
|
+
}
|
|
20
|
+
searchDependenciesHelper.setFilterKeyValues(filterKeyValues);
|
|
21
|
+
const result = await rule.forSearch(searchDependenciesHelper.dependencies);
|
|
22
|
+
expect(result).toBe(true);
|
|
23
|
+
});
|
|
24
|
+
it('Returns false if not all expected filters are selected', async () => {
|
|
25
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([]));
|
|
26
|
+
const result = await rule.forSearch(searchDependenciesHelper.dependencies);
|
|
27
|
+
expect(result).toBe(false);
|
|
28
|
+
});
|
|
29
|
+
it('Returns false if extra filters are selected', async () => {
|
|
30
|
+
const dummyId = '999';
|
|
31
|
+
const filterKeyValues = new Map();
|
|
32
|
+
for (const filterKey of expectedFilterKeys) {
|
|
33
|
+
filterKeyValues.set(filterKey, [dummyId]);
|
|
34
|
+
}
|
|
35
|
+
filterKeyValues.set(FilterKey.DELIVERY_METHOD, [dummyId]);
|
|
36
|
+
searchDependenciesHelper.setFilterKeyValues(filterKeyValues);
|
|
37
|
+
const result = await rule.forSearch(searchDependenciesHelper.dependencies);
|
|
38
|
+
expect(result).toBe(false);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe('forSitemapGenerator', () => {
|
|
42
|
+
let rule;
|
|
43
|
+
beforeEach(() => {
|
|
44
|
+
rule = new OnlyFiltersSelectedRule(expectedFilterKeys);
|
|
45
|
+
});
|
|
46
|
+
it('Returns true if exactly the expected filters are selected', async () => {
|
|
47
|
+
const dummyId = '999';
|
|
48
|
+
const filterKeyValues = new Map();
|
|
49
|
+
for (const filterKey of expectedFilterKeys) {
|
|
50
|
+
filterKeyValues.set(filterKey, [dummyId]);
|
|
51
|
+
}
|
|
52
|
+
const result = await rule.forSitemapGenerator(filterKeyValues);
|
|
53
|
+
expect(result).toBe(true);
|
|
54
|
+
});
|
|
55
|
+
it('Returns false if not all expected filters are selected', async () => {
|
|
56
|
+
const result = await rule.forSitemapGenerator(new Map([]));
|
|
57
|
+
expect(result).toBe(false);
|
|
58
|
+
});
|
|
59
|
+
it('Returns false if extra filters are selected', async () => {
|
|
60
|
+
const dummyId = '999';
|
|
61
|
+
const filterKeyValues = new Map();
|
|
62
|
+
for (const filterKey of expectedFilterKeys) {
|
|
63
|
+
filterKeyValues.set(filterKey, [dummyId]);
|
|
64
|
+
}
|
|
65
|
+
filterKeyValues.set(FilterKey.DELIVERY_METHOD, [dummyId]);
|
|
66
|
+
const result = await rule.forSitemapGenerator(filterKeyValues);
|
|
67
|
+
expect(result).toBe(false);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
2
|
+
import { SearchDependencies } from '../../organisations/utils/SearchDependencies.util.mjs';
|
|
3
|
+
import { beforeEach, describe, expect, it } from 'vitest';
|
|
4
|
+
import { SingleValueSelectedForFilterRule } from '@/common/rules/SingleValueSelectedForFilterRule';
|
|
5
|
+
const expectedFilterKey = FilterKey.COUNTRY;
|
|
6
|
+
describe('Rule:SingleValueSelectedForFilter', () => {
|
|
7
|
+
describe('forSearch', () => {
|
|
8
|
+
let searchDependenciesHelper;
|
|
9
|
+
let rule;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
searchDependenciesHelper = new SearchDependencies();
|
|
12
|
+
rule = new SingleValueSelectedForFilterRule(expectedFilterKey);
|
|
13
|
+
});
|
|
14
|
+
it('Returns true if one value is selected', async () => {
|
|
15
|
+
const dummyId = '999';
|
|
16
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([[expectedFilterKey, [dummyId]]]));
|
|
17
|
+
const result = await rule.forSearch(searchDependenciesHelper.dependencies);
|
|
18
|
+
expect(result).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
it('Returns false if no value is selected', async () => {
|
|
21
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([]));
|
|
22
|
+
const result = await rule.forSearch(searchDependenciesHelper.dependencies);
|
|
23
|
+
expect(result).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
it('Returns false if multiple values are selected', async () => {
|
|
26
|
+
const firstDummyId = '1';
|
|
27
|
+
const secondDummyId = '2';
|
|
28
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([[expectedFilterKey, [firstDummyId, secondDummyId]]]));
|
|
29
|
+
const result = await rule.forSearch(searchDependenciesHelper.dependencies);
|
|
30
|
+
expect(result).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('forSitemapGenerator', () => {
|
|
34
|
+
let rule;
|
|
35
|
+
beforeEach(() => {
|
|
36
|
+
rule = new SingleValueSelectedForFilterRule(expectedFilterKey);
|
|
37
|
+
});
|
|
38
|
+
it('Returns true if one value is selected', async () => {
|
|
39
|
+
const dummyId = '999';
|
|
40
|
+
const result = await rule.forSitemapGenerator(new Map([[expectedFilterKey, [dummyId]]]));
|
|
41
|
+
expect(result).toBe(true);
|
|
42
|
+
});
|
|
43
|
+
it('Returns false if no value is selected', async () => {
|
|
44
|
+
const result = await rule.forSitemapGenerator(new Map([]));
|
|
45
|
+
expect(result).toBe(false);
|
|
46
|
+
});
|
|
47
|
+
it('Returns false if multiple values are selected', async () => {
|
|
48
|
+
const firstDummyId = '1';
|
|
49
|
+
const secondDummyId = '2';
|
|
50
|
+
const result = await rule.forSitemapGenerator(new Map([[expectedFilterKey, [firstDummyId, secondDummyId]]]));
|
|
51
|
+
expect(result).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
3
|
+
import { Area } from '@/organisations/policies/our-picks/Area';
|
|
4
|
+
import { SearchDependencies } from '../../utils/SearchDependencies.util.mjs';
|
|
5
|
+
import { SortingOptions } from '@/enums/SortingOptions';
|
|
6
|
+
import { SitemapDependencies } from '../../utils/SitemapDependencies.util.mjs';
|
|
7
|
+
import { AreaPresenter } from '@/presenters/AreaPresenter';
|
|
8
|
+
import { PortalType } from '@studyportals/domain-client';
|
|
9
|
+
describe('Policy:Area', () => {
|
|
10
|
+
describe('shouldIndex', () => {
|
|
11
|
+
let searchDependenciesHelper;
|
|
12
|
+
let areaPolicy;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
searchDependenciesHelper = new SearchDependencies();
|
|
15
|
+
areaPolicy = new Area(searchDependenciesHelper.dependencies);
|
|
16
|
+
searchDependenciesHelper.setSortingState(SortingOptions.OUR_PICKS);
|
|
17
|
+
searchDependenciesHelper.setNumberOfResults(10);
|
|
18
|
+
});
|
|
19
|
+
it('Should return true when all conditions are met', async () => {
|
|
20
|
+
const areaId = '996'; // England
|
|
21
|
+
const countryId = '30'; // UK
|
|
22
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
23
|
+
[FilterKey.AREA, [areaId]],
|
|
24
|
+
[FilterKey.COUNTRY, [countryId]]
|
|
25
|
+
]));
|
|
26
|
+
const result = await areaPolicy.shouldIndex();
|
|
27
|
+
expect(result).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should return false when the selected portal type is %s', async (portalType) => {
|
|
30
|
+
const areaId = '996'; // England
|
|
31
|
+
const countryId = '30'; // UK
|
|
32
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
33
|
+
[FilterKey.AREA, [areaId]],
|
|
34
|
+
[FilterKey.COUNTRY, [countryId]]
|
|
35
|
+
]));
|
|
36
|
+
searchDependenciesHelper.setPortalType(portalType);
|
|
37
|
+
const result = await areaPolicy.shouldIndex();
|
|
38
|
+
expect(result).toBe(false);
|
|
39
|
+
});
|
|
40
|
+
it('Should return false when University Meta Ranking sorting is selected', async () => {
|
|
41
|
+
const areaId = '996'; // England
|
|
42
|
+
const countryId = '30'; // UK
|
|
43
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
44
|
+
[FilterKey.AREA, [areaId]],
|
|
45
|
+
[FilterKey.COUNTRY, [countryId]]
|
|
46
|
+
]));
|
|
47
|
+
searchDependenciesHelper.setSortingState(SortingOptions.UNIVERSITY_META_RANKING);
|
|
48
|
+
const result = await areaPolicy.shouldIndex();
|
|
49
|
+
expect(result).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
it('Should return false when multiple areas are selected', async () => {
|
|
52
|
+
const firstAreaId = '996'; // England
|
|
53
|
+
const secondAreaId = '994'; // Scotland
|
|
54
|
+
const countryId = '30'; // UK
|
|
55
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
56
|
+
[FilterKey.AREA, [firstAreaId, secondAreaId]],
|
|
57
|
+
[FilterKey.COUNTRY, [countryId]]
|
|
58
|
+
]));
|
|
59
|
+
const result = await areaPolicy.shouldIndex();
|
|
60
|
+
expect(result).toBe(false);
|
|
61
|
+
});
|
|
62
|
+
it('Should return false when no areas are selected', async () => {
|
|
63
|
+
const countryId = '30'; // UK
|
|
64
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
|
|
65
|
+
const result = await areaPolicy.shouldIndex();
|
|
66
|
+
expect(result).toBe(false);
|
|
67
|
+
});
|
|
68
|
+
it('Should return false when other filters are selected', async () => {
|
|
69
|
+
const areaId = '996'; // England
|
|
70
|
+
const countryId = '30'; // UK
|
|
71
|
+
const disciplineId = '1';
|
|
72
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
73
|
+
[FilterKey.AREA, [areaId]],
|
|
74
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
75
|
+
[FilterKey.DISCIPLINES, [disciplineId]]
|
|
76
|
+
]));
|
|
77
|
+
const result = await areaPolicy.shouldIndex();
|
|
78
|
+
expect(result).toBe(false);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('generateSitemapUrls', () => {
|
|
82
|
+
let sitemapDependenciesHelper;
|
|
83
|
+
let areaPolicy;
|
|
84
|
+
let fragments;
|
|
85
|
+
beforeEach(() => {
|
|
86
|
+
sitemapDependenciesHelper = new SitemapDependencies();
|
|
87
|
+
sitemapDependenciesHelper.setOrganisationCount(10);
|
|
88
|
+
areaPolicy = new Area(sitemapDependenciesHelper.dependencies);
|
|
89
|
+
vi.spyOn(AreaPresenter, 'getInstance').mockReturnValue({
|
|
90
|
+
getFragments: vi.fn(() => fragments),
|
|
91
|
+
generatePaths: vi.fn(() => fragments),
|
|
92
|
+
fragments
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
it('Should return path when all conditions are met', async () => {
|
|
96
|
+
const areaId = '996'; // England
|
|
97
|
+
const countryId = '30'; // UK
|
|
98
|
+
const path = 'path';
|
|
99
|
+
fragments = [
|
|
100
|
+
{
|
|
101
|
+
id: areaId,
|
|
102
|
+
countryId: countryId,
|
|
103
|
+
path
|
|
104
|
+
}
|
|
105
|
+
];
|
|
106
|
+
const result = await areaPolicy.generateSitemapUrls();
|
|
107
|
+
expect(result).toEqual([path]);
|
|
108
|
+
});
|
|
109
|
+
it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
|
|
110
|
+
const areaId = '996'; // England
|
|
111
|
+
const countryId = '30'; // UK
|
|
112
|
+
const path = 'path';
|
|
113
|
+
sitemapDependenciesHelper.setPortalType(portalType);
|
|
114
|
+
fragments = [
|
|
115
|
+
{
|
|
116
|
+
id: areaId,
|
|
117
|
+
countryId: countryId,
|
|
118
|
+
path
|
|
119
|
+
}
|
|
120
|
+
];
|
|
121
|
+
const result = await areaPolicy.generateSitemapUrls();
|
|
122
|
+
expect(result).toEqual([]);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
3
|
+
import { AreaAttendance } from '@/organisations/policies/our-picks/AreaAttendance';
|
|
4
|
+
import { SearchDependencies } from '../../../organisations/utils/SearchDependencies.util.mjs';
|
|
5
|
+
import { SortingOptions } from '@/enums/SortingOptions';
|
|
6
|
+
import { SitemapDependencies } from '../../utils/SitemapDependencies.util.mjs';
|
|
7
|
+
import { AreaPresenter } from '@/presenters/AreaPresenter';
|
|
8
|
+
import { AttendancePresenter } from '@/presenters/AttendancePresenter';
|
|
9
|
+
import { PortalType } from '@studyportals/domain-client';
|
|
10
|
+
describe('Policy:AreaAttendance', () => {
|
|
11
|
+
describe('shouldIndex', () => {
|
|
12
|
+
let searchDependenciesHelper;
|
|
13
|
+
let areaAttendancePolicy;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
searchDependenciesHelper = new SearchDependencies();
|
|
16
|
+
areaAttendancePolicy = new AreaAttendance(searchDependenciesHelper.dependencies);
|
|
17
|
+
searchDependenciesHelper.setSortingState(SortingOptions.OUR_PICKS);
|
|
18
|
+
searchDependenciesHelper.setNumberOfResults(10);
|
|
19
|
+
});
|
|
20
|
+
it('Should return true when all conditions are met', async () => {
|
|
21
|
+
const areaId = '3582'; // Georgia
|
|
22
|
+
const countryId = '82'; // US
|
|
23
|
+
const attendance = 'online';
|
|
24
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
25
|
+
[FilterKey.AREA, [areaId]],
|
|
26
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
27
|
+
[FilterKey.DELIVERY_METHOD, [attendance]]
|
|
28
|
+
]));
|
|
29
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
30
|
+
expect(result).toBe(true);
|
|
31
|
+
});
|
|
32
|
+
it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should return false when the selected portal type is %s', async (portalType) => {
|
|
33
|
+
const areaId = '3582'; // Georgia
|
|
34
|
+
const countryId = '82'; // US
|
|
35
|
+
const attendance = 'online';
|
|
36
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
37
|
+
[FilterKey.AREA, [areaId]],
|
|
38
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
39
|
+
[FilterKey.DELIVERY_METHOD, [attendance]]
|
|
40
|
+
]));
|
|
41
|
+
searchDependenciesHelper.setPortalType(portalType);
|
|
42
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
43
|
+
expect(result).toBe(false);
|
|
44
|
+
});
|
|
45
|
+
it('Should return false when area when University Meta Ranking sorting is selected', async () => {
|
|
46
|
+
const areaId = '3582'; // Georgia
|
|
47
|
+
const countryId = '82'; // US
|
|
48
|
+
const attendance = 'online';
|
|
49
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
50
|
+
[FilterKey.AREA, [areaId]],
|
|
51
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
52
|
+
[FilterKey.DELIVERY_METHOD, [attendance]]
|
|
53
|
+
]));
|
|
54
|
+
searchDependenciesHelper.setSortingState(SortingOptions.UNIVERSITY_META_RANKING);
|
|
55
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
56
|
+
expect(result).toBe(false);
|
|
57
|
+
});
|
|
58
|
+
it('Should return false when multiple areas are selected', async () => {
|
|
59
|
+
const firstAreaId = '996'; // England
|
|
60
|
+
const secondAreaId = '994'; // Scotland
|
|
61
|
+
const countryId = '30'; // UK
|
|
62
|
+
const attendance = 'online';
|
|
63
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
64
|
+
[FilterKey.AREA, [firstAreaId, secondAreaId]],
|
|
65
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
66
|
+
[FilterKey.DELIVERY_METHOD, [attendance]]
|
|
67
|
+
]));
|
|
68
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
69
|
+
expect(result).toBe(false);
|
|
70
|
+
});
|
|
71
|
+
it('Should return false when no areas are selected', async () => {
|
|
72
|
+
const countryId = '30'; // UK
|
|
73
|
+
const attendance = 'online';
|
|
74
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
75
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
76
|
+
[FilterKey.DELIVERY_METHOD, [attendance]]
|
|
77
|
+
]));
|
|
78
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
79
|
+
expect(result).toBe(false);
|
|
80
|
+
});
|
|
81
|
+
it('Should return false when other filters are selected', async () => {
|
|
82
|
+
const areaId = '996'; // England
|
|
83
|
+
const countryId = '30'; // UK
|
|
84
|
+
const disciplineId = '1';
|
|
85
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
86
|
+
[FilterKey.AREA, [areaId]],
|
|
87
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
88
|
+
[FilterKey.DISCIPLINES, [disciplineId]]
|
|
89
|
+
]));
|
|
90
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
91
|
+
expect(result).toBe(false);
|
|
92
|
+
});
|
|
93
|
+
it('Should return false when attendance is not online', async () => {
|
|
94
|
+
const areaId = '996'; // England
|
|
95
|
+
const countryId = '30'; // UK
|
|
96
|
+
const attendance = 'other';
|
|
97
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
98
|
+
[FilterKey.AREA, [areaId]],
|
|
99
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
100
|
+
[FilterKey.DELIVERY_METHOD, [attendance]]
|
|
101
|
+
]));
|
|
102
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
103
|
+
expect(result).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
it('Should return false when attendance is not selected', async () => {
|
|
106
|
+
const areaId = '3582'; // Georgia
|
|
107
|
+
const countryId = '82'; // US
|
|
108
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
109
|
+
[FilterKey.AREA, [areaId]],
|
|
110
|
+
[FilterKey.COUNTRY, [countryId]]
|
|
111
|
+
]));
|
|
112
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
113
|
+
expect(result).toBe(false);
|
|
114
|
+
});
|
|
115
|
+
it('Should return false when area has no search volume', async () => {
|
|
116
|
+
const areaId = '137'; // Western Australia
|
|
117
|
+
const countryId = '202'; // Australia
|
|
118
|
+
const attendance = 'online';
|
|
119
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
120
|
+
[FilterKey.AREA, [areaId]],
|
|
121
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
122
|
+
[FilterKey.DELIVERY_METHOD, [attendance]]
|
|
123
|
+
]));
|
|
124
|
+
const result = await areaAttendancePolicy.shouldIndex();
|
|
125
|
+
expect(result).toBe(false);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe('generateSitemapUrls', () => {
|
|
129
|
+
let sitemapDependenciesHelper;
|
|
130
|
+
let areaAttendancePolicy;
|
|
131
|
+
let areaFragments;
|
|
132
|
+
let attendanceFragments;
|
|
133
|
+
beforeEach(() => {
|
|
134
|
+
sitemapDependenciesHelper = new SitemapDependencies();
|
|
135
|
+
sitemapDependenciesHelper.setOrganisationCount(10);
|
|
136
|
+
areaAttendancePolicy = new AreaAttendance(sitemapDependenciesHelper.dependencies);
|
|
137
|
+
vi.spyOn(AreaPresenter, 'getInstance').mockReturnValue({
|
|
138
|
+
getFragments: vi.fn(() => areaFragments),
|
|
139
|
+
generatePaths: vi.fn(() => areaFragments),
|
|
140
|
+
fragments: areaFragments
|
|
141
|
+
});
|
|
142
|
+
vi.spyOn(AttendancePresenter, 'getInstance').mockReturnValue({
|
|
143
|
+
getFragments: vi.fn(() => attendanceFragments),
|
|
144
|
+
generatePaths: vi.fn(() => attendanceFragments),
|
|
145
|
+
fragments: attendanceFragments
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
it('Should return path when all conditions are met', async () => {
|
|
149
|
+
const areaId = '3582'; // Georgia
|
|
150
|
+
const countryId = '82'; // US
|
|
151
|
+
const areaPath = 'area-path';
|
|
152
|
+
const attendance = 'online';
|
|
153
|
+
const attendancePath = 'attendance-path';
|
|
154
|
+
areaFragments = [
|
|
155
|
+
{
|
|
156
|
+
id: areaId,
|
|
157
|
+
path: areaPath,
|
|
158
|
+
countryId
|
|
159
|
+
}
|
|
160
|
+
];
|
|
161
|
+
attendanceFragments = [
|
|
162
|
+
{
|
|
163
|
+
id: attendance,
|
|
164
|
+
path: attendancePath
|
|
165
|
+
}
|
|
166
|
+
];
|
|
167
|
+
const result = await areaAttendancePolicy.generateSitemapUrls();
|
|
168
|
+
expect(result).toEqual([`${attendancePath}/${areaPath}`]);
|
|
169
|
+
});
|
|
170
|
+
it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
|
|
171
|
+
const areaId = '3582'; // Georgia
|
|
172
|
+
const countryId = '82'; // US
|
|
173
|
+
const areaPath = 'area-path';
|
|
174
|
+
const attendance = 'online';
|
|
175
|
+
const attendancePath = 'attendance-path';
|
|
176
|
+
areaFragments = [
|
|
177
|
+
{
|
|
178
|
+
id: areaId,
|
|
179
|
+
path: areaPath,
|
|
180
|
+
countryId
|
|
181
|
+
}
|
|
182
|
+
];
|
|
183
|
+
attendanceFragments = [
|
|
184
|
+
{
|
|
185
|
+
id: attendance,
|
|
186
|
+
path: attendancePath
|
|
187
|
+
}
|
|
188
|
+
];
|
|
189
|
+
sitemapDependenciesHelper.setPortalType(portalType);
|
|
190
|
+
const result = await areaAttendancePolicy.generateSitemapUrls();
|
|
191
|
+
expect(result).toEqual([]);
|
|
192
|
+
});
|
|
193
|
+
it('Should not return path when attendance is not online', async () => {
|
|
194
|
+
const areaId = '137'; // Western Australia
|
|
195
|
+
const countryId = '202'; // Australia
|
|
196
|
+
const areaPath = 'area-path';
|
|
197
|
+
const attendance = 'face-2-face';
|
|
198
|
+
const attendancePath = 'attendance-path';
|
|
199
|
+
areaFragments = [
|
|
200
|
+
{
|
|
201
|
+
id: areaId,
|
|
202
|
+
path: areaPath,
|
|
203
|
+
countryId
|
|
204
|
+
}
|
|
205
|
+
];
|
|
206
|
+
attendanceFragments = [
|
|
207
|
+
{
|
|
208
|
+
id: attendance,
|
|
209
|
+
path: attendancePath
|
|
210
|
+
}
|
|
211
|
+
];
|
|
212
|
+
const result = await areaAttendancePolicy.generateSitemapUrls();
|
|
213
|
+
expect(result).toEqual([]);
|
|
214
|
+
});
|
|
215
|
+
it('Should not return path when there is not enough search volume', async () => {
|
|
216
|
+
const areaId = '137'; // Western Australia
|
|
217
|
+
const countryId = '202'; // Australia
|
|
218
|
+
const areaPath = 'area-path';
|
|
219
|
+
const attendance = 'online';
|
|
220
|
+
const attendancePath = 'attendance-path';
|
|
221
|
+
areaFragments = [
|
|
222
|
+
{
|
|
223
|
+
id: areaId,
|
|
224
|
+
path: areaPath,
|
|
225
|
+
countryId
|
|
226
|
+
}
|
|
227
|
+
];
|
|
228
|
+
attendanceFragments = [
|
|
229
|
+
{
|
|
230
|
+
id: attendance,
|
|
231
|
+
path: attendancePath
|
|
232
|
+
}
|
|
233
|
+
];
|
|
234
|
+
const result = await areaAttendancePolicy.generateSitemapUrls();
|
|
235
|
+
expect(result).toEqual([]);
|
|
236
|
+
});
|
|
237
|
+
});
|
|
238
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters/server-side';
|
|
3
|
+
import { Attendance } from '@/organisations/policies/our-picks/Attendance';
|
|
4
|
+
import { SearchDependencies } from '../../../organisations/utils/SearchDependencies.util.mjs';
|
|
5
|
+
import { SortingOptions } from '@/enums/SortingOptions';
|
|
6
|
+
import { PortalType } from '@studyportals/domain-client';
|
|
7
|
+
import { SitemapDependencies } from '../../utils/SitemapDependencies.util.mjs';
|
|
8
|
+
import { AttendancePresenter } from '@/presenters/AttendancePresenter';
|
|
9
|
+
describe('Policy:Attendance', () => {
|
|
10
|
+
describe('shouldIndex', () => {
|
|
11
|
+
let searchDependenciesHelper;
|
|
12
|
+
let attendancePolicy;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
searchDependenciesHelper = new SearchDependencies();
|
|
15
|
+
attendancePolicy = new Attendance(searchDependenciesHelper.dependencies);
|
|
16
|
+
searchDependenciesHelper.setSortingState(SortingOptions.OUR_PICKS);
|
|
17
|
+
searchDependenciesHelper.setNumberOfResults(10);
|
|
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.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should return false when the selected portal type is %s', async (portalType) => {
|
|
26
|
+
const attendance = 'online';
|
|
27
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
|
|
28
|
+
searchDependenciesHelper.setPortalType(portalType);
|
|
29
|
+
const result = await attendancePolicy.shouldIndex();
|
|
30
|
+
expect(result).toBe(false);
|
|
31
|
+
});
|
|
32
|
+
it('Should return false when area when University Meta Ranking sorting is selected', async () => {
|
|
33
|
+
const attendance = 'online';
|
|
34
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
|
|
35
|
+
searchDependenciesHelper.setSortingState(SortingOptions.UNIVERSITY_META_RANKING);
|
|
36
|
+
const result = await attendancePolicy.shouldIndex();
|
|
37
|
+
expect(result).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
it('Should return false when multiple attendances are selected', async () => {
|
|
40
|
+
const attendance = 'online';
|
|
41
|
+
const otherAttendance = 'blended';
|
|
42
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance, otherAttendance]]]));
|
|
43
|
+
const result = await attendancePolicy.shouldIndex();
|
|
44
|
+
expect(result).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
it('Should return false when no attendances are selected', async () => {
|
|
47
|
+
const countryId = '30'; // UK
|
|
48
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
|
|
49
|
+
const result = await attendancePolicy.shouldIndex();
|
|
50
|
+
expect(result).toBe(false);
|
|
51
|
+
});
|
|
52
|
+
it('Should return false when other filters are selected', async () => {
|
|
53
|
+
const attendance = 'online';
|
|
54
|
+
const areaId = '996'; // England
|
|
55
|
+
const countryId = '30'; // UK
|
|
56
|
+
const disciplineId = '1';
|
|
57
|
+
searchDependenciesHelper.setFilterKeyValues(new Map([
|
|
58
|
+
[FilterKey.DELIVERY_METHOD, [attendance]],
|
|
59
|
+
[FilterKey.AREA, [areaId]],
|
|
60
|
+
[FilterKey.COUNTRY, [countryId]],
|
|
61
|
+
[FilterKey.DISCIPLINES, [disciplineId]]
|
|
62
|
+
]));
|
|
63
|
+
const result = await attendancePolicy.shouldIndex();
|
|
64
|
+
expect(result).toBe(false);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
describe('generateSitemapUrls', () => {
|
|
68
|
+
let sitemapDependenciesHelper;
|
|
69
|
+
let attendancePolicy;
|
|
70
|
+
let attendanceFragments;
|
|
71
|
+
beforeEach(() => {
|
|
72
|
+
sitemapDependenciesHelper = new SitemapDependencies();
|
|
73
|
+
sitemapDependenciesHelper.setOrganisationCount(10);
|
|
74
|
+
attendancePolicy = new Attendance(sitemapDependenciesHelper.dependencies);
|
|
75
|
+
vi.spyOn(AttendancePresenter, 'getInstance').mockReturnValue({
|
|
76
|
+
getFragments: vi.fn(() => attendanceFragments),
|
|
77
|
+
generatePaths: vi.fn(() => attendanceFragments),
|
|
78
|
+
fragments: attendanceFragments
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
it('Should return path when all conditions are met', async () => {
|
|
82
|
+
const attendance = 'online';
|
|
83
|
+
const attendancePath = 'attendance-path';
|
|
84
|
+
attendanceFragments = [
|
|
85
|
+
{
|
|
86
|
+
id: attendance,
|
|
87
|
+
path: attendancePath
|
|
88
|
+
}
|
|
89
|
+
];
|
|
90
|
+
const result = await attendancePolicy.generateSitemapUrls();
|
|
91
|
+
expect(result).toEqual([`${attendancePath}`]);
|
|
92
|
+
});
|
|
93
|
+
it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
|
|
94
|
+
const attendance = 'online';
|
|
95
|
+
const attendancePath = 'attendance-path';
|
|
96
|
+
attendanceFragments = [
|
|
97
|
+
{
|
|
98
|
+
id: attendance,
|
|
99
|
+
path: attendancePath
|
|
100
|
+
}
|
|
101
|
+
];
|
|
102
|
+
sitemapDependenciesHelper.setPortalType(portalType);
|
|
103
|
+
const result = await attendancePolicy.generateSitemapUrls();
|
|
104
|
+
expect(result).toEqual([]);
|
|
105
|
+
});
|
|
106
|
+
it('Should not return path when attendance is not online', async () => {
|
|
107
|
+
const attendance = 'face-2-face';
|
|
108
|
+
const attendancePath = 'attendance-path';
|
|
109
|
+
attendanceFragments = [
|
|
110
|
+
{
|
|
111
|
+
id: attendance,
|
|
112
|
+
path: attendancePath
|
|
113
|
+
}
|
|
114
|
+
];
|
|
115
|
+
const result = await attendancePolicy.generateSitemapUrls();
|
|
116
|
+
expect(result).toEqual([]);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|