@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.
Files changed (520) hide show
  1. package/dist/organisations-seo/index.d.ts +3 -3
  2. package/dist/organisations-seo/index.js +1 -1
  3. package/dist/programmes-seo/index.d.ts +5 -5
  4. package/dist/programmes-seo/index.js +1 -1
  5. package/dist/scholarships-seo/index.d.ts +4 -4
  6. package/dist/scholarships-seo/index.js +2 -2
  7. package/dist/sitemap-generator-seo/index.d.ts +14 -14
  8. package/dist/sitemap-generator-seo/index.js +5 -5
  9. package/dist/src/common/IDependencies.d.ts +1 -1
  10. package/dist/src/common/IPresenter.d.ts +1 -1
  11. package/dist/src/common/ISearchDependencies.d.ts +1 -1
  12. package/dist/src/common/ISeoDependencies.d.ts +2 -2
  13. package/dist/src/common/ISitemapDependencies.d.ts +2 -2
  14. package/dist/src/common/ISitemapUrlGenerator.d.ts +1 -1
  15. package/dist/src/common/policies/BaseSeoIndexabilityPolicy.d.ts +1 -1
  16. package/dist/src/common/policies/BaseSeoIndexabilityPolicy.js +2 -2
  17. package/dist/src/common/rules/NoFiltersSelectedRule.d.ts +2 -2
  18. package/dist/src/common/rules/OnlineAttendanceRule.d.ts +1 -1
  19. package/dist/src/common/rules/OnlineAttendanceRule.js +1 -1
  20. package/dist/src/common/rules/OnlyFiltersSelectedRule.d.ts +2 -2
  21. package/dist/src/common/rules/SingleValueSelectedForFilterRule.d.ts +2 -2
  22. package/dist/src/organisations/IOrganisationSearchApplicationState.d.ts +1 -1
  23. package/dist/src/organisations/ISeoSortingState.d.ts +1 -1
  24. package/dist/src/organisations/SearchIndexabilityManager.d.ts +4 -4
  25. package/dist/src/organisations/SearchIndexabilityManager.js +2 -2
  26. package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.d.ts +3 -3
  27. package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.js +3 -3
  28. package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.d.ts +1 -1
  29. package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.js +1 -1
  30. package/dist/src/organisations/policies/our-picks/Area.d.ts +5 -5
  31. package/dist/src/organisations/policies/our-picks/Area.js +6 -6
  32. package/dist/src/organisations/policies/our-picks/AreaAttendance.d.ts +7 -7
  33. package/dist/src/organisations/policies/our-picks/AreaAttendance.js +9 -9
  34. package/dist/src/organisations/policies/our-picks/Attendance.d.ts +6 -6
  35. package/dist/src/organisations/policies/our-picks/Attendance.js +7 -7
  36. package/dist/src/organisations/policies/our-picks/Continent.d.ts +5 -5
  37. package/dist/src/organisations/policies/our-picks/Continent.js +6 -6
  38. package/dist/src/organisations/policies/our-picks/Country.d.ts +5 -5
  39. package/dist/src/organisations/policies/our-picks/Country.js +6 -6
  40. package/dist/src/organisations/policies/our-picks/CountryAreaCity.d.ts +6 -6
  41. package/dist/src/organisations/policies/our-picks/CountryAreaCity.js +7 -7
  42. package/dist/src/organisations/policies/our-picks/CountryAttendance.d.ts +7 -7
  43. package/dist/src/organisations/policies/our-picks/CountryAttendance.js +9 -9
  44. package/dist/src/organisations/policies/our-picks/CountryCity.d.ts +6 -6
  45. package/dist/src/organisations/policies/our-picks/CountryCity.js +7 -7
  46. package/dist/src/organisations/policies/our-picks/Unfiltered.d.ts +4 -4
  47. package/dist/src/organisations/policies/our-picks/Unfiltered.js +4 -4
  48. package/dist/src/organisations/policies/ranked/RankedArea.d.ts +4 -4
  49. package/dist/src/organisations/policies/ranked/RankedArea.js +4 -4
  50. package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.d.ts +5 -5
  51. package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.js +6 -6
  52. package/dist/src/organisations/policies/ranked/RankedAttendance.d.ts +5 -5
  53. package/dist/src/organisations/policies/ranked/RankedAttendance.js +5 -5
  54. package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.d.ts +5 -5
  55. package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.js +6 -6
  56. package/dist/src/organisations/policies/ranked/RankedContinent.d.ts +4 -4
  57. package/dist/src/organisations/policies/ranked/RankedContinent.js +4 -4
  58. package/dist/src/organisations/policies/ranked/RankedContinentAttendance.d.ts +6 -6
  59. package/dist/src/organisations/policies/ranked/RankedContinentAttendance.js +7 -7
  60. package/dist/src/organisations/policies/ranked/RankedCountry.d.ts +4 -4
  61. package/dist/src/organisations/policies/ranked/RankedCountry.js +4 -4
  62. package/dist/src/organisations/policies/ranked/RankedCountryAttendance.d.ts +5 -5
  63. package/dist/src/organisations/policies/ranked/RankedCountryAttendance.js +6 -6
  64. package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.d.ts +4 -4
  65. package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.js +5 -5
  66. package/dist/src/organisations/policies/ranked/RankedDiscipline.d.ts +4 -4
  67. package/dist/src/organisations/policies/ranked/RankedDiscipline.js +4 -4
  68. package/dist/src/organisations/policies/ranked/RankedUnfiltered.d.ts +3 -3
  69. package/dist/src/organisations/policies/ranked/RankedUnfiltered.js +2 -2
  70. package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.d.ts +3 -3
  71. package/dist/src/organisations/rules/ContinentIsEuropeRule.d.ts +1 -1
  72. package/dist/src/organisations/rules/ContinentIsEuropeRule.js +1 -1
  73. package/dist/src/organisations/rules/ExcludeByIdForCitiesRule.d.ts +3 -3
  74. package/dist/src/organisations/rules/MinimumAmountOfRankedResultsRule.d.ts +3 -3
  75. package/dist/src/organisations/rules/MinimumAmountOfRankedResultsRule.js +1 -1
  76. package/dist/src/organisations/rules/MinimumAmountOfResultsRule.d.ts +4 -4
  77. package/dist/src/organisations/rules/MinimumAmountOfResultsRule.js +1 -1
  78. package/dist/src/organisations/rules/NoFiltersSelectedRule.d.ts +2 -2
  79. package/dist/src/organisations/types/IOrganisationSearchDependencies.d.ts +2 -2
  80. package/dist/src/organisations/types/IOrganisationsSitemapDependencies.d.ts +3 -3
  81. package/dist/src/presenters/AreaPresenter.d.ts +1 -1
  82. package/dist/src/presenters/AttendancePresenter.d.ts +1 -1
  83. package/dist/src/presenters/CityPresenter.d.ts +1 -1
  84. package/dist/src/presenters/ContinentPresenter.d.ts +1 -1
  85. package/dist/src/presenters/CountryPresenter.d.ts +1 -1
  86. package/dist/src/presenters/DegreePresenter.d.ts +1 -1
  87. package/dist/src/presenters/DisciplinePresenter.d.ts +1 -1
  88. package/dist/src/presenters/DurationPresenter.d.ts +1 -1
  89. package/dist/src/presenters/EducationalFormPresenter.d.ts +1 -1
  90. package/dist/src/presenters/FormatPresenter.d.ts +1 -1
  91. package/dist/src/presenters/SpecialProgrammesPresenter.d.ts +1 -1
  92. package/dist/src/presenters/TuitionFeePresenter.d.ts +1 -1
  93. package/dist/src/programmes/BaseProgrammeFilterKeyValueRule.d.ts +2 -2
  94. package/dist/src/programmes/BaseProgrammeFilterKeyValueRule.js +1 -1
  95. package/dist/src/programmes/BaseProgrammeRule.d.ts +2 -2
  96. package/dist/src/programmes/IProgrammeRule.d.ts +2 -2
  97. package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.d.ts +3 -3
  98. package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.js +1 -1
  99. package/dist/src/programmes/SearchIndexabilityManager.d.ts +4 -4
  100. package/dist/src/programmes/SearchIndexabilityManager.js +8 -4
  101. package/dist/src/programmes/policies/Area.d.ts +3 -3
  102. package/dist/src/programmes/policies/Area.js +4 -4
  103. package/dist/src/programmes/policies/Attendance.d.ts +4 -4
  104. package/dist/src/programmes/policies/Attendance.js +5 -5
  105. package/dist/src/programmes/policies/AttendanceArea.d.ts +4 -4
  106. package/dist/src/programmes/policies/AttendanceArea.js +6 -6
  107. package/dist/src/programmes/policies/AttendanceContinent.d.ts +4 -4
  108. package/dist/src/programmes/policies/AttendanceContinent.js +6 -6
  109. package/dist/src/programmes/policies/AttendanceDegree.d.ts +2 -2
  110. package/dist/src/programmes/policies/AttendanceDegree.js +5 -5
  111. package/dist/src/programmes/policies/AttendanceDuration.d.ts +5 -5
  112. package/dist/src/programmes/policies/AttendanceDuration.js +7 -7
  113. package/dist/src/programmes/policies/AttendanceFormat.d.ts +4 -4
  114. package/dist/src/programmes/policies/AttendanceFormat.js +6 -6
  115. package/dist/src/programmes/policies/Continent.d.ts +3 -3
  116. package/dist/src/programmes/policies/Continent.js +4 -4
  117. package/dist/src/programmes/policies/ContinentDuration.d.ts +3 -3
  118. package/dist/src/programmes/policies/ContinentDuration.js +5 -5
  119. package/dist/src/programmes/policies/ContinentFormat.d.ts +3 -3
  120. package/dist/src/programmes/policies/ContinentFormat.js +5 -5
  121. package/dist/src/programmes/policies/ContinentSpecialProgrammes.d.ts +4 -4
  122. package/dist/src/programmes/policies/ContinentSpecialProgrammes.js +6 -6
  123. package/dist/src/programmes/policies/Country.d.ts +3 -3
  124. package/dist/src/programmes/policies/Country.js +4 -4
  125. package/dist/src/programmes/policies/CountryAttendance.d.ts +4 -4
  126. package/dist/src/programmes/policies/CountryAttendance.js +6 -6
  127. package/dist/src/programmes/policies/CountryAttendanceDegree.d.ts +4 -4
  128. package/dist/src/programmes/policies/CountryAttendanceDegree.js +7 -7
  129. package/dist/src/programmes/policies/CountryDegree.d.ts +2 -2
  130. package/dist/src/programmes/policies/CountryDegree.js +5 -5
  131. package/dist/src/programmes/policies/CountryDuration.d.ts +3 -3
  132. package/dist/src/programmes/policies/CountryDuration.js +5 -5
  133. package/dist/src/programmes/policies/CountryDurationDegree.d.ts +3 -3
  134. package/dist/src/programmes/policies/CountryDurationDegree.js +6 -6
  135. package/dist/src/programmes/policies/CountryEducationalForm.d.ts +2 -2
  136. package/dist/src/programmes/policies/CountryEducationalForm.js +5 -5
  137. package/dist/src/programmes/policies/CountryFormat.d.ts +3 -3
  138. package/dist/src/programmes/policies/CountryFormat.js +5 -5
  139. package/dist/src/programmes/policies/CountrySpecialProgrammes.d.ts +4 -4
  140. package/dist/src/programmes/policies/CountrySpecialProgrammes.js +6 -6
  141. package/dist/src/programmes/policies/Degree.d.ts +3 -3
  142. package/dist/src/programmes/policies/Degree.js +4 -4
  143. package/dist/src/programmes/policies/DegreeArea.d.ts +3 -3
  144. package/dist/src/programmes/policies/DegreeArea.js +5 -5
  145. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +4 -4
  146. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +7 -7
  147. package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +4 -4
  148. package/dist/src/programmes/policies/DegreeAttendanceFormat.js +7 -7
  149. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +4 -4
  150. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +7 -7
  151. package/dist/src/programmes/policies/DegreeContinent.d.ts +2 -2
  152. package/dist/src/programmes/policies/DegreeContinent.js +5 -5
  153. package/dist/src/programmes/policies/DegreeCountryAttendance.d.ts +3 -3
  154. package/dist/src/programmes/policies/DegreeCountryAttendance.js +6 -6
  155. package/dist/src/programmes/policies/DegreeCountryDiscipline.d.ts +3 -3
  156. package/dist/src/programmes/policies/DegreeCountryDiscipline.js +6 -6
  157. package/dist/src/programmes/policies/DegreeCountryTuitionFee.d.ts +3 -3
  158. package/dist/src/programmes/policies/DegreeCountryTuitionFee.js +6 -6
  159. package/dist/src/programmes/policies/DegreeDuration.d.ts +2 -2
  160. package/dist/src/programmes/policies/DegreeDuration.js +5 -5
  161. package/dist/src/programmes/policies/DegreeFormat.d.ts +2 -2
  162. package/dist/src/programmes/policies/DegreeFormat.js +5 -5
  163. package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +3 -3
  164. package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +5 -5
  165. package/dist/src/programmes/policies/DegreeTuitionFee.d.ts +3 -3
  166. package/dist/src/programmes/policies/DegreeTuitionFee.js +5 -5
  167. package/dist/src/programmes/policies/{DisciplineTuitionFee.d.ts → DegreeTuitionFeeArea.d.ts} +5 -5
  168. package/dist/src/programmes/policies/{DegreeAreaTuitionFee.js → DegreeTuitionFeeArea.js} +7 -7
  169. package/dist/src/programmes/policies/{DegreeAttendanceTuitionFee.d.ts → DegreeTuitionFeeAttendance.d.ts} +2 -2
  170. package/dist/src/programmes/policies/{DegreeAttendanceTuitionFee.js → DegreeTuitionFeeAttendance.js} +7 -7
  171. package/dist/src/programmes/policies/{DegreeContinentTuitionFee.d.ts → DegreeTuitionFeeContinent.d.ts} +2 -2
  172. package/dist/src/programmes/policies/{DegreeContinentTuitionFee.js → DegreeTuitionFeeContinent.js} +6 -6
  173. package/dist/src/programmes/policies/{DegreeFormatTuitionFee.d.ts → DegreeTuitionFeeFormat.d.ts} +3 -3
  174. package/dist/src/programmes/policies/{DegreeFormatTuitionFee.js → DegreeTuitionFeeFormat.js} +9 -9
  175. package/dist/src/programmes/policies/Discipline.d.ts +3 -3
  176. package/dist/src/programmes/policies/Discipline.js +4 -4
  177. package/dist/src/programmes/policies/DisciplineAttendance.d.ts +4 -4
  178. package/dist/src/programmes/policies/DisciplineAttendance.js +6 -6
  179. package/dist/src/programmes/policies/DisciplineContinent.d.ts +3 -3
  180. package/dist/src/programmes/policies/DisciplineContinent.js +5 -5
  181. package/dist/src/programmes/policies/DisciplineContinentAttendance.d.ts +4 -4
  182. package/dist/src/programmes/policies/DisciplineContinentAttendance.js +7 -7
  183. package/dist/src/programmes/policies/DisciplineCountry.d.ts +3 -3
  184. package/dist/src/programmes/policies/DisciplineCountry.js +5 -5
  185. package/dist/src/programmes/policies/DisciplineCountryAttendance.d.ts +4 -4
  186. package/dist/src/programmes/policies/DisciplineCountryAttendance.js +7 -7
  187. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.d.ts +2 -2
  188. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +6 -6
  189. package/dist/src/programmes/policies/DisciplineCountryFormat.d.ts +3 -3
  190. package/dist/src/programmes/policies/DisciplineCountryFormat.js +6 -6
  191. package/dist/src/programmes/policies/DisciplineDegree.d.ts +3 -3
  192. package/dist/src/programmes/policies/DisciplineDegree.js +5 -5
  193. package/dist/src/programmes/policies/DisciplineDuration.d.ts +3 -3
  194. package/dist/src/programmes/policies/DisciplineDuration.js +5 -5
  195. package/dist/src/programmes/policies/DisciplineEducationalForm.d.ts +2 -2
  196. package/dist/src/programmes/policies/DisciplineEducationalForm.js +5 -5
  197. package/dist/src/programmes/policies/DisciplineFormat.d.ts +3 -3
  198. package/dist/src/programmes/policies/DisciplineFormat.js +5 -5
  199. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.d.ts +3 -3
  200. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.js +5 -5
  201. package/dist/src/programmes/policies/Duration.d.ts +3 -3
  202. package/dist/src/programmes/policies/Duration.js +4 -4
  203. package/dist/src/programmes/policies/Format.d.ts +3 -3
  204. package/dist/src/programmes/policies/Format.js +4 -4
  205. package/dist/src/programmes/policies/SpecialProgrammes.d.ts +3 -3
  206. package/dist/src/programmes/policies/SpecialProgrammes.js +4 -4
  207. package/dist/src/programmes/policies/TuitionFee.d.ts +3 -3
  208. package/dist/src/programmes/policies/TuitionFee.js +4 -4
  209. package/dist/src/programmes/policies/TuitionFeeAttendance.d.ts +4 -4
  210. package/dist/src/programmes/policies/TuitionFeeAttendance.js +6 -6
  211. package/dist/src/programmes/policies/TuitionFeeAttendanceDiscipline.d.ts +4 -4
  212. package/dist/src/programmes/policies/TuitionFeeAttendanceDiscipline.js +7 -7
  213. package/dist/src/programmes/policies/TuitionFeeContinent.d.ts +3 -3
  214. package/dist/src/programmes/policies/TuitionFeeContinent.js +5 -5
  215. package/dist/src/programmes/policies/TuitionFeeCountry.d.ts +3 -3
  216. package/dist/src/programmes/policies/TuitionFeeCountry.js +5 -5
  217. package/dist/src/programmes/policies/TuitionFeeDiscipline.d.ts +3 -3
  218. package/dist/src/programmes/policies/TuitionFeeDiscipline.js +5 -5
  219. package/dist/src/programmes/policies/Unfiltered.d.ts +2 -2
  220. package/dist/src/programmes/policies/Unfiltered.js +2 -2
  221. package/dist/src/programmes/policies/index.d.ts +4 -5
  222. package/dist/src/programmes/policies/index.js +4 -5
  223. package/dist/src/programmes/rules/DegreeAttendanceDisciplineRule.d.ts +2 -2
  224. package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.d.ts +2 -2
  225. package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.d.ts +2 -2
  226. package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.d.ts +2 -2
  227. package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.d.ts +2 -2
  228. package/dist/src/programmes/rules/DegreeDisciplineRule.d.ts +2 -2
  229. package/dist/src/programmes/rules/IndexableDegreeRule.d.ts +2 -2
  230. package/dist/src/programmes/rules/IndexableDegreeRule.js +1 -1
  231. package/dist/src/programmes/rules/IndexableDurationRule.d.ts +2 -2
  232. package/dist/src/programmes/rules/IndexableDurationRule.js +1 -1
  233. package/dist/src/programmes/rules/IndexableEducationalFormRule.d.ts +2 -2
  234. package/dist/src/programmes/rules/IndexableEducationalFormRule.js +1 -1
  235. package/dist/src/programmes/rules/IndexablePageNumberRule.js +1 -1
  236. package/dist/src/programmes/rules/MbaOrMscDegreeRule.d.ts +2 -2
  237. package/dist/src/programmes/rules/MinimumAmountOfResultsRule.d.ts +3 -3
  238. package/dist/src/programmes/rules/MinimumAmountOfResultsRule.js +1 -1
  239. package/dist/src/programmes/rules/NotDistanceLearningPortalRule.js +1 -1
  240. package/dist/src/programmes/rules/OneYearOnlyRule.d.ts +2 -2
  241. package/dist/src/programmes/types/IProgrammeSearchApplicationState.d.ts +1 -1
  242. package/dist/src/programmes/types/IProgrammeSearchDependencies.d.ts +1 -1
  243. package/dist/src/programmes/types/IProgrammeSearchSitemapDependencies.d.ts +1 -1
  244. package/dist/src/programmes/types/IProgrammeSitemapDependencies.d.ts +2 -2
  245. package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.d.ts +1 -1
  246. package/dist/src/scholarships/SearchIndexabilityManager.d.ts +5 -5
  247. package/dist/src/scholarships/SearchIndexabilityManager.js +1 -1
  248. package/dist/src/scholarships/policies/Area.d.ts +3 -3
  249. package/dist/src/scholarships/policies/Area.js +4 -4
  250. package/dist/src/scholarships/policies/Country.d.ts +3 -3
  251. package/dist/src/scholarships/policies/Country.js +4 -4
  252. package/dist/src/scholarships/policies/Discipline.d.ts +4 -4
  253. package/dist/src/scholarships/policies/Discipline.js +5 -5
  254. package/dist/src/scholarships/policies/DisciplineCountry.d.ts +3 -3
  255. package/dist/src/scholarships/policies/DisciplineCountry.js +5 -5
  256. package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.d.ts +2 -2
  257. package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.js +2 -2
  258. package/dist/src/scholarships/policies/Unfiltered.d.ts +2 -2
  259. package/dist/src/scholarships/policies/Unfiltered.js +2 -2
  260. package/dist/src/scholarships/policies/UniversityCountry.d.ts +3 -3
  261. package/dist/src/scholarships/policies/UniversityCountry.js +4 -4
  262. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.d.ts +3 -3
  263. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.js +1 -1
  264. package/dist/src/scholarships/rules/SearchVolumeAreasRule.d.ts +3 -3
  265. package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.d.ts +3 -3
  266. package/dist/src/scholarships/rules/SearchVolumeCountriesRule.d.ts +3 -3
  267. package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.d.ts +3 -3
  268. package/dist/src/scholarships/types/IScholarshipSeoDependencies.d.ts +1 -1
  269. package/dist/src/scholarships/types/IScholarshipSitemapDependencies.d.ts +2 -2
  270. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +3 -3
  271. package/dist/src/sitemap-generator/IRankingApiClient.d.ts +1 -1
  272. package/dist/src/sitemap-generator/ISearchApiClient.d.ts +1 -1
  273. package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +3 -3
  274. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.d.ts +4 -4
  275. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.js +8 -8
  276. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.d.ts +3 -3
  277. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +15 -15
  278. package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.d.ts +3 -3
  279. package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.js +7 -7
  280. package/dist/src/structured-data/OrganisationStructuredDataFactory.d.ts +1 -1
  281. package/dist/src/structured-data/ProgrammeStructuredDataFactory.d.ts +1 -1
  282. package/dist/tests/common/rules/NoFiltersSelectedRule.test.d.mts +1 -0
  283. package/dist/tests/common/rules/NoFiltersSelectedRule.test.mjs +40 -0
  284. package/dist/tests/common/rules/OnlyFiltersSelectedRule.test.d.mts +1 -0
  285. package/dist/tests/common/rules/OnlyFiltersSelectedRule.test.mjs +70 -0
  286. package/dist/tests/common/rules/SingleValueSelectedForFilterRule.test.d.mts +1 -0
  287. package/dist/tests/common/rules/SingleValueSelectedForFilterRule.test.mjs +54 -0
  288. package/dist/tests/organisations/policies/our-picks/Area.test.d.mts +1 -0
  289. package/dist/tests/organisations/policies/our-picks/Area.test.mjs +125 -0
  290. package/dist/tests/organisations/policies/our-picks/AreaAttendance.test.d.mts +1 -0
  291. package/dist/tests/organisations/policies/our-picks/AreaAttendance.test.mjs +238 -0
  292. package/dist/tests/organisations/policies/our-picks/Attendance.test.d.mts +1 -0
  293. package/dist/tests/organisations/policies/our-picks/Attendance.test.mjs +119 -0
  294. package/dist/tests/organisations/policies/our-picks/Continent.test.d.mts +1 -0
  295. package/dist/tests/organisations/policies/our-picks/Continent.test.mjs +105 -0
  296. package/dist/tests/organisations/policies/our-picks/Country.test.d.mts +1 -0
  297. package/dist/tests/organisations/policies/our-picks/Country.test.mjs +109 -0
  298. package/dist/tests/organisations/policies/our-picks/CountryAreaCity.test.d.mts +1 -0
  299. package/dist/tests/organisations/policies/our-picks/CountryAreaCity.test.mjs +152 -0
  300. package/dist/tests/organisations/policies/our-picks/CountryAttendance.test.d.mts +1 -0
  301. package/dist/tests/organisations/policies/our-picks/CountryAttendance.test.mjs +223 -0
  302. package/dist/tests/organisations/policies/our-picks/CountryCity.test.d.mts +1 -0
  303. package/dist/tests/organisations/policies/our-picks/CountryCity.test.mjs +109 -0
  304. package/dist/tests/organisations/policies/our-picks/Unfiltered.test.d.mts +1 -0
  305. package/dist/tests/organisations/policies/our-picks/Unfiltered.test.mjs +60 -0
  306. package/dist/tests/organisations/policies/ranked/RankedArea.test.d.mts +1 -0
  307. package/dist/tests/organisations/policies/ranked/RankedArea.test.mjs +149 -0
  308. package/dist/tests/organisations/policies/ranked/RankedAreaDiscipline.test.d.mts +1 -0
  309. package/dist/tests/organisations/policies/ranked/RankedAreaDiscipline.test.mjs +237 -0
  310. package/dist/tests/organisations/policies/ranked/RankedAttendance.test.d.mts +1 -0
  311. package/dist/tests/organisations/policies/ranked/RankedAttendance.test.mjs +139 -0
  312. package/dist/tests/organisations/policies/ranked/RankedAttendanceDiscipline.test.d.mts +1 -0
  313. package/dist/tests/organisations/policies/ranked/RankedAttendanceDiscipline.test.mjs +224 -0
  314. package/dist/tests/organisations/policies/ranked/RankedContinent.test.d.mts +1 -0
  315. package/dist/tests/organisations/policies/ranked/RankedContinent.test.mjs +125 -0
  316. package/dist/tests/organisations/policies/ranked/RankedContinentAttendance.test.d.mts +1 -0
  317. package/dist/tests/organisations/policies/ranked/RankedContinentAttendance.test.mjs +253 -0
  318. package/dist/tests/organisations/policies/ranked/RankedCountry.test.d.mts +1 -0
  319. package/dist/tests/organisations/policies/ranked/RankedCountry.test.mjs +131 -0
  320. package/dist/tests/organisations/policies/ranked/RankedCountryAttendance.test.d.mts +1 -0
  321. package/dist/tests/organisations/policies/ranked/RankedCountryAttendance.test.mjs +230 -0
  322. package/dist/tests/organisations/policies/ranked/RankedCountryDiscipline.test.d.mts +1 -0
  323. package/dist/tests/organisations/policies/ranked/RankedCountryDiscipline.test.mjs +197 -0
  324. package/dist/tests/organisations/policies/ranked/RankedDiscipline.test.d.mts +1 -0
  325. package/dist/tests/organisations/policies/ranked/RankedDiscipline.test.mjs +124 -0
  326. package/dist/tests/organisations/policies/ranked/RankedUnfiltered.test.d.mts +1 -0
  327. package/dist/tests/organisations/policies/ranked/RankedUnfiltered.test.mjs +75 -0
  328. package/dist/tests/organisations/rules/ContinentIsEuropeRule.test.d.mts +1 -0
  329. package/dist/tests/organisations/rules/ContinentIsEuropeRule.test.mjs +59 -0
  330. package/dist/tests/organisations/rules/MinimumAmountOfRankedResultsRule.test.d.mts +1 -0
  331. package/dist/tests/organisations/rules/MinimumAmountOfRankedResultsRule.test.mjs +77 -0
  332. package/dist/tests/organisations/rules/MinimumAmountOfResultsRule.test.d.mts +1 -0
  333. package/dist/tests/organisations/rules/MinimumAmountOfResultsRule.test.mjs +77 -0
  334. package/dist/tests/organisations/rules/OnlineAttendanceRule.test.d.mts +1 -0
  335. package/dist/tests/organisations/rules/OnlineAttendanceRule.test.mjs +59 -0
  336. package/dist/tests/organisations/rules/SearchVolumeAreasAttendanceRule.test.d.mts +1 -0
  337. package/dist/tests/organisations/rules/SearchVolumeAreasAttendanceRule.test.mjs +59 -0
  338. package/dist/tests/organisations/rules/SearchVolumeAreasDisciplineRule.test.d.mts +1 -0
  339. package/dist/tests/organisations/rules/SearchVolumeAreasDisciplineRule.test.mjs +59 -0
  340. package/dist/tests/organisations/rules/SearchVolumeCountriesAttendanceRule.test.d.mts +1 -0
  341. package/dist/tests/organisations/rules/SearchVolumeCountriesAttendanceRule.test.mjs +59 -0
  342. package/dist/tests/organisations/utils/SearchDependencies.util.d.mts +20 -0
  343. package/dist/tests/organisations/utils/SearchDependencies.util.mjs +88 -0
  344. package/dist/tests/organisations/utils/SitemapDependencies.util.d.mts +18 -0
  345. package/dist/tests/organisations/utils/SitemapDependencies.util.mjs +54 -0
  346. package/dist/tests/presenters/AreaPresenter.test.d.mts +1 -0
  347. package/dist/tests/presenters/AreaPresenter.test.mjs +46 -0
  348. package/dist/tests/presenters/AttendancePresenter.test.d.mts +1 -0
  349. package/dist/tests/presenters/AttendancePresenter.test.mjs +41 -0
  350. package/dist/tests/presenters/ContinentPresenter.test.d.mts +1 -0
  351. package/dist/tests/presenters/ContinentPresenter.test.mjs +44 -0
  352. package/dist/tests/presenters/CountryPresenter.test.d.mts +1 -0
  353. package/dist/tests/presenters/CountryPresenter.test.mjs +50 -0
  354. package/dist/tests/presenters/DegreePresenter.test.d.mts +1 -0
  355. package/dist/tests/presenters/DegreePresenter.test.mjs +51 -0
  356. package/dist/tests/presenters/DisciplinePresenter.test.d.mts +1 -0
  357. package/dist/tests/presenters/DisciplinePresenter.test.mjs +40 -0
  358. package/dist/tests/presenters/DurationPresenter.test.d.mts +1 -0
  359. package/dist/tests/presenters/DurationPresenter.test.mjs +64 -0
  360. package/dist/tests/presenters/EducationalFormPresenter.test.d.mts +1 -0
  361. package/dist/tests/presenters/EducationalFormPresenter.test.mjs +60 -0
  362. package/dist/tests/presenters/FormatPresenter.test.d.mts +1 -0
  363. package/dist/tests/presenters/FormatPresenter.test.mjs +43 -0
  364. package/dist/tests/presenters/SpecialProgrammesPresenter.test.d.mts +1 -0
  365. package/dist/tests/presenters/SpecialProgrammesPresenter.test.mjs +66 -0
  366. package/dist/tests/presenters/TuitionFeePresenter.test.d.mts +1 -0
  367. package/dist/tests/presenters/TuitionFeePresenter.test.mjs +52 -0
  368. package/dist/tests/programmes/policies/Area.test.d.mts +1 -0
  369. package/dist/tests/programmes/policies/Area.test.mjs +153 -0
  370. package/dist/tests/programmes/policies/Attendance.test.d.mts +1 -0
  371. package/dist/tests/programmes/policies/Attendance.test.mjs +173 -0
  372. package/dist/tests/programmes/policies/AttendanceDegree.test.d.mts +1 -0
  373. package/dist/tests/programmes/policies/AttendanceDegree.test.mjs +291 -0
  374. package/dist/tests/programmes/policies/Continent.test.d.mts +1 -0
  375. package/dist/tests/programmes/policies/Continent.test.mjs +169 -0
  376. package/dist/tests/programmes/policies/Country.test.d.mts +1 -0
  377. package/dist/tests/programmes/policies/Country.test.mjs +164 -0
  378. package/dist/tests/programmes/policies/CountryAttendance.test.d.mts +1 -0
  379. package/dist/tests/programmes/policies/CountryAttendance.test.mjs +251 -0
  380. package/dist/tests/programmes/policies/CountryAttendanceDegree.test.d.mts +1 -0
  381. package/dist/tests/programmes/policies/CountryAttendanceDegree.test.mjs +337 -0
  382. package/dist/tests/programmes/policies/CountryDegree.test.d.mts +1 -0
  383. package/dist/tests/programmes/policies/CountryDegree.test.mjs +262 -0
  384. package/dist/tests/programmes/policies/CountryDuration.test.d.mts +1 -0
  385. package/dist/tests/programmes/policies/CountryDuration.test.mjs +234 -0
  386. package/dist/tests/programmes/policies/CountryDurationDegree.test.d.mts +1 -0
  387. package/dist/tests/programmes/policies/CountryDurationDegree.test.mjs +304 -0
  388. package/dist/tests/programmes/policies/CountryEducationalForm.test.d.mts +1 -0
  389. package/dist/tests/programmes/policies/CountryEducationalForm.test.mjs +260 -0
  390. package/dist/tests/programmes/policies/CountryFormat.test.d.mts +1 -0
  391. package/dist/tests/programmes/policies/CountryFormat.test.mjs +253 -0
  392. package/dist/tests/programmes/policies/DegreeAttendanceDiscipline.test.d.mts +1 -0
  393. package/dist/tests/programmes/policies/DegreeAttendanceDiscipline.test.mjs +179 -0
  394. package/dist/tests/programmes/policies/DegreeCountryAttendance.test.d.mts +1 -0
  395. package/dist/tests/programmes/policies/DegreeCountryAttendance.test.mjs +267 -0
  396. package/dist/tests/programmes/policies/DegreeCountryTuitionFee.test.d.mts +1 -0
  397. package/dist/tests/programmes/policies/DegreeCountryTuitionFee.test.mjs +217 -0
  398. package/dist/tests/programmes/policies/DegreeFormat.test.d.mts +1 -0
  399. package/dist/tests/programmes/policies/DegreeFormat.test.mjs +221 -0
  400. package/dist/tests/programmes/policies/Discipline.test.d.mts +1 -0
  401. package/dist/tests/programmes/policies/Discipline.test.mjs +159 -0
  402. package/dist/tests/programmes/policies/DisciplineAttendance.test.d.mts +1 -0
  403. package/dist/tests/programmes/policies/DisciplineAttendance.test.mjs +292 -0
  404. package/dist/tests/programmes/policies/DisciplineContinent.test.d.mts +1 -0
  405. package/dist/tests/programmes/policies/DisciplineContinent.test.mjs +253 -0
  406. package/dist/tests/programmes/policies/DisciplineCountry.test.d.mts +1 -0
  407. package/dist/tests/programmes/policies/DisciplineCountry.test.mjs +244 -0
  408. package/dist/tests/programmes/policies/DisciplineCountryEducationalForm.test.d.mts +1 -0
  409. package/dist/tests/programmes/policies/DisciplineCountryEducationalForm.test.mjs +345 -0
  410. package/dist/tests/programmes/policies/DisciplineDegree.test.d.mts +1 -0
  411. package/dist/tests/programmes/policies/DisciplineDegree.test.mjs +273 -0
  412. package/dist/tests/programmes/policies/DisciplineDuration.test.d.mts +1 -0
  413. package/dist/tests/programmes/policies/DisciplineDuration.test.mjs +278 -0
  414. package/dist/tests/programmes/policies/DisciplineEducationalForm.test.d.mts +1 -0
  415. package/dist/tests/programmes/policies/DisciplineEducationalForm.test.mjs +302 -0
  416. package/dist/tests/programmes/policies/DisciplineFormat.test.d.mts +1 -0
  417. package/dist/tests/programmes/policies/DisciplineFormat.test.mjs +266 -0
  418. package/dist/tests/programmes/policies/Duration.test.d.mts +1 -0
  419. package/dist/tests/programmes/policies/Duration.test.mjs +179 -0
  420. package/dist/tests/programmes/policies/Format.test.d.mts +1 -0
  421. package/dist/tests/programmes/policies/Format.test.mjs +117 -0
  422. package/dist/tests/programmes/policies/NewRulesValidation.test.d.mts +1 -0
  423. package/dist/tests/programmes/policies/NewRulesValidation.test.mjs +320 -0
  424. package/dist/tests/programmes/policies/SpecialProgrammes.test.d.mts +1 -0
  425. package/dist/tests/programmes/policies/SpecialProgrammes.test.mjs +171 -0
  426. package/dist/tests/programmes/policies/TuitionFeeAttendanceDiscipline.test.d.mts +1 -0
  427. package/dist/tests/programmes/policies/TuitionFeeAttendanceDiscipline.test.mjs +360 -0
  428. package/dist/tests/programmes/policies/TuitionFeeContinent.test.d.mts +1 -0
  429. package/dist/tests/programmes/policies/TuitionFeeContinent.test.mjs +293 -0
  430. package/dist/tests/programmes/policies/TuitionFeeCountry.test.d.mts +1 -0
  431. package/dist/tests/programmes/policies/TuitionFeeCountry.test.mjs +266 -0
  432. package/dist/tests/programmes/policies/TuitionFeeDiscipline.test.d.mts +1 -0
  433. package/dist/tests/programmes/policies/TuitionFeeDiscipline.test.mjs +267 -0
  434. package/dist/tests/programmes/policies/Unfiltered.test.d.mts +1 -0
  435. package/dist/tests/programmes/policies/Unfiltered.test.mjs +90 -0
  436. package/dist/tests/programmes/rules/AffordableTuitionFeeRule.test.d.mts +1 -0
  437. package/dist/tests/programmes/rules/AffordableTuitionFeeRule.test.mjs +27 -0
  438. package/dist/tests/programmes/rules/DegreeCountrySpecificRule.test.d.mts +1 -0
  439. package/dist/tests/programmes/rules/DegreeCountrySpecificRule.test.mjs +121 -0
  440. package/dist/tests/programmes/rules/DegreeDisciplineRule.test.d.mts +1 -0
  441. package/dist/tests/programmes/rules/DegreeDisciplineRule.test.mjs +169 -0
  442. package/dist/tests/programmes/rules/IndexableDegreeRule.test.d.mts +1 -0
  443. package/dist/tests/programmes/rules/IndexableDegreeRule.test.mjs +101 -0
  444. package/dist/tests/programmes/rules/IndexableDurationRule.test..d.mts +1 -0
  445. package/dist/tests/programmes/rules/IndexableDurationRule.test..mjs +25 -0
  446. package/dist/tests/programmes/rules/IndexableEducationalFormRule.test.d.mts +1 -0
  447. package/dist/tests/programmes/rules/IndexableEducationalFormRule.test.mjs +27 -0
  448. package/dist/tests/programmes/rules/IndexablePageNumberRule.test.d.mts +1 -0
  449. package/dist/tests/programmes/rules/IndexablePageNumberRule.test.mjs +51 -0
  450. package/dist/tests/programmes/rules/MbaDegreeRule.test.d.mts +1 -0
  451. package/dist/tests/programmes/rules/MbaDegreeRule.test.mjs +55 -0
  452. package/dist/tests/programmes/rules/MbaOrMscDegreeRule.test.d.mts +1 -0
  453. package/dist/tests/programmes/rules/MbaOrMscDegreeRule.test.mjs +53 -0
  454. package/dist/tests/programmes/rules/MinimumAmountOfResultsRule.test.d.mts +1 -0
  455. package/dist/tests/programmes/rules/MinimumAmountOfResultsRule.test.mjs +79 -0
  456. package/dist/tests/programmes/rules/NotDistanceLearningPortalRule.test.d.mts +1 -0
  457. package/dist/tests/programmes/rules/NotDistanceLearningPortalRule.test.mjs +57 -0
  458. package/dist/tests/programmes/rules/OneYearDurationRule.test..d.mts +1 -0
  459. package/dist/tests/programmes/rules/OneYearDurationRule.test..mjs +40 -0
  460. package/dist/tests/programmes/rules/OnlineAttendanceRule.test.d.mts +1 -0
  461. package/dist/tests/programmes/rules/OnlineAttendanceRule.test.mjs +69 -0
  462. package/dist/tests/programmes/rules/PartTimeFormatRule.test.d.mts +1 -0
  463. package/dist/tests/programmes/rules/PartTimeFormatRule.test.mjs +27 -0
  464. package/dist/tests/programmes/utils/SearchDependencies.util.d.mts +16 -0
  465. package/dist/tests/programmes/utils/SearchDependencies.util.mjs +73 -0
  466. package/dist/tests/programmes/utils/SitemapDependencies.util.d.mts +15 -0
  467. package/dist/tests/programmes/utils/SitemapDependencies.util.mjs +49 -0
  468. package/dist/tests/scholarships/policies/Area.test.d.mts +1 -0
  469. package/dist/tests/scholarships/policies/Area.test.mjs +121 -0
  470. package/dist/tests/scholarships/policies/Country.test.d.mts +1 -0
  471. package/dist/tests/scholarships/policies/Country.test.mjs +97 -0
  472. package/dist/tests/scholarships/policies/Discipline.test.d.mts +1 -0
  473. package/dist/tests/scholarships/policies/Discipline.test.mjs +93 -0
  474. package/dist/tests/scholarships/policies/DisciplineCountry.test.d.mts +1 -0
  475. package/dist/tests/scholarships/policies/DisciplineCountry.test.mjs +151 -0
  476. package/dist/tests/scholarships/policies/Unfiltered.test.d.mts +1 -0
  477. package/dist/tests/scholarships/policies/Unfiltered.test.mjs +44 -0
  478. package/dist/tests/scholarships/policies/UniversityCountry.test.d.mts +1 -0
  479. package/dist/tests/scholarships/policies/UniversityCountry.test.mjs +115 -0
  480. package/dist/tests/scholarships/rules/ExceptAustaliaAreasRule.test.d.mts +1 -0
  481. package/dist/tests/scholarships/rules/ExceptAustaliaAreasRule.test.mjs +64 -0
  482. package/dist/tests/scholarships/rules/SearchVolumeAreasRule.test.d.mts +1 -0
  483. package/dist/tests/scholarships/rules/SearchVolumeAreasRule.test.mjs +62 -0
  484. package/dist/tests/scholarships/rules/SearchVolumeCountriesDisciplinesRule.test.d.mts +1 -0
  485. package/dist/tests/scholarships/rules/SearchVolumeCountriesDisciplinesRule.test.mjs +114 -0
  486. package/dist/tests/scholarships/rules/SearchVolumeCountriesRule.test.d.mts +1 -0
  487. package/dist/tests/scholarships/rules/SearchVolumeCountriesRule.test.mjs +62 -0
  488. package/dist/tests/scholarships/rules/SearchVolumeDisciplinesRule.test.d.mts +1 -0
  489. package/dist/tests/scholarships/rules/SearchVolumeDisciplinesRule.test.mjs +62 -0
  490. package/dist/tests/scholarships/utils/SearchDependencies.util.d.mts +16 -0
  491. package/dist/tests/scholarships/utils/SearchDependencies.util.mjs +70 -0
  492. package/dist/tests/scholarships/utils/SitemapDependencies.util.d.mts +11 -0
  493. package/dist/tests/scholarships/utils/SitemapDependencies.util.mjs +33 -0
  494. package/dist/tests/sitemap-generator/BaseSitemapUrlGeneratorManager.test.d.mts +1 -0
  495. package/dist/tests/sitemap-generator/BaseSitemapUrlGeneratorManager.test.mjs +82 -0
  496. package/dist/tests/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.test.d.mts +1 -0
  497. package/dist/tests/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.test.mjs +85 -0
  498. package/dist/tests/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.test.d.mts +1 -0
  499. package/dist/tests/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.test.mjs +77 -0
  500. package/dist/tests/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.test.d.mts +1 -0
  501. package/dist/tests/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.test.mjs +60 -0
  502. package/dist/tests/structured-data/OrganisationStructuredDataFactory.test.d.mts +1 -0
  503. package/dist/tests/structured-data/OrganisationStructuredDataFactory.test.mjs +334 -0
  504. package/dist/tests/structured-data/ProgrammeStructuredDataFactory.test.d.mts +1 -0
  505. package/dist/tests/structured-data/ProgrammeStructuredDataFactory.test.mjs +562 -0
  506. package/dist/tests/structured-data/ScholarshipStructuredDataFactory.test.d.mts +1 -0
  507. package/dist/tests/structured-data/ScholarshipStructuredDataFactory.test.mjs +292 -0
  508. package/dist/tests/structured-data/SearchStructuredDataFactory.paywall.test.d.mts +1 -0
  509. package/dist/tests/structured-data/SearchStructuredDataFactory.paywall.test.mjs +258 -0
  510. package/package.json +1 -1
  511. package/dist/src/programmes/policies/AttendanceTuitionFee.d.ts +0 -17
  512. package/dist/src/programmes/policies/AttendanceTuitionFee.js +0 -51
  513. package/dist/src/programmes/policies/ContinentTuitionFee.d.ts +0 -16
  514. package/dist/src/programmes/policies/ContinentTuitionFee.js +0 -46
  515. package/dist/src/programmes/policies/CountryTuitionFee.d.ts +0 -16
  516. package/dist/src/programmes/policies/CountryTuitionFee.js +0 -46
  517. package/dist/src/programmes/policies/DegreeAreaTuitionFee.d.ts +0 -16
  518. package/dist/src/programmes/policies/DisciplineTuitionFee.js +0 -46
  519. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.d.ts +0 -17
  520. 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,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,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,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,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,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
+ });