@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,253 @@
1
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
2
+ import { FilterKey } from '@studyportals/search-filters/server-side';
3
+ import { SearchDependencies } from '../../../organisations/utils/SearchDependencies.util.mjs';
4
+ import { SitemapDependencies } from '../../utils/SitemapDependencies.util.mjs';
5
+ import { SortingOptions } from '@/enums/SortingOptions';
6
+ import { RankedContinentAttendance } from '@/organisations/policies';
7
+ import { PortalType } from '@studyportals/domain-client';
8
+ import { ContinentPresenter } from '@/presenters/ContinentPresenter';
9
+ import { AttendancePresenter } from '@/presenters/AttendancePresenter';
10
+ describe('Policy:RankedContinentAttendance', () => {
11
+ describe('shouldIndex', () => {
12
+ let searchDependenciesHelper;
13
+ let rankedContinentAttendancePolicy;
14
+ beforeEach(() => {
15
+ searchDependenciesHelper = new SearchDependencies();
16
+ rankedContinentAttendancePolicy = new RankedContinentAttendance(searchDependenciesHelper.dependencies);
17
+ searchDependenciesHelper.setSortingState(SortingOptions.UNIVERSITY_META_RANKING);
18
+ searchDependenciesHelper.setRankedResultsCount(10);
19
+ });
20
+ it('Should return true when all conditions are met', async () => {
21
+ const continentId = '1'; // Europe
22
+ const attendance = 'online';
23
+ searchDependenciesHelper.setFilterKeyValues(new Map([
24
+ [FilterKey.CONTINENT, [continentId]],
25
+ [FilterKey.DELIVERY_METHOD, [attendance]]
26
+ ]));
27
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
28
+ expect(result).toBe(true);
29
+ });
30
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should return false when the selected portal type is %s', async (portalType) => {
31
+ const continentId = '1'; // Europe
32
+ const attendance = 'online';
33
+ searchDependenciesHelper.setFilterKeyValues(new Map([
34
+ [FilterKey.CONTINENT, [continentId]],
35
+ [FilterKey.DELIVERY_METHOD, [attendance]]
36
+ ]));
37
+ searchDependenciesHelper.setPortalType(portalType);
38
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
39
+ expect(result).toBe(false);
40
+ });
41
+ it('Should return false when area when Our Picks sorting is selected', async () => {
42
+ searchDependenciesHelper.setSortingState(SortingOptions.OUR_PICKS);
43
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
44
+ expect(result).toBe(false);
45
+ });
46
+ it('Should return false when multiple continents are selected', async () => {
47
+ const attendance = 'online';
48
+ const firstContinentId = '1'; // Europe
49
+ const secondContinentId = '9'; // Asia
50
+ searchDependenciesHelper.setFilterKeyValues(new Map([
51
+ [FilterKey.DELIVERY_METHOD, [attendance]],
52
+ [FilterKey.CONTINENT, [firstContinentId, secondContinentId]]
53
+ ]));
54
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
55
+ expect(result).toBe(false);
56
+ });
57
+ it('Should return false when multiple attendances are selected', async () => {
58
+ const continentId = '1'; // Europe
59
+ const firstAttendance = 'online';
60
+ const secondAttendance = 'blended';
61
+ searchDependenciesHelper.setFilterKeyValues(new Map([
62
+ [FilterKey.CONTINENT, [continentId]],
63
+ [FilterKey.DELIVERY_METHOD, [firstAttendance, secondAttendance]]
64
+ ]));
65
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
66
+ expect(result).toBe(false);
67
+ });
68
+ it('Should return false when no attendances are selected', async () => {
69
+ const continentId = '1'; // Europe
70
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.CONTINENT, [continentId]]]));
71
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
72
+ expect(result).toBe(false);
73
+ });
74
+ it('Should return false when no continents are selected', async () => {
75
+ const attendance = 'online';
76
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
77
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
78
+ expect(result).toBe(false);
79
+ });
80
+ it('Should return false when other filters are selected', async () => {
81
+ const continentId = '1'; // Europe
82
+ const disciplineId = '12'; // Applied Sciences & Professions
83
+ const attendance = 'online';
84
+ searchDependenciesHelper.setFilterKeyValues(new Map([
85
+ [FilterKey.CONTINENT, [continentId]],
86
+ [FilterKey.DISCIPLINES, [disciplineId]],
87
+ [FilterKey.DELIVERY_METHOD, [attendance]]
88
+ ]));
89
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
90
+ expect(result).toBe(false);
91
+ });
92
+ it('Should return false when there are less then 2 ranked results', async () => {
93
+ const rankedResultsCount = 1;
94
+ const continentId = '1'; // Europe
95
+ const attendance = 'online';
96
+ searchDependenciesHelper.setRankedResultsCount(rankedResultsCount);
97
+ searchDependenciesHelper.setFilterKeyValues(new Map([
98
+ [FilterKey.CONTINENT, [continentId]],
99
+ [FilterKey.DELIVERY_METHOD, [attendance]]
100
+ ]));
101
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
102
+ expect(result).toBe(false);
103
+ });
104
+ it('Should return false when attendance is not online', async () => {
105
+ const attendance = 'blended';
106
+ const continentId = '1'; // Europe
107
+ searchDependenciesHelper.setFilterKeyValues(new Map([
108
+ [FilterKey.DELIVERY_METHOD, [attendance]],
109
+ [FilterKey.CONTINENT, [continentId]]
110
+ ]));
111
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
112
+ expect(result).toBe(false);
113
+ });
114
+ it('Should return false when continent is not Europe', async () => {
115
+ const attendance = 'blended';
116
+ const continentId = '9'; // Asia
117
+ searchDependenciesHelper.setFilterKeyValues(new Map([
118
+ [FilterKey.DELIVERY_METHOD, [attendance]],
119
+ [FilterKey.CONTINENT, [continentId]]
120
+ ]));
121
+ const result = await rankedContinentAttendancePolicy.shouldIndex();
122
+ expect(result).toBe(false);
123
+ });
124
+ });
125
+ describe('generateSitemapUrls', () => {
126
+ const pathPrefix = 'rankings/';
127
+ const enoughRankedOrganisations = 10;
128
+ const noRankedOrganisations = 0;
129
+ let sitemapDependenciesHelper;
130
+ let rankedContinentAttendancePolicy;
131
+ let continentFragments;
132
+ let attendanceFragments;
133
+ beforeEach(() => {
134
+ sitemapDependenciesHelper = new SitemapDependencies();
135
+ rankedContinentAttendancePolicy = new RankedContinentAttendance(sitemapDependenciesHelper.dependencies);
136
+ vi.spyOn(ContinentPresenter, 'getInstance').mockReturnValue({
137
+ getFragments: vi.fn(() => continentFragments),
138
+ generatePaths: vi.fn(() => continentFragments),
139
+ fragments: continentFragments
140
+ });
141
+ vi.spyOn(AttendancePresenter, 'getInstance').mockReturnValue({
142
+ getFragments: vi.fn(() => attendanceFragments),
143
+ generatePaths: vi.fn(() => attendanceFragments),
144
+ fragments: attendanceFragments
145
+ });
146
+ sitemapDependenciesHelper.setRankedOrganisationCount(enoughRankedOrganisations);
147
+ });
148
+ it('Should return path when all conditions are met', async () => {
149
+ const continentId = '1'; // Europe
150
+ const continentPath = 'continent-path';
151
+ const attendanceId = 'online';
152
+ const attendancePath = 'attendance-path';
153
+ continentFragments = [
154
+ {
155
+ id: continentId,
156
+ path: continentPath
157
+ }
158
+ ];
159
+ attendanceFragments = [
160
+ {
161
+ id: attendanceId,
162
+ path: attendancePath
163
+ }
164
+ ];
165
+ const result = await rankedContinentAttendancePolicy.generateSitemapUrls();
166
+ expect(result).toEqual([`${pathPrefix}${attendancePath}/${continentPath}`]);
167
+ });
168
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
169
+ const continentId = '1'; // Europe
170
+ const continentPath = 'continent-path';
171
+ const attendanceId = 'online';
172
+ const attendancePath = 'attendance-path';
173
+ continentFragments = [
174
+ {
175
+ id: continentId,
176
+ path: continentPath
177
+ }
178
+ ];
179
+ attendanceFragments = [
180
+ {
181
+ id: attendanceId,
182
+ path: attendancePath
183
+ }
184
+ ];
185
+ sitemapDependenciesHelper.setPortalType(portalType);
186
+ const result = await rankedContinentAttendancePolicy.generateSitemapUrls();
187
+ expect(result).toEqual([]);
188
+ });
189
+ it('Should not return path when there is no ranked organisation', async () => {
190
+ const continentId = '1'; // Europe
191
+ const continentPath = 'continent-path';
192
+ const attendanceId = 'online';
193
+ const attendancePath = 'attendance-path';
194
+ continentFragments = [
195
+ {
196
+ id: continentId,
197
+ path: continentPath
198
+ }
199
+ ];
200
+ attendanceFragments = [
201
+ {
202
+ id: attendanceId,
203
+ path: attendancePath
204
+ }
205
+ ];
206
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
207
+ const result = await rankedContinentAttendancePolicy.generateSitemapUrls();
208
+ expect(result).toEqual([]);
209
+ });
210
+ it('Should not return path when continent is not Europe', async () => {
211
+ const continentId = '9'; // Asia
212
+ const continentPath = 'continent-path';
213
+ const attendanceId = 'online';
214
+ const attendancePath = 'attendance-path';
215
+ continentFragments = [
216
+ {
217
+ id: continentId,
218
+ path: continentPath
219
+ }
220
+ ];
221
+ attendanceFragments = [
222
+ {
223
+ id: attendanceId,
224
+ path: attendancePath
225
+ }
226
+ ];
227
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
228
+ const result = await rankedContinentAttendancePolicy.generateSitemapUrls();
229
+ expect(result).toEqual([]);
230
+ });
231
+ it('Should not return path when attendance is not online', async () => {
232
+ const continentId = '1'; // Europe
233
+ const continentPath = 'continent-path';
234
+ const attendanceId = 'not-online';
235
+ const attendancePath = 'attendance-path';
236
+ continentFragments = [
237
+ {
238
+ id: continentId,
239
+ path: continentPath
240
+ }
241
+ ];
242
+ attendanceFragments = [
243
+ {
244
+ id: attendanceId,
245
+ path: attendancePath
246
+ }
247
+ ];
248
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
249
+ const result = await rankedContinentAttendancePolicy.generateSitemapUrls();
250
+ expect(result).toEqual([]);
251
+ });
252
+ });
253
+ });
@@ -0,0 +1,131 @@
1
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
2
+ import { FilterKey } from '@studyportals/search-filters/server-side';
3
+ import { SearchDependencies } from '../../../organisations/utils/SearchDependencies.util.mjs';
4
+ import { SitemapDependencies } from '../../utils/SitemapDependencies.util.mjs';
5
+ import { SortingOptions } from '@/enums/SortingOptions';
6
+ import { RankedCountry } from '@/organisations/policies';
7
+ import { PortalType } from '@studyportals/domain-client';
8
+ import { CountryPresenter } from '@/presenters/CountryPresenter';
9
+ describe('Policy:RankedCountry', () => {
10
+ describe('shouldIndex', () => {
11
+ let searchDependenciesHelper;
12
+ let rankedCountryPolicy;
13
+ beforeEach(() => {
14
+ searchDependenciesHelper = new SearchDependencies();
15
+ rankedCountryPolicy = new RankedCountry(searchDependenciesHelper.dependencies);
16
+ searchDependenciesHelper.setSortingState(SortingOptions.UNIVERSITY_META_RANKING);
17
+ searchDependenciesHelper.setRankedResultsCount(10);
18
+ });
19
+ it('Should return true when all conditions are met', async () => {
20
+ const countryId = '30'; // UK
21
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
22
+ const result = await rankedCountryPolicy.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 countryId = '30'; // UK
27
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
28
+ searchDependenciesHelper.setPortalType(portalType);
29
+ const result = await rankedCountryPolicy.shouldIndex();
30
+ expect(result).toBe(false);
31
+ });
32
+ it('Should return false when area when Our Picks sorting is selected', async () => {
33
+ searchDependenciesHelper.setSortingState(SortingOptions.OUR_PICKS);
34
+ const result = await rankedCountryPolicy.shouldIndex();
35
+ expect(result).toBe(false);
36
+ });
37
+ it('Should return false when multiple countries are selected', async () => {
38
+ const firstCountryId = '30'; // UK
39
+ const secondCountryId = '82'; // US
40
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [firstCountryId, secondCountryId]]]));
41
+ const result = await rankedCountryPolicy.shouldIndex();
42
+ expect(result).toBe(false);
43
+ });
44
+ it('Should return false when no countries are selected', async () => {
45
+ const disciplineId = '54'; // Agriculture & Forestry
46
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DISCIPLINES, [disciplineId]]]));
47
+ const result = await rankedCountryPolicy.shouldIndex();
48
+ expect(result).toBe(false);
49
+ });
50
+ it('Should return false when other filters are selected', async () => {
51
+ const countryId = '30'; // UK
52
+ const disciplineId = '1';
53
+ searchDependenciesHelper.setFilterKeyValues(new Map([
54
+ [FilterKey.COUNTRY, [countryId]],
55
+ [FilterKey.DISCIPLINES, [disciplineId]]
56
+ ]));
57
+ const result = await rankedCountryPolicy.shouldIndex();
58
+ expect(result).toBe(false);
59
+ });
60
+ it('Should return false when there are less then 2 ranked results', async () => {
61
+ const rankedResultsCount = 1;
62
+ const countryId = '30'; // UK
63
+ searchDependenciesHelper.setRankedResultsCount(rankedResultsCount);
64
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
65
+ const result = await rankedCountryPolicy.shouldIndex();
66
+ expect(result).toBe(false);
67
+ });
68
+ });
69
+ describe('generateSitemapUrls', () => {
70
+ const pathPrefix = 'rankings/';
71
+ const enoughRankedOrganisations = 10;
72
+ const noRankedOrganisations = 0;
73
+ let sitemapDependenciesHelper;
74
+ let rankedCountryPolicy;
75
+ let countryFragments;
76
+ beforeEach(() => {
77
+ sitemapDependenciesHelper = new SitemapDependencies();
78
+ rankedCountryPolicy = new RankedCountry(sitemapDependenciesHelper.dependencies);
79
+ vi.spyOn(CountryPresenter, 'getInstance').mockReturnValue({
80
+ getFragments: vi.fn(() => countryFragments),
81
+ generatePaths: vi.fn(() => countryFragments),
82
+ fragments: countryFragments
83
+ });
84
+ sitemapDependenciesHelper.setRankedOrganisationCount(enoughRankedOrganisations);
85
+ });
86
+ it('Should return path when all conditions are met', async () => {
87
+ const countryId = '30'; // UK
88
+ const countryIso = 'UK';
89
+ const countryPath = 'country-path';
90
+ countryFragments = [
91
+ {
92
+ id: countryId,
93
+ iso: countryIso,
94
+ path: countryPath
95
+ }
96
+ ];
97
+ const result = await rankedCountryPolicy.generateSitemapUrls();
98
+ expect(result).toEqual([`${pathPrefix}${countryPath}`]);
99
+ });
100
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
101
+ const countryId = '30'; // UK
102
+ const countryIso = 'UK';
103
+ const countryPath = 'country-path';
104
+ countryFragments = [
105
+ {
106
+ id: countryId,
107
+ iso: countryIso,
108
+ path: countryPath
109
+ }
110
+ ];
111
+ sitemapDependenciesHelper.setPortalType(portalType);
112
+ const result = await rankedCountryPolicy.generateSitemapUrls();
113
+ expect(result).toEqual([]);
114
+ });
115
+ it('Should not return path when there is no ranked organisation', async () => {
116
+ const countryId = '30'; // UK
117
+ const countryIso = 'UK';
118
+ const countryPath = 'country-path';
119
+ countryFragments = [
120
+ {
121
+ id: countryId,
122
+ iso: countryIso,
123
+ path: countryPath
124
+ }
125
+ ];
126
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
127
+ const result = await rankedCountryPolicy.generateSitemapUrls();
128
+ expect(result).toEqual([]);
129
+ });
130
+ });
131
+ });
@@ -0,0 +1,230 @@
1
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
2
+ import { FilterKey } from '@studyportals/search-filters/server-side';
3
+ import { SearchDependencies } from '../../utils/SearchDependencies.util.mjs';
4
+ import { SitemapDependencies } from '../../utils/SitemapDependencies.util.mjs';
5
+ import { SortingOptions } from '@/enums/SortingOptions';
6
+ import { RankedCountryAttendance } from '@/organisations/policies';
7
+ import { PortalType } from '@studyportals/domain-client';
8
+ import { AttendancePresenter } from '@/presenters/AttendancePresenter';
9
+ import { CountryPresenter } from '@/presenters/CountryPresenter';
10
+ describe('Policy:RankedCountryAttendance', () => {
11
+ describe('shouldIndex', () => {
12
+ let searchDependenciesHelper;
13
+ let rankedCountryAttendancePolicy;
14
+ beforeEach(() => {
15
+ searchDependenciesHelper = new SearchDependencies();
16
+ rankedCountryAttendancePolicy = new RankedCountryAttendance(searchDependenciesHelper.dependencies);
17
+ searchDependenciesHelper.setSortingState(SortingOptions.UNIVERSITY_META_RANKING);
18
+ searchDependenciesHelper.setRankedResultsCount(10);
19
+ });
20
+ it('Should return true when all conditions are met', async () => {
21
+ const countryId = '30'; // UK
22
+ const attendance = 'online';
23
+ searchDependenciesHelper.setFilterKeyValues(new Map([
24
+ [FilterKey.COUNTRY, [countryId]],
25
+ [FilterKey.DELIVERY_METHOD, [attendance]]
26
+ ]));
27
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
28
+ expect(result).toBe(true);
29
+ });
30
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should return false when the selected portal type is %s', async (portalType) => {
31
+ const countryId = '30'; // UK
32
+ const attendance = 'online';
33
+ searchDependenciesHelper.setFilterKeyValues(new Map([
34
+ [FilterKey.COUNTRY, [countryId]],
35
+ [FilterKey.DELIVERY_METHOD, [attendance]]
36
+ ]));
37
+ searchDependenciesHelper.setPortalType(portalType);
38
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
39
+ expect(result).toBe(false);
40
+ });
41
+ it('Should return false when area when Our Picks sorting is selected', async () => {
42
+ searchDependenciesHelper.setSortingState(SortingOptions.OUR_PICKS);
43
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
44
+ expect(result).toBe(false);
45
+ });
46
+ it('Should return false when multiple countries are selected', async () => {
47
+ const attendance = 'online';
48
+ const firstCountryId = '30'; // UK
49
+ const secondCountryId = '21'; // PT
50
+ searchDependenciesHelper.setFilterKeyValues(new Map([
51
+ [FilterKey.DELIVERY_METHOD, [attendance]],
52
+ [FilterKey.COUNTRY, [firstCountryId, secondCountryId]]
53
+ ]));
54
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
55
+ expect(result).toBe(false);
56
+ });
57
+ it('Should return false when multiple attendances are selected', async () => {
58
+ const countryId = '30'; // UK
59
+ const firstAttendance = 'online';
60
+ const secondAttendance = 'blended';
61
+ searchDependenciesHelper.setFilterKeyValues(new Map([
62
+ [FilterKey.COUNTRY, [countryId]],
63
+ [FilterKey.DELIVERY_METHOD, [firstAttendance, secondAttendance]]
64
+ ]));
65
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
66
+ expect(result).toBe(false);
67
+ });
68
+ it('Should return false when no attendances are selected', async () => {
69
+ const countryId = '30'; // UK
70
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
71
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
72
+ expect(result).toBe(false);
73
+ });
74
+ it('Should return false when no countries are selected', async () => {
75
+ const attendance = 'online';
76
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DELIVERY_METHOD, [attendance]]]));
77
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
78
+ expect(result).toBe(false);
79
+ });
80
+ it('Should return false when other filters are selected', async () => {
81
+ const countryId = '30'; // UK
82
+ const disciplineId = '12'; // Applied Sciences & Professions
83
+ const attendance = 'online';
84
+ searchDependenciesHelper.setFilterKeyValues(new Map([
85
+ [FilterKey.COUNTRY, [countryId]],
86
+ [FilterKey.DISCIPLINES, [disciplineId]],
87
+ [FilterKey.DELIVERY_METHOD, [attendance]]
88
+ ]));
89
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
90
+ expect(result).toBe(false);
91
+ });
92
+ it('Should return false when there are less then 2 ranked results', async () => {
93
+ const rankedResultsCount = 1;
94
+ const countryId = '30'; // UK
95
+ const attendance = 'online';
96
+ searchDependenciesHelper.setRankedResultsCount(rankedResultsCount);
97
+ searchDependenciesHelper.setFilterKeyValues(new Map([
98
+ [FilterKey.CONTINENT, [countryId]],
99
+ [FilterKey.DELIVERY_METHOD, [attendance]]
100
+ ]));
101
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
102
+ expect(result).toBe(false);
103
+ });
104
+ it('Should return false when attendance is not online', async () => {
105
+ const attendance = 'blended';
106
+ const countryId = '30'; // UK
107
+ searchDependenciesHelper.setFilterKeyValues(new Map([
108
+ [FilterKey.DELIVERY_METHOD, [attendance]],
109
+ [FilterKey.COUNTRY, [countryId]]
110
+ ]));
111
+ const result = await rankedCountryAttendancePolicy.shouldIndex();
112
+ expect(result).toBe(false);
113
+ });
114
+ });
115
+ describe('generateSitemapUrls', () => {
116
+ const pathPrefix = 'rankings/';
117
+ const enoughRankedOrganisations = 10;
118
+ const noRankedOrganisations = 0;
119
+ let sitemapDependenciesHelper;
120
+ let rankedCountryAttendancePolicy;
121
+ let countryFragments;
122
+ let attendanceFragments;
123
+ beforeEach(() => {
124
+ sitemapDependenciesHelper = new SitemapDependencies();
125
+ rankedCountryAttendancePolicy = new RankedCountryAttendance(sitemapDependenciesHelper.dependencies);
126
+ vi.spyOn(CountryPresenter, 'getInstance').mockReturnValue({
127
+ getFragments: vi.fn(() => countryFragments),
128
+ generatePaths: vi.fn(() => countryFragments),
129
+ fragments: countryFragments
130
+ });
131
+ vi.spyOn(AttendancePresenter, 'getInstance').mockReturnValue({
132
+ getFragments: vi.fn(() => attendanceFragments),
133
+ generatePaths: vi.fn(() => attendanceFragments),
134
+ fragments: attendanceFragments
135
+ });
136
+ sitemapDependenciesHelper.setRankedOrganisationCount(enoughRankedOrganisations);
137
+ });
138
+ it('Should return path when all conditions are met', async () => {
139
+ const countryId = '30'; // UK
140
+ const countryIso = 'UK';
141
+ const countryPath = 'country-path';
142
+ const attendanceId = 'online';
143
+ const attendancePath = 'attendance-path';
144
+ countryFragments = [
145
+ {
146
+ id: countryId,
147
+ iso: countryIso,
148
+ path: countryPath
149
+ }
150
+ ];
151
+ attendanceFragments = [
152
+ {
153
+ id: attendanceId,
154
+ path: attendancePath
155
+ }
156
+ ];
157
+ const result = await rankedCountryAttendancePolicy.generateSitemapUrls();
158
+ expect(result).toEqual([`${pathPrefix}${attendancePath}/${countryPath}`]);
159
+ });
160
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
161
+ const countryId = '30'; // UK
162
+ const countryIso = 'UK';
163
+ const countryPath = 'country-path';
164
+ const attendanceId = 'online';
165
+ const attendancePath = 'attendance-path';
166
+ countryFragments = [
167
+ {
168
+ id: countryId,
169
+ iso: countryIso,
170
+ path: countryPath
171
+ }
172
+ ];
173
+ attendanceFragments = [
174
+ {
175
+ id: attendanceId,
176
+ path: attendancePath
177
+ }
178
+ ];
179
+ sitemapDependenciesHelper.setPortalType(portalType);
180
+ const result = await rankedCountryAttendancePolicy.generateSitemapUrls();
181
+ expect(result).toEqual([]);
182
+ });
183
+ it('Should not return path when there is no ranked organisation', async () => {
184
+ const countryId = '30'; // UK
185
+ const countryIso = 'UK';
186
+ const countryPath = 'country-path';
187
+ const attendanceId = 'online';
188
+ const attendancePath = 'attendance-path';
189
+ countryFragments = [
190
+ {
191
+ id: countryId,
192
+ iso: countryIso,
193
+ path: countryPath
194
+ }
195
+ ];
196
+ attendanceFragments = [
197
+ {
198
+ id: attendanceId,
199
+ path: attendancePath
200
+ }
201
+ ];
202
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
203
+ const result = await rankedCountryAttendancePolicy.generateSitemapUrls();
204
+ expect(result).toEqual([]);
205
+ });
206
+ it('Should not return path when attendance is not online', async () => {
207
+ const countryId = '30'; // UK
208
+ const countryIso = 'UK';
209
+ const countryPath = 'country-path';
210
+ const attendanceId = 'not-online';
211
+ const attendancePath = 'attendance-path';
212
+ countryFragments = [
213
+ {
214
+ id: countryId,
215
+ iso: countryIso,
216
+ path: countryPath
217
+ }
218
+ ];
219
+ attendanceFragments = [
220
+ {
221
+ id: attendanceId,
222
+ path: attendancePath
223
+ }
224
+ ];
225
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
226
+ const result = await rankedCountryAttendancePolicy.generateSitemapUrls();
227
+ expect(result).toEqual([]);
228
+ });
229
+ });
230
+ });