@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,197 @@
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 { RankedCountryDiscipline } from '@/organisations/policies';
7
+ import { PortalType } from '@studyportals/domain-client';
8
+ import { DisciplinePresenter } from '@/presenters/DisciplinePresenter';
9
+ import { CountryPresenter } from '@/presenters/CountryPresenter';
10
+ describe('Policy:RankedCountryDiscipline', () => {
11
+ describe('shouldIndex', () => {
12
+ let searchDependenciesHelper;
13
+ let rankedCountryDisciplinePolicy;
14
+ beforeEach(() => {
15
+ searchDependenciesHelper = new SearchDependencies();
16
+ rankedCountryDisciplinePolicy = new RankedCountryDiscipline(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 disciplineId = '54'; // Agriculture & Forestry
23
+ searchDependenciesHelper.setFilterKeyValues(new Map([
24
+ [FilterKey.COUNTRY, [countryId]],
25
+ [FilterKey.DISCIPLINES, [disciplineId]]
26
+ ]));
27
+ const result = await rankedCountryDisciplinePolicy.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 disciplineId = '54'; // Agriculture & Forestry
33
+ searchDependenciesHelper.setFilterKeyValues(new Map([
34
+ [FilterKey.COUNTRY, [countryId]],
35
+ [FilterKey.DISCIPLINES, [disciplineId]]
36
+ ]));
37
+ searchDependenciesHelper.setPortalType(portalType);
38
+ const result = await rankedCountryDisciplinePolicy.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 rankedCountryDisciplinePolicy.shouldIndex();
44
+ expect(result).toBe(false);
45
+ });
46
+ it('Should return false when multiple countries are selected', async () => {
47
+ const disciplineId = '54'; // Agriculture & Forestry
48
+ const firstCountryId = '30'; // UK
49
+ const secondCountryId = '21'; // PT
50
+ searchDependenciesHelper.setFilterKeyValues(new Map([
51
+ [FilterKey.DISCIPLINES, [disciplineId]],
52
+ [FilterKey.COUNTRY, [firstCountryId, secondCountryId]]
53
+ ]));
54
+ const result = await rankedCountryDisciplinePolicy.shouldIndex();
55
+ expect(result).toBe(false);
56
+ });
57
+ it('Should return false when multiple disciplines are selected', async () => {
58
+ const countryId = '30'; // UK
59
+ const firstDisciplineId = '54'; // Agreiculture & Forestry
60
+ const secondDisciplineId = '12'; // Applied Sciences & Professions
61
+ searchDependenciesHelper.setFilterKeyValues(new Map([
62
+ [FilterKey.COUNTRY, [countryId]],
63
+ [FilterKey.DISCIPLINES, [firstDisciplineId, secondDisciplineId]]
64
+ ]));
65
+ const result = await rankedCountryDisciplinePolicy.shouldIndex();
66
+ expect(result).toBe(false);
67
+ });
68
+ it('Should return false when no countries are selected', async () => {
69
+ const disciplineId = '54'; // Agreiculture & Forestry
70
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DISCIPLINES, [disciplineId]]]));
71
+ const result = await rankedCountryDisciplinePolicy.shouldIndex();
72
+ expect(result).toBe(false);
73
+ });
74
+ it('Should return false when no disciplines are selected', async () => {
75
+ const countryId = '30'; // UK
76
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
77
+ const result = await rankedCountryDisciplinePolicy.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 rankedCountryDisciplinePolicy.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 disciplineId = '12'; // Applied Sciences & Professions
96
+ searchDependenciesHelper.setRankedResultsCount(rankedResultsCount);
97
+ searchDependenciesHelper.setFilterKeyValues(new Map([
98
+ [FilterKey.COUNTRY, [countryId]],
99
+ [FilterKey.DISCIPLINES, [disciplineId]]
100
+ ]));
101
+ const result = await rankedCountryDisciplinePolicy.shouldIndex();
102
+ expect(result).toBe(false);
103
+ });
104
+ });
105
+ describe('generateSitemapUrls', () => {
106
+ const pathPrefix = 'rankings/';
107
+ const enoughRankedOrganisations = 10;
108
+ const noRankedOrganisations = 0;
109
+ let sitemapDependenciesHelper;
110
+ let rankedCountryDisciplinePolicy;
111
+ let countryFragments;
112
+ let disciplineFragments;
113
+ beforeEach(() => {
114
+ sitemapDependenciesHelper = new SitemapDependencies();
115
+ rankedCountryDisciplinePolicy = new RankedCountryDiscipline(sitemapDependenciesHelper.dependencies);
116
+ vi.spyOn(CountryPresenter, 'getInstance').mockReturnValue({
117
+ getFragments: vi.fn(() => countryFragments),
118
+ generatePaths: vi.fn(() => countryFragments),
119
+ fragments: countryFragments
120
+ });
121
+ vi.spyOn(DisciplinePresenter, 'getInstance').mockReturnValue({
122
+ getFragments: vi.fn(() => disciplineFragments),
123
+ generatePaths: vi.fn(() => disciplineFragments),
124
+ fragments: disciplineFragments
125
+ });
126
+ sitemapDependenciesHelper.setRankedOrganisationCount(enoughRankedOrganisations);
127
+ });
128
+ it('Should return path when all conditions are met', async () => {
129
+ const countryId = '30'; // UK
130
+ const countryIso = 'UK';
131
+ const countryPath = 'country-path';
132
+ const disciplineId = '54'; // Agriculture & Forestry
133
+ const disciplinePath = 'discipline-path';
134
+ countryFragments = [
135
+ {
136
+ id: countryId,
137
+ iso: countryIso,
138
+ path: countryPath
139
+ }
140
+ ];
141
+ disciplineFragments = [
142
+ {
143
+ id: disciplineId,
144
+ path: disciplinePath
145
+ }
146
+ ];
147
+ const result = await rankedCountryDisciplinePolicy.generateSitemapUrls();
148
+ expect(result).toEqual([`${pathPrefix}${countryPath}/${disciplinePath}`]);
149
+ });
150
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
151
+ const countryId = '30'; // UK
152
+ const countryIso = 'UK';
153
+ const countryPath = 'country-path';
154
+ const disciplineId = '54'; // Agriculture & Forestry
155
+ const disciplinePath = 'discipline-path';
156
+ countryFragments = [
157
+ {
158
+ id: countryId,
159
+ iso: countryIso,
160
+ path: countryPath
161
+ }
162
+ ];
163
+ disciplineFragments = [
164
+ {
165
+ id: disciplineId,
166
+ path: disciplinePath
167
+ }
168
+ ];
169
+ sitemapDependenciesHelper.setPortalType(portalType);
170
+ const result = await rankedCountryDisciplinePolicy.generateSitemapUrls();
171
+ expect(result).toEqual([]);
172
+ });
173
+ it('Should not return path when there is no ranked organisation', async () => {
174
+ const countryId = '30'; // UK
175
+ const countryIso = 'UK';
176
+ const countryPath = 'country-path';
177
+ const disciplineId = '54'; // Agriculture & Forestry
178
+ const disciplinePath = 'discipline-path';
179
+ countryFragments = [
180
+ {
181
+ id: countryId,
182
+ iso: countryIso,
183
+ path: countryPath
184
+ }
185
+ ];
186
+ disciplineFragments = [
187
+ {
188
+ id: disciplineId,
189
+ path: disciplinePath
190
+ }
191
+ ];
192
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
193
+ const result = await rankedCountryDisciplinePolicy.generateSitemapUrls();
194
+ expect(result).toEqual([]);
195
+ });
196
+ });
197
+ });
@@ -0,0 +1,124 @@
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 { RankedDiscipline } from '@/organisations/policies';
7
+ import { PortalType } from '@studyportals/domain-client';
8
+ import { DisciplinePresenter } from '@/presenters/DisciplinePresenter';
9
+ describe('Policy:RankedDiscipline', () => {
10
+ describe('shouldIndex', () => {
11
+ let searchDependenciesHelper;
12
+ let rankedDisciplinePolicy;
13
+ beforeEach(() => {
14
+ searchDependenciesHelper = new SearchDependencies();
15
+ rankedDisciplinePolicy = new RankedDiscipline(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 disciplineId = '54'; // Agriculture & Forestry
21
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DISCIPLINES, [disciplineId]]]));
22
+ const result = await rankedDisciplinePolicy.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 disciplineId = '54'; // Agriculture & Forestry
27
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DISCIPLINES, [disciplineId]]]));
28
+ searchDependenciesHelper.setPortalType(portalType);
29
+ const result = await rankedDisciplinePolicy.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 rankedDisciplinePolicy.shouldIndex();
35
+ expect(result).toBe(false);
36
+ });
37
+ it('Should return false when multiple disciplines are selected', async () => {
38
+ const firstDisciplineId = '54'; // Agriculture & Forestry
39
+ const secondDisciplineId = '12'; // Applied Sciences & Professions
40
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DISCIPLINES, [firstDisciplineId, secondDisciplineId]]]));
41
+ const result = await rankedDisciplinePolicy.shouldIndex();
42
+ expect(result).toBe(false);
43
+ });
44
+ it('Should return false when no disciplines are selected', async () => {
45
+ searchDependenciesHelper.setFilterKeyValues(new Map([]));
46
+ const result = await rankedDisciplinePolicy.shouldIndex();
47
+ expect(result).toBe(false);
48
+ });
49
+ it('Should return false when other filters are selected', async () => {
50
+ const disciplineId = '54'; // Agriculture & Forestry
51
+ const countryId = '30'; // UK
52
+ searchDependenciesHelper.setFilterKeyValues(new Map([
53
+ [FilterKey.COUNTRY, [countryId]],
54
+ [FilterKey.DISCIPLINES, [disciplineId]]
55
+ ]));
56
+ const result = await rankedDisciplinePolicy.shouldIndex();
57
+ expect(result).toBe(false);
58
+ });
59
+ it('Should return false when there are less then 2 ranked results', async () => {
60
+ const rankedResultsCount = 1;
61
+ const disciplineId = '54'; // Agriculture & Forestry
62
+ searchDependenciesHelper.setRankedResultsCount(rankedResultsCount);
63
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.DISCIPLINES, [disciplineId]]]));
64
+ const result = await rankedDisciplinePolicy.shouldIndex();
65
+ expect(result).toBe(false);
66
+ });
67
+ });
68
+ describe('generateSitemapUrls', () => {
69
+ const pathPrefix = 'rankings/';
70
+ const enoughRankedOrganisations = 10;
71
+ const noRankedOrganisations = 0;
72
+ let sitemapDependenciesHelper;
73
+ let rankedDisciplinePolicy;
74
+ let disciplineFragments;
75
+ beforeEach(() => {
76
+ sitemapDependenciesHelper = new SitemapDependencies();
77
+ rankedDisciplinePolicy = new RankedDiscipline(sitemapDependenciesHelper.dependencies);
78
+ vi.spyOn(DisciplinePresenter, 'getInstance').mockReturnValue({
79
+ getFragments: vi.fn(() => disciplineFragments),
80
+ generatePaths: vi.fn(() => disciplineFragments),
81
+ fragments: disciplineFragments
82
+ });
83
+ sitemapDependenciesHelper.setRankedOrganisationCount(enoughRankedOrganisations);
84
+ });
85
+ it('Should return path when all conditions are met', async () => {
86
+ const disciplineId = '54'; // Agriculture & Forestry
87
+ const disciplinePath = 'discipline-path';
88
+ disciplineFragments = [
89
+ {
90
+ id: disciplineId,
91
+ path: disciplinePath
92
+ }
93
+ ];
94
+ const result = await rankedDisciplinePolicy.generateSitemapUrls();
95
+ expect(result).toEqual([`${pathPrefix}${disciplinePath}`]);
96
+ });
97
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
98
+ const disciplineId = '54'; // Agriculture & Forestry
99
+ const disciplinePath = 'discipline-path';
100
+ disciplineFragments = [
101
+ {
102
+ id: disciplineId,
103
+ path: disciplinePath
104
+ }
105
+ ];
106
+ sitemapDependenciesHelper.setPortalType(portalType);
107
+ const result = await rankedDisciplinePolicy.generateSitemapUrls();
108
+ expect(result).toEqual([]);
109
+ });
110
+ it('Should not return path when there is no ranked organisation', async () => {
111
+ const disciplineId = '54'; // Agriculture & Forestry
112
+ const disciplinePath = 'discipline-path';
113
+ disciplineFragments = [
114
+ {
115
+ id: disciplineId,
116
+ path: disciplinePath
117
+ }
118
+ ];
119
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
120
+ const result = await rankedDisciplinePolicy.generateSitemapUrls();
121
+ expect(result).toEqual([]);
122
+ });
123
+ });
124
+ });
@@ -0,0 +1,75 @@
1
+ import { describe, it, expect, beforeEach } 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 { RankedUnfiltered } from '@/organisations/policies';
7
+ import { PortalType } from '@studyportals/domain-client';
8
+ describe('Policy:RankedUnfiltered', () => {
9
+ describe('shouldIndex', () => {
10
+ let searchDependenciesHelper;
11
+ let rankedUnfilteredPolicy;
12
+ beforeEach(() => {
13
+ searchDependenciesHelper = new SearchDependencies();
14
+ rankedUnfilteredPolicy = new RankedUnfiltered(searchDependenciesHelper.dependencies);
15
+ searchDependenciesHelper.setSortingState(SortingOptions.UNIVERSITY_META_RANKING);
16
+ searchDependenciesHelper.setRankedResultsCount(10);
17
+ });
18
+ it('Should return true when all conditions are met', async () => {
19
+ searchDependenciesHelper.setFilterKeyValues(new Map([]));
20
+ const result = await rankedUnfilteredPolicy.shouldIndex();
21
+ expect(result).toBe(true);
22
+ });
23
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should return false when the selected portal type is %s', async (portalType) => {
24
+ searchDependenciesHelper.setFilterKeyValues(new Map([]));
25
+ searchDependenciesHelper.setPortalType(portalType);
26
+ const result = await rankedUnfilteredPolicy.shouldIndex();
27
+ expect(result).toBe(false);
28
+ });
29
+ it('Should return false when area when Our Picks sorting is selected', async () => {
30
+ searchDependenciesHelper.setSortingState(SortingOptions.OUR_PICKS);
31
+ const result = await rankedUnfilteredPolicy.shouldIndex();
32
+ expect(result).toBe(false);
33
+ });
34
+ it('Should return false when any filter is selected', async () => {
35
+ const countryId = '30'; // UK
36
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
37
+ const result = await rankedUnfilteredPolicy.shouldIndex();
38
+ expect(result).toBe(false);
39
+ });
40
+ it('Should return false when there are less then 2 ranked results', async () => {
41
+ const rankedResultsCount = 1;
42
+ searchDependenciesHelper.setRankedResultsCount(rankedResultsCount);
43
+ searchDependenciesHelper.setFilterKeyValues(new Map([]));
44
+ const result = await rankedUnfilteredPolicy.shouldIndex();
45
+ expect(result).toBe(false);
46
+ });
47
+ });
48
+ describe('generateSitemapUrls', () => {
49
+ const pathPrefix = 'rankings/';
50
+ const enoughRankedOrganisations = 10;
51
+ const noRankedOrganisations = 0;
52
+ let sitemapDependenciesHelper;
53
+ let rankedUnfilteredPolicy;
54
+ beforeEach(() => {
55
+ sitemapDependenciesHelper = new SitemapDependencies();
56
+ rankedUnfilteredPolicy = new RankedUnfiltered(sitemapDependenciesHelper.dependencies);
57
+ sitemapDependenciesHelper.setRankedOrganisationCount(enoughRankedOrganisations);
58
+ });
59
+ it('Should return path when all conditions are met', async () => {
60
+ const result = await rankedUnfilteredPolicy.generateSitemapUrls();
61
+ const expectedPath = "rankings";
62
+ expect(result).toEqual([expectedPath]);
63
+ });
64
+ it.each([[PortalType.BACHELOR], [PortalType.PHD], [PortalType.SHORT]])('Should not return path when portal type is %s', async (portalType) => {
65
+ sitemapDependenciesHelper.setPortalType(portalType);
66
+ const result = await rankedUnfilteredPolicy.generateSitemapUrls();
67
+ expect(result).toEqual([]);
68
+ });
69
+ it('Should not return path when there is no ranked organisation', async () => {
70
+ sitemapDependenciesHelper.setRankedOrganisationCount(noRankedOrganisations);
71
+ const result = await rankedUnfilteredPolicy.generateSitemapUrls();
72
+ expect(result).toEqual([]);
73
+ });
74
+ });
75
+ });
@@ -0,0 +1,59 @@
1
+ import { beforeEach, describe, expect, it } from 'vitest';
2
+ import { SearchDependencies } from '../utils/SearchDependencies.util.mjs';
3
+ import { ContinentIsEuropeRule } from '@/organisations/rules/ContinentIsEuropeRule';
4
+ import { FilterKey } from '@studyportals/search-filters/server-side';
5
+ describe('Rule:ContinentIsEurope', () => {
6
+ describe('forSearch', () => {
7
+ let searchDependenciesHelper;
8
+ let rule;
9
+ beforeEach(() => {
10
+ searchDependenciesHelper = new SearchDependencies();
11
+ rule = new ContinentIsEuropeRule();
12
+ searchDependenciesHelper.setFilterKeyValues(new Map([]));
13
+ });
14
+ it('Returns true if selected continent is Europe', async () => {
15
+ const continentId = '1'; // Europe
16
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.CONTINENT, [continentId]]]));
17
+ const result = await rule.forSearch(searchDependenciesHelper.dependencies);
18
+ expect(result).toBe(true);
19
+ });
20
+ it('Returns false if selected continent is not Europe', async () => {
21
+ const continentId = '9'; // Asia
22
+ searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.CONTINENT, [continentId]]]));
23
+ const result = await rule.forSearch(searchDependenciesHelper.dependencies);
24
+ expect(result).toBe(false);
25
+ });
26
+ });
27
+ describe('forSitemapGenerator', () => {
28
+ let rule;
29
+ beforeEach(() => {
30
+ rule = new ContinentIsEuropeRule();
31
+ });
32
+ it('Returns true if selected continent is Europe', async () => {
33
+ const continentId = '1'; // Europe
34
+ const filterKeyValues = new Map([[FilterKey.CONTINENT, [continentId]]]);
35
+ const result = await rule.forSitemapGenerator(filterKeyValues);
36
+ expect(result).toBe(true);
37
+ });
38
+ it('Returns false if selected continent is not Europe', async () => {
39
+ const continentId = '9'; // Asia
40
+ const filterKeyValues = new Map([[FilterKey.CONTINENT, [continentId]]]);
41
+ const result = await rule.forSitemapGenerator(filterKeyValues);
42
+ expect(result).toBe(false);
43
+ });
44
+ });
45
+ describe('forDocumentation', () => {
46
+ let rule;
47
+ beforeEach(() => {
48
+ rule = new ContinentIsEuropeRule();
49
+ });
50
+ it('Returns description', () => {
51
+ const result = rule.getName();
52
+ expect(typeof result).toBe('string');
53
+ });
54
+ it('Returns name', () => {
55
+ const result = rule.getDescription();
56
+ expect(typeof result).toBe('string');
57
+ });
58
+ });
59
+ });
@@ -0,0 +1,77 @@
1
+ import { beforeEach, describe, expect, it } from 'vitest';
2
+ import { SearchDependencies } from '../utils/SearchDependencies.util.mjs';
3
+ import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
4
+ import { MinimumAmountOfRankedResultsRule } from '@/organisations/rules/MinimumAmountOfRankedResultsRule';
5
+ import { DependencyMissingError } from '@/errors/DependencyMissingError';
6
+ describe('Rule:MinimumAmountOfRankedResultsRule', () => {
7
+ describe('forSearch', () => {
8
+ let searchDependenciesHelper;
9
+ let rule;
10
+ beforeEach(() => {
11
+ searchDependenciesHelper = new SearchDependencies();
12
+ rule = new MinimumAmountOfRankedResultsRule();
13
+ searchDependenciesHelper.setFilterKeyValues(new Map([]));
14
+ });
15
+ it('Returns true if ranked result count is at least 7', async () => {
16
+ const rankedResultsCount = 7;
17
+ searchDependenciesHelper.setRankedResultsCount(rankedResultsCount);
18
+ const result = await rule.forSearch(searchDependenciesHelper.dependencies);
19
+ expect(result).toBe(true);
20
+ });
21
+ it('Returns false if result count is less than 7', async () => {
22
+ const rankedResultsCount = 4;
23
+ searchDependenciesHelper.setRankedResultsCount(rankedResultsCount);
24
+ const result = await rule.forSearch(searchDependenciesHelper.dependencies);
25
+ expect(result).toBe(false);
26
+ });
27
+ });
28
+ describe('forSitemapGenerator', () => {
29
+ let sitemapDependenciesHelper;
30
+ let rule;
31
+ const filterKeyValues = new Map([]);
32
+ beforeEach(() => {
33
+ sitemapDependenciesHelper = new SitemapDependencies();
34
+ rule = new MinimumAmountOfRankedResultsRule(sitemapDependenciesHelper.dependencies.rankingApiClient);
35
+ });
36
+ it('Returns true if ranked organisation count is at least 7', async () => {
37
+ const rankedOrganisationCount = 7;
38
+ sitemapDependenciesHelper.setRankedOrganisationCount(rankedOrganisationCount);
39
+ const result = await rule.forSitemapGenerator(filterKeyValues);
40
+ expect(result).toBe(true);
41
+ });
42
+ it('Returns false if ranked organisation count is less than 7', async () => {
43
+ const rankedOrganisationCount = 3;
44
+ sitemapDependenciesHelper.setRankedOrganisationCount(rankedOrganisationCount);
45
+ const result = await rule.forSitemapGenerator(filterKeyValues);
46
+ expect(result).toBe(false);
47
+ });
48
+ it('Throws error if RankingApiClient is not provided', async () => {
49
+ rule = new MinimumAmountOfRankedResultsRule();
50
+ let result = false;
51
+ let caughtError;
52
+ try {
53
+ result = await rule.forSitemapGenerator(filterKeyValues);
54
+ }
55
+ catch (error) {
56
+ caughtError = error;
57
+ }
58
+ expect(result).toBe(false);
59
+ expect(caughtError).toBeInstanceOf(Error);
60
+ expect(caughtError).toBeInstanceOf(DependencyMissingError);
61
+ });
62
+ });
63
+ describe('forDocumentation', () => {
64
+ let rule;
65
+ beforeEach(() => {
66
+ rule = new MinimumAmountOfRankedResultsRule();
67
+ });
68
+ it('Returns description', () => {
69
+ const result = rule.getName();
70
+ expect(typeof result).toBe('string');
71
+ });
72
+ it('Returns name', () => {
73
+ const result = rule.getDescription();
74
+ expect(typeof result).toBe('string');
75
+ });
76
+ });
77
+ });
@@ -0,0 +1,77 @@
1
+ import { beforeEach, describe, expect, it } from 'vitest';
2
+ import { SearchDependencies } from '../utils/SearchDependencies.util.mjs';
3
+ import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
4
+ import { MinimumAmountOfResultsRule } from '@/organisations/rules/MinimumAmountOfResultsRule';
5
+ import { DependencyMissingError } from '@/errors/DependencyMissingError';
6
+ describe('Rule:MinimumAmountOfResultsRule', () => {
7
+ describe('forSearch', () => {
8
+ let searchDependenciesHelper;
9
+ let rule;
10
+ beforeEach(() => {
11
+ searchDependenciesHelper = new SearchDependencies();
12
+ rule = new MinimumAmountOfResultsRule();
13
+ searchDependenciesHelper.setFilterKeyValues(new Map([]));
14
+ });
15
+ it('Returns true if result count is at least 7', async () => {
16
+ const resultCount = 7;
17
+ searchDependenciesHelper.setNumberOfResults(resultCount);
18
+ const result = await rule.forSearch(searchDependenciesHelper.dependencies);
19
+ expect(result).toBe(true);
20
+ });
21
+ it('Returns false if result count is less than 7', async () => {
22
+ const resultCount = 4;
23
+ searchDependenciesHelper.setNumberOfResults(resultCount);
24
+ const result = await rule.forSearch(searchDependenciesHelper.dependencies);
25
+ expect(result).toBe(false);
26
+ });
27
+ });
28
+ describe('forSitemapGenerator', () => {
29
+ let sitemapDependenciesHelper;
30
+ let rule;
31
+ const filterKeyValues = new Map([]);
32
+ beforeEach(() => {
33
+ sitemapDependenciesHelper = new SitemapDependencies();
34
+ rule = new MinimumAmountOfResultsRule(sitemapDependenciesHelper.dependencies.searchApiClient);
35
+ });
36
+ it('Returns true if ranked organisation count is at least 7', async () => {
37
+ const organisationCount = 7;
38
+ sitemapDependenciesHelper.setOrganisationCount(organisationCount);
39
+ const result = await rule.forSitemapGenerator(filterKeyValues);
40
+ expect(result).toBe(true);
41
+ });
42
+ it('Returns false if ranked organisation count is less than 7', async () => {
43
+ const organisationCount = 3;
44
+ sitemapDependenciesHelper.setOrganisationCount(organisationCount);
45
+ const result = await rule.forSitemapGenerator(filterKeyValues);
46
+ expect(result).toBe(false);
47
+ });
48
+ it('Throws error if RankingApiClient is not provided', async () => {
49
+ rule = new MinimumAmountOfResultsRule();
50
+ let result = false;
51
+ let caughtError;
52
+ try {
53
+ result = await rule.forSitemapGenerator(filterKeyValues);
54
+ }
55
+ catch (error) {
56
+ caughtError = error;
57
+ }
58
+ expect(result).toBe(false);
59
+ expect(caughtError).toBeInstanceOf(Error);
60
+ expect(caughtError).toBeInstanceOf(DependencyMissingError);
61
+ });
62
+ });
63
+ describe('forDocumentation', () => {
64
+ let rule;
65
+ beforeEach(() => {
66
+ rule = new MinimumAmountOfResultsRule();
67
+ });
68
+ it('Returns description', () => {
69
+ const result = rule.getName();
70
+ expect(typeof result).toBe('string');
71
+ });
72
+ it('Returns name', () => {
73
+ const result = rule.getDescription();
74
+ expect(typeof result).toBe('string');
75
+ });
76
+ });
77
+ });