@studyportals/fawkes 8.7.1-0 → 8.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (508) 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 +1 -1
  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/DegreeTuitionFeeArea.d.ts +3 -3
  168. package/dist/src/programmes/policies/DegreeTuitionFeeArea.js +6 -6
  169. package/dist/src/programmes/policies/DegreeTuitionFeeAttendance.d.ts +2 -2
  170. package/dist/src/programmes/policies/DegreeTuitionFeeAttendance.js +7 -7
  171. package/dist/src/programmes/policies/DegreeTuitionFeeContinent.d.ts +2 -2
  172. package/dist/src/programmes/policies/DegreeTuitionFeeContinent.js +6 -6
  173. package/dist/src/programmes/policies/DegreeTuitionFeeFormat.d.ts +2 -2
  174. package/dist/src/programmes/policies/DegreeTuitionFeeFormat.js +6 -6
  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/rules/DegreeAttendanceDisciplineRule.d.ts +2 -2
  222. package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.d.ts +2 -2
  223. package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.d.ts +2 -2
  224. package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.d.ts +2 -2
  225. package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.d.ts +2 -2
  226. package/dist/src/programmes/rules/DegreeDisciplineRule.d.ts +2 -2
  227. package/dist/src/programmes/rules/IndexableDegreeRule.d.ts +2 -2
  228. package/dist/src/programmes/rules/IndexableDegreeRule.js +1 -1
  229. package/dist/src/programmes/rules/IndexableDurationRule.d.ts +2 -2
  230. package/dist/src/programmes/rules/IndexableDurationRule.js +1 -1
  231. package/dist/src/programmes/rules/IndexableEducationalFormRule.d.ts +2 -2
  232. package/dist/src/programmes/rules/IndexableEducationalFormRule.js +1 -1
  233. package/dist/src/programmes/rules/IndexablePageNumberRule.js +1 -1
  234. package/dist/src/programmes/rules/MbaOrMscDegreeRule.d.ts +2 -2
  235. package/dist/src/programmes/rules/MinimumAmountOfResultsRule.d.ts +3 -3
  236. package/dist/src/programmes/rules/MinimumAmountOfResultsRule.js +1 -1
  237. package/dist/src/programmes/rules/NotDistanceLearningPortalRule.js +1 -1
  238. package/dist/src/programmes/rules/OneYearOnlyRule.d.ts +2 -2
  239. package/dist/src/programmes/types/IProgrammeSearchApplicationState.d.ts +1 -1
  240. package/dist/src/programmes/types/IProgrammeSearchDependencies.d.ts +1 -1
  241. package/dist/src/programmes/types/IProgrammeSearchSitemapDependencies.d.ts +1 -1
  242. package/dist/src/programmes/types/IProgrammeSitemapDependencies.d.ts +2 -2
  243. package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.d.ts +1 -1
  244. package/dist/src/scholarships/SearchIndexabilityManager.d.ts +5 -5
  245. package/dist/src/scholarships/SearchIndexabilityManager.js +1 -1
  246. package/dist/src/scholarships/policies/Area.d.ts +3 -3
  247. package/dist/src/scholarships/policies/Area.js +4 -4
  248. package/dist/src/scholarships/policies/Country.d.ts +3 -3
  249. package/dist/src/scholarships/policies/Country.js +4 -4
  250. package/dist/src/scholarships/policies/Discipline.d.ts +4 -4
  251. package/dist/src/scholarships/policies/Discipline.js +5 -5
  252. package/dist/src/scholarships/policies/DisciplineCountry.d.ts +3 -3
  253. package/dist/src/scholarships/policies/DisciplineCountry.js +5 -5
  254. package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.d.ts +2 -2
  255. package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.js +2 -2
  256. package/dist/src/scholarships/policies/Unfiltered.d.ts +2 -2
  257. package/dist/src/scholarships/policies/Unfiltered.js +2 -2
  258. package/dist/src/scholarships/policies/UniversityCountry.d.ts +3 -3
  259. package/dist/src/scholarships/policies/UniversityCountry.js +4 -4
  260. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.d.ts +3 -3
  261. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.js +1 -1
  262. package/dist/src/scholarships/rules/SearchVolumeAreasRule.d.ts +3 -3
  263. package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.d.ts +3 -3
  264. package/dist/src/scholarships/rules/SearchVolumeCountriesRule.d.ts +3 -3
  265. package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.d.ts +3 -3
  266. package/dist/src/scholarships/types/IScholarshipSeoDependencies.d.ts +1 -1
  267. package/dist/src/scholarships/types/IScholarshipSitemapDependencies.d.ts +2 -2
  268. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +3 -3
  269. package/dist/src/sitemap-generator/IRankingApiClient.d.ts +1 -1
  270. package/dist/src/sitemap-generator/ISearchApiClient.d.ts +1 -1
  271. package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +3 -3
  272. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.d.ts +4 -4
  273. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.js +8 -8
  274. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.d.ts +3 -3
  275. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +13 -13
  276. package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.d.ts +3 -3
  277. package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.js +7 -7
  278. package/dist/src/structured-data/OrganisationStructuredDataFactory.d.ts +1 -1
  279. package/dist/src/structured-data/ProgrammeStructuredDataFactory.d.ts +1 -1
  280. package/package.json +1 -1
  281. package/dist/tests/common/rules/NoFiltersSelectedRule.test.d.mts +0 -1
  282. package/dist/tests/common/rules/NoFiltersSelectedRule.test.mjs +0 -40
  283. package/dist/tests/common/rules/OnlyFiltersSelectedRule.test.d.mts +0 -1
  284. package/dist/tests/common/rules/OnlyFiltersSelectedRule.test.mjs +0 -70
  285. package/dist/tests/common/rules/SingleValueSelectedForFilterRule.test.d.mts +0 -1
  286. package/dist/tests/common/rules/SingleValueSelectedForFilterRule.test.mjs +0 -54
  287. package/dist/tests/organisations/policies/our-picks/Area.test.d.mts +0 -1
  288. package/dist/tests/organisations/policies/our-picks/Area.test.mjs +0 -125
  289. package/dist/tests/organisations/policies/our-picks/AreaAttendance.test.d.mts +0 -1
  290. package/dist/tests/organisations/policies/our-picks/AreaAttendance.test.mjs +0 -238
  291. package/dist/tests/organisations/policies/our-picks/Attendance.test.d.mts +0 -1
  292. package/dist/tests/organisations/policies/our-picks/Attendance.test.mjs +0 -119
  293. package/dist/tests/organisations/policies/our-picks/Continent.test.d.mts +0 -1
  294. package/dist/tests/organisations/policies/our-picks/Continent.test.mjs +0 -105
  295. package/dist/tests/organisations/policies/our-picks/Country.test.d.mts +0 -1
  296. package/dist/tests/organisations/policies/our-picks/Country.test.mjs +0 -109
  297. package/dist/tests/organisations/policies/our-picks/CountryAreaCity.test.d.mts +0 -1
  298. package/dist/tests/organisations/policies/our-picks/CountryAreaCity.test.mjs +0 -152
  299. package/dist/tests/organisations/policies/our-picks/CountryAttendance.test.d.mts +0 -1
  300. package/dist/tests/organisations/policies/our-picks/CountryAttendance.test.mjs +0 -223
  301. package/dist/tests/organisations/policies/our-picks/CountryCity.test.d.mts +0 -1
  302. package/dist/tests/organisations/policies/our-picks/CountryCity.test.mjs +0 -109
  303. package/dist/tests/organisations/policies/our-picks/Unfiltered.test.d.mts +0 -1
  304. package/dist/tests/organisations/policies/our-picks/Unfiltered.test.mjs +0 -60
  305. package/dist/tests/organisations/policies/ranked/RankedArea.test.d.mts +0 -1
  306. package/dist/tests/organisations/policies/ranked/RankedArea.test.mjs +0 -149
  307. package/dist/tests/organisations/policies/ranked/RankedAreaDiscipline.test.d.mts +0 -1
  308. package/dist/tests/organisations/policies/ranked/RankedAreaDiscipline.test.mjs +0 -237
  309. package/dist/tests/organisations/policies/ranked/RankedAttendance.test.d.mts +0 -1
  310. package/dist/tests/organisations/policies/ranked/RankedAttendance.test.mjs +0 -139
  311. package/dist/tests/organisations/policies/ranked/RankedAttendanceDiscipline.test.d.mts +0 -1
  312. package/dist/tests/organisations/policies/ranked/RankedAttendanceDiscipline.test.mjs +0 -224
  313. package/dist/tests/organisations/policies/ranked/RankedContinent.test.d.mts +0 -1
  314. package/dist/tests/organisations/policies/ranked/RankedContinent.test.mjs +0 -125
  315. package/dist/tests/organisations/policies/ranked/RankedContinentAttendance.test.d.mts +0 -1
  316. package/dist/tests/organisations/policies/ranked/RankedContinentAttendance.test.mjs +0 -253
  317. package/dist/tests/organisations/policies/ranked/RankedCountry.test.d.mts +0 -1
  318. package/dist/tests/organisations/policies/ranked/RankedCountry.test.mjs +0 -131
  319. package/dist/tests/organisations/policies/ranked/RankedCountryAttendance.test.d.mts +0 -1
  320. package/dist/tests/organisations/policies/ranked/RankedCountryAttendance.test.mjs +0 -230
  321. package/dist/tests/organisations/policies/ranked/RankedCountryDiscipline.test.d.mts +0 -1
  322. package/dist/tests/organisations/policies/ranked/RankedCountryDiscipline.test.mjs +0 -197
  323. package/dist/tests/organisations/policies/ranked/RankedDiscipline.test.d.mts +0 -1
  324. package/dist/tests/organisations/policies/ranked/RankedDiscipline.test.mjs +0 -124
  325. package/dist/tests/organisations/policies/ranked/RankedUnfiltered.test.d.mts +0 -1
  326. package/dist/tests/organisations/policies/ranked/RankedUnfiltered.test.mjs +0 -75
  327. package/dist/tests/organisations/rules/ContinentIsEuropeRule.test.d.mts +0 -1
  328. package/dist/tests/organisations/rules/ContinentIsEuropeRule.test.mjs +0 -59
  329. package/dist/tests/organisations/rules/MinimumAmountOfRankedResultsRule.test.d.mts +0 -1
  330. package/dist/tests/organisations/rules/MinimumAmountOfRankedResultsRule.test.mjs +0 -77
  331. package/dist/tests/organisations/rules/MinimumAmountOfResultsRule.test.d.mts +0 -1
  332. package/dist/tests/organisations/rules/MinimumAmountOfResultsRule.test.mjs +0 -77
  333. package/dist/tests/organisations/rules/OnlineAttendanceRule.test.d.mts +0 -1
  334. package/dist/tests/organisations/rules/OnlineAttendanceRule.test.mjs +0 -59
  335. package/dist/tests/organisations/rules/SearchVolumeAreasAttendanceRule.test.d.mts +0 -1
  336. package/dist/tests/organisations/rules/SearchVolumeAreasAttendanceRule.test.mjs +0 -59
  337. package/dist/tests/organisations/rules/SearchVolumeAreasDisciplineRule.test.d.mts +0 -1
  338. package/dist/tests/organisations/rules/SearchVolumeAreasDisciplineRule.test.mjs +0 -59
  339. package/dist/tests/organisations/rules/SearchVolumeCountriesAttendanceRule.test.d.mts +0 -1
  340. package/dist/tests/organisations/rules/SearchVolumeCountriesAttendanceRule.test.mjs +0 -59
  341. package/dist/tests/organisations/utils/SearchDependencies.util.d.mts +0 -20
  342. package/dist/tests/organisations/utils/SearchDependencies.util.mjs +0 -88
  343. package/dist/tests/organisations/utils/SitemapDependencies.util.d.mts +0 -18
  344. package/dist/tests/organisations/utils/SitemapDependencies.util.mjs +0 -54
  345. package/dist/tests/presenters/AreaPresenter.test.d.mts +0 -1
  346. package/dist/tests/presenters/AreaPresenter.test.mjs +0 -46
  347. package/dist/tests/presenters/AttendancePresenter.test.d.mts +0 -1
  348. package/dist/tests/presenters/AttendancePresenter.test.mjs +0 -41
  349. package/dist/tests/presenters/ContinentPresenter.test.d.mts +0 -1
  350. package/dist/tests/presenters/ContinentPresenter.test.mjs +0 -44
  351. package/dist/tests/presenters/CountryPresenter.test.d.mts +0 -1
  352. package/dist/tests/presenters/CountryPresenter.test.mjs +0 -50
  353. package/dist/tests/presenters/DegreePresenter.test.d.mts +0 -1
  354. package/dist/tests/presenters/DegreePresenter.test.mjs +0 -51
  355. package/dist/tests/presenters/DisciplinePresenter.test.d.mts +0 -1
  356. package/dist/tests/presenters/DisciplinePresenter.test.mjs +0 -40
  357. package/dist/tests/presenters/DurationPresenter.test.d.mts +0 -1
  358. package/dist/tests/presenters/DurationPresenter.test.mjs +0 -64
  359. package/dist/tests/presenters/EducationalFormPresenter.test.d.mts +0 -1
  360. package/dist/tests/presenters/EducationalFormPresenter.test.mjs +0 -60
  361. package/dist/tests/presenters/FormatPresenter.test.d.mts +0 -1
  362. package/dist/tests/presenters/FormatPresenter.test.mjs +0 -43
  363. package/dist/tests/presenters/SpecialProgrammesPresenter.test.d.mts +0 -1
  364. package/dist/tests/presenters/SpecialProgrammesPresenter.test.mjs +0 -66
  365. package/dist/tests/presenters/TuitionFeePresenter.test.d.mts +0 -1
  366. package/dist/tests/presenters/TuitionFeePresenter.test.mjs +0 -52
  367. package/dist/tests/programmes/policies/Area.test.d.mts +0 -1
  368. package/dist/tests/programmes/policies/Area.test.mjs +0 -153
  369. package/dist/tests/programmes/policies/Attendance.test.d.mts +0 -1
  370. package/dist/tests/programmes/policies/Attendance.test.mjs +0 -173
  371. package/dist/tests/programmes/policies/AttendanceDegree.test.d.mts +0 -1
  372. package/dist/tests/programmes/policies/AttendanceDegree.test.mjs +0 -291
  373. package/dist/tests/programmes/policies/Continent.test.d.mts +0 -1
  374. package/dist/tests/programmes/policies/Continent.test.mjs +0 -169
  375. package/dist/tests/programmes/policies/Country.test.d.mts +0 -1
  376. package/dist/tests/programmes/policies/Country.test.mjs +0 -164
  377. package/dist/tests/programmes/policies/CountryAttendance.test.d.mts +0 -1
  378. package/dist/tests/programmes/policies/CountryAttendance.test.mjs +0 -251
  379. package/dist/tests/programmes/policies/CountryAttendanceDegree.test.d.mts +0 -1
  380. package/dist/tests/programmes/policies/CountryAttendanceDegree.test.mjs +0 -337
  381. package/dist/tests/programmes/policies/CountryDegree.test.d.mts +0 -1
  382. package/dist/tests/programmes/policies/CountryDegree.test.mjs +0 -262
  383. package/dist/tests/programmes/policies/CountryDuration.test.d.mts +0 -1
  384. package/dist/tests/programmes/policies/CountryDuration.test.mjs +0 -234
  385. package/dist/tests/programmes/policies/CountryDurationDegree.test.d.mts +0 -1
  386. package/dist/tests/programmes/policies/CountryDurationDegree.test.mjs +0 -304
  387. package/dist/tests/programmes/policies/CountryEducationalForm.test.d.mts +0 -1
  388. package/dist/tests/programmes/policies/CountryEducationalForm.test.mjs +0 -260
  389. package/dist/tests/programmes/policies/CountryFormat.test.d.mts +0 -1
  390. package/dist/tests/programmes/policies/CountryFormat.test.mjs +0 -253
  391. package/dist/tests/programmes/policies/DegreeAttendanceDiscipline.test.d.mts +0 -1
  392. package/dist/tests/programmes/policies/DegreeAttendanceDiscipline.test.mjs +0 -179
  393. package/dist/tests/programmes/policies/DegreeCountryAttendance.test.d.mts +0 -1
  394. package/dist/tests/programmes/policies/DegreeCountryAttendance.test.mjs +0 -267
  395. package/dist/tests/programmes/policies/DegreeCountryTuitionFee.test.d.mts +0 -1
  396. package/dist/tests/programmes/policies/DegreeCountryTuitionFee.test.mjs +0 -217
  397. package/dist/tests/programmes/policies/DegreeFormat.test.d.mts +0 -1
  398. package/dist/tests/programmes/policies/DegreeFormat.test.mjs +0 -221
  399. package/dist/tests/programmes/policies/Discipline.test.d.mts +0 -1
  400. package/dist/tests/programmes/policies/Discipline.test.mjs +0 -159
  401. package/dist/tests/programmes/policies/DisciplineAttendance.test.d.mts +0 -1
  402. package/dist/tests/programmes/policies/DisciplineAttendance.test.mjs +0 -292
  403. package/dist/tests/programmes/policies/DisciplineContinent.test.d.mts +0 -1
  404. package/dist/tests/programmes/policies/DisciplineContinent.test.mjs +0 -253
  405. package/dist/tests/programmes/policies/DisciplineCountry.test.d.mts +0 -1
  406. package/dist/tests/programmes/policies/DisciplineCountry.test.mjs +0 -244
  407. package/dist/tests/programmes/policies/DisciplineCountryEducationalForm.test.d.mts +0 -1
  408. package/dist/tests/programmes/policies/DisciplineCountryEducationalForm.test.mjs +0 -345
  409. package/dist/tests/programmes/policies/DisciplineDegree.test.d.mts +0 -1
  410. package/dist/tests/programmes/policies/DisciplineDegree.test.mjs +0 -273
  411. package/dist/tests/programmes/policies/DisciplineDuration.test.d.mts +0 -1
  412. package/dist/tests/programmes/policies/DisciplineDuration.test.mjs +0 -278
  413. package/dist/tests/programmes/policies/DisciplineEducationalForm.test.d.mts +0 -1
  414. package/dist/tests/programmes/policies/DisciplineEducationalForm.test.mjs +0 -302
  415. package/dist/tests/programmes/policies/DisciplineFormat.test.d.mts +0 -1
  416. package/dist/tests/programmes/policies/DisciplineFormat.test.mjs +0 -266
  417. package/dist/tests/programmes/policies/Duration.test.d.mts +0 -1
  418. package/dist/tests/programmes/policies/Duration.test.mjs +0 -179
  419. package/dist/tests/programmes/policies/Format.test.d.mts +0 -1
  420. package/dist/tests/programmes/policies/Format.test.mjs +0 -117
  421. package/dist/tests/programmes/policies/NewRulesValidation.test.d.mts +0 -1
  422. package/dist/tests/programmes/policies/NewRulesValidation.test.mjs +0 -320
  423. package/dist/tests/programmes/policies/SpecialProgrammes.test.d.mts +0 -1
  424. package/dist/tests/programmes/policies/SpecialProgrammes.test.mjs +0 -171
  425. package/dist/tests/programmes/policies/TuitionFeeAttendanceDiscipline.test.d.mts +0 -1
  426. package/dist/tests/programmes/policies/TuitionFeeAttendanceDiscipline.test.mjs +0 -360
  427. package/dist/tests/programmes/policies/TuitionFeeContinent.test.d.mts +0 -1
  428. package/dist/tests/programmes/policies/TuitionFeeContinent.test.mjs +0 -293
  429. package/dist/tests/programmes/policies/TuitionFeeCountry.test.d.mts +0 -1
  430. package/dist/tests/programmes/policies/TuitionFeeCountry.test.mjs +0 -266
  431. package/dist/tests/programmes/policies/TuitionFeeDiscipline.test.d.mts +0 -1
  432. package/dist/tests/programmes/policies/TuitionFeeDiscipline.test.mjs +0 -267
  433. package/dist/tests/programmes/policies/Unfiltered.test.d.mts +0 -1
  434. package/dist/tests/programmes/policies/Unfiltered.test.mjs +0 -90
  435. package/dist/tests/programmes/rules/AffordableTuitionFeeRule.test.d.mts +0 -1
  436. package/dist/tests/programmes/rules/AffordableTuitionFeeRule.test.mjs +0 -27
  437. package/dist/tests/programmes/rules/DegreeCountrySpecificRule.test.d.mts +0 -1
  438. package/dist/tests/programmes/rules/DegreeCountrySpecificRule.test.mjs +0 -121
  439. package/dist/tests/programmes/rules/DegreeDisciplineRule.test.d.mts +0 -1
  440. package/dist/tests/programmes/rules/DegreeDisciplineRule.test.mjs +0 -169
  441. package/dist/tests/programmes/rules/IndexableDegreeRule.test.d.mts +0 -1
  442. package/dist/tests/programmes/rules/IndexableDegreeRule.test.mjs +0 -101
  443. package/dist/tests/programmes/rules/IndexableDurationRule.test..d.mts +0 -1
  444. package/dist/tests/programmes/rules/IndexableDurationRule.test..mjs +0 -25
  445. package/dist/tests/programmes/rules/IndexableEducationalFormRule.test.d.mts +0 -1
  446. package/dist/tests/programmes/rules/IndexableEducationalFormRule.test.mjs +0 -27
  447. package/dist/tests/programmes/rules/IndexablePageNumberRule.test.d.mts +0 -1
  448. package/dist/tests/programmes/rules/IndexablePageNumberRule.test.mjs +0 -51
  449. package/dist/tests/programmes/rules/MbaDegreeRule.test.d.mts +0 -1
  450. package/dist/tests/programmes/rules/MbaDegreeRule.test.mjs +0 -55
  451. package/dist/tests/programmes/rules/MbaOrMscDegreeRule.test.d.mts +0 -1
  452. package/dist/tests/programmes/rules/MbaOrMscDegreeRule.test.mjs +0 -53
  453. package/dist/tests/programmes/rules/MinimumAmountOfResultsRule.test.d.mts +0 -1
  454. package/dist/tests/programmes/rules/MinimumAmountOfResultsRule.test.mjs +0 -79
  455. package/dist/tests/programmes/rules/NotDistanceLearningPortalRule.test.d.mts +0 -1
  456. package/dist/tests/programmes/rules/NotDistanceLearningPortalRule.test.mjs +0 -57
  457. package/dist/tests/programmes/rules/OneYearDurationRule.test..d.mts +0 -1
  458. package/dist/tests/programmes/rules/OneYearDurationRule.test..mjs +0 -40
  459. package/dist/tests/programmes/rules/OnlineAttendanceRule.test.d.mts +0 -1
  460. package/dist/tests/programmes/rules/OnlineAttendanceRule.test.mjs +0 -69
  461. package/dist/tests/programmes/rules/PartTimeFormatRule.test.d.mts +0 -1
  462. package/dist/tests/programmes/rules/PartTimeFormatRule.test.mjs +0 -27
  463. package/dist/tests/programmes/utils/SearchDependencies.util.d.mts +0 -16
  464. package/dist/tests/programmes/utils/SearchDependencies.util.mjs +0 -73
  465. package/dist/tests/programmes/utils/SitemapDependencies.util.d.mts +0 -15
  466. package/dist/tests/programmes/utils/SitemapDependencies.util.mjs +0 -49
  467. package/dist/tests/scholarships/policies/Area.test.d.mts +0 -1
  468. package/dist/tests/scholarships/policies/Area.test.mjs +0 -121
  469. package/dist/tests/scholarships/policies/Country.test.d.mts +0 -1
  470. package/dist/tests/scholarships/policies/Country.test.mjs +0 -97
  471. package/dist/tests/scholarships/policies/Discipline.test.d.mts +0 -1
  472. package/dist/tests/scholarships/policies/Discipline.test.mjs +0 -93
  473. package/dist/tests/scholarships/policies/DisciplineCountry.test.d.mts +0 -1
  474. package/dist/tests/scholarships/policies/DisciplineCountry.test.mjs +0 -151
  475. package/dist/tests/scholarships/policies/Unfiltered.test.d.mts +0 -1
  476. package/dist/tests/scholarships/policies/Unfiltered.test.mjs +0 -44
  477. package/dist/tests/scholarships/policies/UniversityCountry.test.d.mts +0 -1
  478. package/dist/tests/scholarships/policies/UniversityCountry.test.mjs +0 -115
  479. package/dist/tests/scholarships/rules/ExceptAustaliaAreasRule.test.d.mts +0 -1
  480. package/dist/tests/scholarships/rules/ExceptAustaliaAreasRule.test.mjs +0 -64
  481. package/dist/tests/scholarships/rules/SearchVolumeAreasRule.test.d.mts +0 -1
  482. package/dist/tests/scholarships/rules/SearchVolumeAreasRule.test.mjs +0 -62
  483. package/dist/tests/scholarships/rules/SearchVolumeCountriesDisciplinesRule.test.d.mts +0 -1
  484. package/dist/tests/scholarships/rules/SearchVolumeCountriesDisciplinesRule.test.mjs +0 -114
  485. package/dist/tests/scholarships/rules/SearchVolumeCountriesRule.test.d.mts +0 -1
  486. package/dist/tests/scholarships/rules/SearchVolumeCountriesRule.test.mjs +0 -62
  487. package/dist/tests/scholarships/rules/SearchVolumeDisciplinesRule.test.d.mts +0 -1
  488. package/dist/tests/scholarships/rules/SearchVolumeDisciplinesRule.test.mjs +0 -62
  489. package/dist/tests/scholarships/utils/SearchDependencies.util.d.mts +0 -16
  490. package/dist/tests/scholarships/utils/SearchDependencies.util.mjs +0 -70
  491. package/dist/tests/scholarships/utils/SitemapDependencies.util.d.mts +0 -11
  492. package/dist/tests/scholarships/utils/SitemapDependencies.util.mjs +0 -33
  493. package/dist/tests/sitemap-generator/BaseSitemapUrlGeneratorManager.test.d.mts +0 -1
  494. package/dist/tests/sitemap-generator/BaseSitemapUrlGeneratorManager.test.mjs +0 -82
  495. package/dist/tests/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.test.d.mts +0 -1
  496. package/dist/tests/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.test.mjs +0 -85
  497. package/dist/tests/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.test.d.mts +0 -1
  498. package/dist/tests/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.test.mjs +0 -77
  499. package/dist/tests/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.test.d.mts +0 -1
  500. package/dist/tests/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.test.mjs +0 -60
  501. package/dist/tests/structured-data/OrganisationStructuredDataFactory.test.d.mts +0 -1
  502. package/dist/tests/structured-data/OrganisationStructuredDataFactory.test.mjs +0 -334
  503. package/dist/tests/structured-data/ProgrammeStructuredDataFactory.test.d.mts +0 -1
  504. package/dist/tests/structured-data/ProgrammeStructuredDataFactory.test.mjs +0 -562
  505. package/dist/tests/structured-data/ScholarshipStructuredDataFactory.test.d.mts +0 -1
  506. package/dist/tests/structured-data/ScholarshipStructuredDataFactory.test.mjs +0 -292
  507. package/dist/tests/structured-data/SearchStructuredDataFactory.paywall.test.d.mts +0 -1
  508. package/dist/tests/structured-data/SearchStructuredDataFactory.paywall.test.mjs +0 -258
@@ -1,293 +0,0 @@
1
- import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
2
- import { FilterKey } from '@studyportals/search-filters/server-side';
3
- import { SearchDependencies } from '../utils/SearchDependencies.util.mjs';
4
- import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
5
- import { TuitionFeeContinent } from '@/programmes/policies/TuitionFeeContinent';
6
- import { PortalType } from '@studyportals/domain-client';
7
- import { ContinentPresenter } from '@/presenters/ContinentPresenter';
8
- import { TuitionFeePresenter } from '@/presenters/TuitionFeePresenter';
9
- // Mock the ContinentPresenter
10
- vi.mock('@/presenters/ContinentPresenter', () => {
11
- return {
12
- ContinentPresenter: {
13
- getInstance: vi.fn().mockReturnValue({
14
- getFragments: vi.fn().mockReturnValue([
15
- { id: '1', path: 'europe' },
16
- { id: '9', path: 'asia' },
17
- { id: '2', path: 'north-america' },
18
- { id: '6', path: 'south-america' },
19
- { id: '4', path: 'africa' }
20
- ])
21
- })
22
- }
23
- };
24
- });
25
- // Mock the TuitionFeePresenter
26
- vi.mock('@/presenters/TuitionFeePresenter', () => {
27
- return {
28
- TuitionFeePresenter: {
29
- getInstance: vi.fn().mockReturnValue({
30
- getFragments: vi.fn().mockReturnValue([
31
- { id: '[0,2500]', path: 'affordable' },
32
- { id: '[2501,5000]', path: 'moderate' },
33
- { id: '[5001,10000]', path: 'expensive' }
34
- ])
35
- })
36
- }
37
- };
38
- });
39
- describe('Policy:TuitionFeeContinent', () => {
40
- describe('shouldIndex', () => {
41
- let searchDependenciesHelper;
42
- let tuitionFeeContinentPolicy;
43
- beforeEach(() => {
44
- searchDependenciesHelper = new SearchDependencies();
45
- tuitionFeeContinentPolicy = new TuitionFeeContinent(searchDependenciesHelper.dependencies);
46
- searchDependenciesHelper.setResultsCount(10);
47
- searchDependenciesHelper.setPageNumber(1);
48
- searchDependenciesHelper.setPortalType(PortalType.MASTER);
49
- });
50
- it('Should return true when all conditions are met', async () => {
51
- const continentId = '1'; // Europe
52
- const tuitionFee = '[0,2500]'; // Affordable
53
- searchDependenciesHelper.setFilterKeyValues(new Map([
54
- [FilterKey.CONTINENT, [continentId]],
55
- [FilterKey.TUITION_FEE, [tuitionFee]]
56
- ]));
57
- const result = await tuitionFeeContinentPolicy.shouldIndex();
58
- expect(result).toBe(true);
59
- });
60
- it('Should return false when multiple continents are selected', async () => {
61
- const firstContinentId = '1'; // Europe
62
- const secondContinentId = '10'; // Africa
63
- const tuitionFee = '[0,2500]'; // Affordable
64
- searchDependenciesHelper.setFilterKeyValues(new Map([
65
- [FilterKey.CONTINENT, [firstContinentId, secondContinentId]],
66
- [FilterKey.TUITION_FEE, [tuitionFee]]
67
- ]));
68
- const result = await tuitionFeeContinentPolicy.shouldIndex();
69
- expect(result).toBe(false);
70
- });
71
- it('Should return false when multiple tuition fee values are selected', async () => {
72
- const continentId = '1'; // Europe
73
- const firstTuitionFee = '[0,2500]'; // Affordable
74
- const secondTuitionFee = '[2501,5000]';
75
- searchDependenciesHelper.setFilterKeyValues(new Map([
76
- [FilterKey.CONTINENT, [continentId]],
77
- [FilterKey.TUITION_FEE, [firstTuitionFee, secondTuitionFee]]
78
- ]));
79
- const result = await tuitionFeeContinentPolicy.shouldIndex();
80
- expect(result).toBe(false);
81
- });
82
- it('Should return false when no continents are selected', async () => {
83
- const tuitionFee = '[0,2500]'; // Affordable
84
- searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.TUITION_FEE, [tuitionFee]]]));
85
- const result = await tuitionFeeContinentPolicy.shouldIndex();
86
- expect(result).toBe(false);
87
- });
88
- it('Should return false when no tuition fee values are selected', async () => {
89
- const continentId = '1'; // Europe
90
- searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.CONTINENT, [continentId]]]));
91
- const result = await tuitionFeeContinentPolicy.shouldIndex();
92
- expect(result).toBe(false);
93
- });
94
- it('Should return false when other filters are selected', async () => {
95
- const continentId = '1'; // Europe
96
- const tuitionFee = '[0,2500]'; // Affordable
97
- const attendance = 'online';
98
- searchDependenciesHelper.setFilterKeyValues(new Map([
99
- [FilterKey.CONTINENT, [continentId]],
100
- [FilterKey.TUITION_FEE, [tuitionFee]],
101
- [FilterKey.DELIVERY_METHOD, [attendance]]
102
- ]));
103
- const result = await tuitionFeeContinentPolicy.shouldIndex();
104
- expect(result).toBe(false);
105
- });
106
- it('Should return false when number of results is less than 7', async () => {
107
- const continentId = '1'; // Europe
108
- const tuitionFee = '[0,2500]'; // Affordable
109
- const attendance = 'online';
110
- searchDependenciesHelper.setResultsCount(6);
111
- searchDependenciesHelper.setFilterKeyValues(new Map([
112
- [FilterKey.CONTINENT, [continentId]],
113
- [FilterKey.TUITION_FEE, [tuitionFee]],
114
- [FilterKey.DELIVERY_METHOD, [attendance]]
115
- ]));
116
- const result = await tuitionFeeContinentPolicy.shouldIndex();
117
- expect(result).toBe(false);
118
- });
119
- it('Should return false when page number is higher than 2', async () => {
120
- const continentId = '1'; // Europe
121
- const tuitionFee = '[0,2500]'; // Affordable
122
- searchDependenciesHelper.setPageNumber(5);
123
- searchDependenciesHelper.setFilterKeyValues(new Map([
124
- [FilterKey.CONTINENT, [continentId]],
125
- [FilterKey.TUITION_FEE, [tuitionFee]]
126
- ]));
127
- const result = await tuitionFeeContinentPolicy.shouldIndex();
128
- expect(result).toBe(false);
129
- });
130
- it('Should return false when portal type is distance learning', async () => {
131
- const continentId = '1'; // Europe
132
- const tuitionFee = '[0,2500]'; // Affordable
133
- searchDependenciesHelper.setPortalType(PortalType.DISTANCE_LEARNING);
134
- searchDependenciesHelper.setFilterKeyValues(new Map([
135
- [FilterKey.CONTINENT, [continentId]],
136
- [FilterKey.TUITION_FEE, [tuitionFee]]
137
- ]));
138
- const result = await tuitionFeeContinentPolicy.shouldIndex();
139
- expect(result).toBe(false);
140
- });
141
- });
142
- describe('generateUrls', () => {
143
- let sitemapDependenciesHelper;
144
- let tuitionFeeContinentPolicy;
145
- beforeEach(() => {
146
- sitemapDependenciesHelper = new SitemapDependencies();
147
- sitemapDependenciesHelper.setProgrammeCount(10); // More than 7 programs
148
- tuitionFeeContinentPolicy = new TuitionFeeContinent(sitemapDependenciesHelper.dependencies);
149
- ContinentPresenter.getInstance = vi.fn().mockReturnValue({
150
- getFragments: vi.fn().mockReturnValue([
151
- { id: '1', path: 'europe' },
152
- { id: '9', path: 'asia' },
153
- { id: '2', path: 'north-america' },
154
- { id: '6', path: 'south-america' },
155
- { id: '4', path: 'africa' }
156
- ])
157
- });
158
- TuitionFeePresenter.getInstance = vi.fn().mockReturnValue({
159
- getFragments: vi.fn().mockReturnValue([
160
- { id: '[0,2500]', path: 'affordable' },
161
- { id: '[2501,5000]', path: 'moderate' },
162
- { id: '[5001,10000]', path: 'expensive' }
163
- ])
164
- });
165
- });
166
- afterEach(() => {
167
- sitemapDependenciesHelper.resetMocks();
168
- });
169
- it('Should generate URLs for valid continent-tuition fee combinations with affordable tuition fees', async () => {
170
- // Mock the checkRulesForSitemap to only allow affordable tuition fee options
171
- // due to AffordableTuitionFeeRule
172
- const resultMap = new Map();
173
- // Set up all possible combinations but only allow affordable ones
174
- for (const continent of ['1', '9', '2', '6', '4']) {
175
- for (const tuitionFee of ['[0,2500]', '[2501,5000]', '[5001,10000]']) {
176
- const key = `${FilterKey.TUITION_FEE}:${tuitionFee}|${FilterKey.CONTINENT}:${continent}`;
177
- // Only affordable tuition fee should pass
178
- resultMap.set(key, tuitionFee === '[0,2500]');
179
- }
180
- }
181
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
182
- // Call the method via reflection since it's protected
183
- const urls = await tuitionFeeContinentPolicy.generateUrls();
184
- // Calculate expected URLs: 5 continents * 1 tuition fee option (affordable) and page-2 variations = 10 URLs
185
- expect(urls).toHaveLength(5);
186
- // Verify affordable tuition fee combinations
187
- expect(urls).toContain('affordable/europe');
188
- expect(urls).toContain('affordable/asia');
189
- expect(urls).toContain('affordable/north-america');
190
- expect(urls).toContain('affordable/south-america');
191
- expect(urls).toContain('affordable/africa');
192
- // Verify expensive tuition fees are excluded
193
- expect(urls).not.toContain('moderate/europe');
194
- expect(urls).not.toContain('expensive/europe');
195
- });
196
- it('Should exclude specific continent-tuition fee combinations based on rules', async () => {
197
- // Create a map that returns false for specific combinations
198
- const resultMap = new Map();
199
- // Only allow affordable tuition fee, but exclude Europe and Asia
200
- for (const continent of ['1', '9', '2', '6', '4']) {
201
- for (const tuitionFee of ['[0,2500]', '[2501,5000]', '[5001,10000]']) {
202
- const key = `${FilterKey.TUITION_FEE}:${tuitionFee}|${FilterKey.CONTINENT}:${continent}`;
203
- // Only affordable tuition fee should pass and exclude Europe (1) and Asia (9)
204
- resultMap.set(key, tuitionFee === '[0,2500]' && continent !== '1' && continent !== '9');
205
- }
206
- }
207
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
208
- const urls = await tuitionFeeContinentPolicy.generateUrls();
209
- // Calculate expected URLs: 3 continents (excluding Europe and Asia) * 1 tuition fee option (affordable) and page-2 variations = 6 URLs
210
- expect(urls).toHaveLength(3);
211
- // Verify excluded combinations
212
- expect(urls).not.toContain('affordable/europe');
213
- expect(urls).not.toContain('affordable/asia');
214
- expect(urls).not.toContain('moderate/europe');
215
- // Verify included combinations
216
- expect(urls).toContain('affordable/north-america');
217
- expect(urls).toContain('affordable/south-america');
218
- expect(urls).toContain('affordable/africa');
219
- });
220
- it('Should exclude all URLs when all rule checks fail', async () => {
221
- // Create a map that returns false for all combinations
222
- const resultMap = new Map();
223
- for (const continent of ['1', '9', '2', '6', '4']) {
224
- for (const tuitionFee of ['[0,2500]', '[2501,5000]', '[5001,10000]']) {
225
- const key = `${FilterKey.TUITION_FEE}:${tuitionFee}|${FilterKey.CONTINENT}:${continent}`;
226
- resultMap.set(key, false);
227
- }
228
- }
229
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
230
- const urls = await tuitionFeeContinentPolicy.generateUrls();
231
- // Should include no URLs
232
- expect(urls).toHaveLength(0);
233
- });
234
- it('Should handle empty continent fragments', async () => {
235
- // Mock the ContinentPresenter to return empty fragments
236
- ContinentPresenter.getInstance.mockReturnValueOnce({
237
- getFragments: vi.fn().mockReturnValue([])
238
- });
239
- sitemapDependenciesHelper.mockCheckRulesForSitemap();
240
- const urls = await tuitionFeeContinentPolicy.generateUrls();
241
- // Should return empty array
242
- expect(urls).toHaveLength(0);
243
- });
244
- it('Should handle empty tuition fee fragments', async () => {
245
- // Mock the TuitionFeePresenter to return empty fragments
246
- TuitionFeePresenter.getInstance.mockReturnValueOnce({
247
- getFragments: vi.fn().mockReturnValue([])
248
- });
249
- sitemapDependenciesHelper.mockCheckRulesForSitemap();
250
- const urls = await tuitionFeeContinentPolicy.generateUrls();
251
- // Should return empty array
252
- expect(urls).toHaveLength(0);
253
- });
254
- it('Should handle performance with large number of combinations', async () => {
255
- // Generate larger datasets for testing
256
- const largeContinentSet = Array.from({ length: 15 }, (_, index) => ({
257
- id: `continent-${index}`,
258
- path: `continent-path-${index}`
259
- }));
260
- const largeTuitionFeeSet = Array.from({ length: 8 }, (_, index) => ({
261
- id: `tuition-${index}`,
262
- path: `tuition-path-${index}`
263
- }));
264
- // Override mocks with large datasets
265
- ContinentPresenter.getInstance.mockReturnValueOnce({
266
- getFragments: vi.fn().mockReturnValue(largeContinentSet)
267
- });
268
- TuitionFeePresenter.getInstance.mockReturnValueOnce({
269
- getFragments: vi.fn().mockReturnValue(largeTuitionFeeSet)
270
- });
271
- // Mock to only allow combinations where continent index is even and tuition fee index is 0
272
- // This simulates the AffordableTuitionFeeRule that only allows affordable (lowest) tuition fees
273
- const resultMap = new Map();
274
- for (let c = 0; c < largeContinentSet.length; c++) {
275
- for (let t = 0; t < largeTuitionFeeSet.length; t++) {
276
- const continentId = largeContinentSet[c].id;
277
- const tuitionFeeId = largeTuitionFeeSet[t].id;
278
- const key = `${FilterKey.TUITION_FEE}:${tuitionFeeId}|${FilterKey.CONTINENT}:${continentId}`;
279
- resultMap.set(key, c % 2 === 0 && t === 0); // Only even continents and affordable (index 0) tuition
280
- }
281
- }
282
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
283
- const urls = await tuitionFeeContinentPolicy.generateUrls();
284
- // Calculate expected count: 8 continents (even indices) * 1 tuition fee (index 0) * page-2 variations = 16 URLs
285
- expect(urls).toHaveLength(8);
286
- // Test specific items
287
- expect(urls).toContain('tuition-path-0/continent-path-0'); // Even continent, affordable tuition
288
- expect(urls).toContain('tuition-path-0/continent-path-2'); // Even continent, affordable tuition
289
- expect(urls).not.toContain('tuition-path-0/continent-path-1'); // Odd continent
290
- expect(urls).not.toContain('tuition-path-1/continent-path-0'); // Non-affordable tuition
291
- });
292
- });
293
- });
@@ -1,266 +0,0 @@
1
- import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
2
- import { FilterKey } from '@studyportals/search-filters/server-side';
3
- import { SearchDependencies } from '../utils/SearchDependencies.util.mjs';
4
- import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
5
- import { TuitionFeeCountry } from '@/programmes/policies/TuitionFeeCountry';
6
- import { PortalType } from '@studyportals/domain-client';
7
- import { CountryPresenter } from '@/presenters/CountryPresenter';
8
- import { TuitionFeePresenter } from '@/presenters/TuitionFeePresenter';
9
- describe('Policy:TuitionFeeCountry', () => {
10
- describe('shouldIndex', () => {
11
- let searchDependenciesHelper;
12
- let tuitionFeeCountryPolicy;
13
- beforeEach(() => {
14
- searchDependenciesHelper = new SearchDependencies();
15
- tuitionFeeCountryPolicy = new TuitionFeeCountry(searchDependenciesHelper.dependencies);
16
- searchDependenciesHelper.setResultsCount(10);
17
- searchDependenciesHelper.setPageNumber(1);
18
- searchDependenciesHelper.setPortalType(PortalType.BACHELOR);
19
- });
20
- it('Should return true when all conditions are met', async () => {
21
- const countryId = '82'; // US
22
- const tuitionFee = '[0,2500]'; // Affordable
23
- searchDependenciesHelper.setFilterKeyValues(new Map([
24
- [FilterKey.COUNTRY, [countryId]],
25
- [FilterKey.TUITION_FEE, [tuitionFee]]
26
- ]));
27
- const result = await tuitionFeeCountryPolicy.shouldIndex();
28
- expect(result).toBe(true);
29
- });
30
- it('Should return false when multiple countries are selected', async () => {
31
- const firstCountryId = '30'; // UK
32
- const secondCountryId = '21'; // Portugal
33
- const tuitionFee = '[0,2500]'; // Affordable
34
- searchDependenciesHelper.setFilterKeyValues(new Map([
35
- [FilterKey.COUNTRY, [firstCountryId, secondCountryId]],
36
- [FilterKey.TUITION_FEE, [tuitionFee]]
37
- ]));
38
- const result = await tuitionFeeCountryPolicy.shouldIndex();
39
- expect(result).toBe(false);
40
- });
41
- it('Should return false when multiple tuition fee values are selected', async () => {
42
- const countryId = '30'; // UK
43
- const firstTuitionFee = '[0,2500]'; // Affordable
44
- const secondTuitionFee = '[0,3000]';
45
- searchDependenciesHelper.setFilterKeyValues(new Map([
46
- [FilterKey.COUNTRY, [countryId]],
47
- [FilterKey.TUITION_FEE, [firstTuitionFee, secondTuitionFee]]
48
- ]));
49
- const result = await tuitionFeeCountryPolicy.shouldIndex();
50
- expect(result).toBe(false);
51
- });
52
- it('Should return false when no tuition fee values are selected', async () => {
53
- const countryId = '30'; // UK
54
- searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
55
- const result = await tuitionFeeCountryPolicy.shouldIndex();
56
- expect(result).toBe(false);
57
- });
58
- it('Should return false when no countries are selected', async () => {
59
- const tuitionFee = '[0,2500]'; // Affordable
60
- searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.TUITION_FEE, [tuitionFee]]]));
61
- const result = await tuitionFeeCountryPolicy.shouldIndex();
62
- expect(result).toBe(false);
63
- });
64
- it('Should return false when other filters are selected', async () => {
65
- const countryId = '30'; // UK
66
- const tuitionFee = '[0,2500]'; // Affordable
67
- const disciplineId = '54'; // Agriculture & Forestry
68
- searchDependenciesHelper.setFilterKeyValues(new Map([
69
- [FilterKey.COUNTRY, [countryId]],
70
- [FilterKey.TUITION_FEE, [tuitionFee]],
71
- [FilterKey.DISCIPLINES, [disciplineId]]
72
- ]));
73
- const result = await tuitionFeeCountryPolicy.shouldIndex();
74
- expect(result).toBe(false);
75
- });
76
- it('Should return false when tuition fee is not [0,2500] (affordable)', async () => {
77
- const countryId = '30'; // UK
78
- const tuitionFee = '[0,3000]';
79
- searchDependenciesHelper.setFilterKeyValues(new Map([
80
- [FilterKey.COUNTRY, [countryId]],
81
- [FilterKey.TUITION_FEE, [tuitionFee]]
82
- ]));
83
- const result = await tuitionFeeCountryPolicy.shouldIndex();
84
- expect(result).toBe(false);
85
- });
86
- it('Should return false when number of results is less than 7', async () => {
87
- const countryId = '30'; // UK
88
- const tuitionFee = '[0,2500]'; // Affordable
89
- searchDependenciesHelper.setResultsCount(6);
90
- searchDependenciesHelper.setFilterKeyValues(new Map([
91
- [FilterKey.COUNTRY, [countryId]],
92
- [FilterKey.TUITION_FEE, [tuitionFee]]
93
- ]));
94
- const result = await tuitionFeeCountryPolicy.shouldIndex();
95
- expect(result).toBe(false);
96
- });
97
- it('Should return false when page number is higher than 2', async () => {
98
- const countryId = '82'; // US
99
- const tuitionFee = '[0,2500]'; // Affordable
100
- searchDependenciesHelper.setPageNumber(5);
101
- searchDependenciesHelper.setFilterKeyValues(new Map([
102
- [FilterKey.COUNTRY, [countryId]],
103
- [FilterKey.TUITION_FEE, [tuitionFee]]
104
- ]));
105
- const result = await tuitionFeeCountryPolicy.shouldIndex();
106
- expect(result).toBe(false);
107
- });
108
- it('Should return false when portal type is distance learning', async () => {
109
- const countryId = '82'; // US
110
- const tuitionFee = '[0,2500]'; // Affordable
111
- searchDependenciesHelper.setPortalType(PortalType.DISTANCE_LEARNING);
112
- searchDependenciesHelper.setFilterKeyValues(new Map([
113
- [FilterKey.COUNTRY, [countryId]],
114
- [FilterKey.TUITION_FEE, [tuitionFee]]
115
- ]));
116
- const result = await tuitionFeeCountryPolicy.shouldIndex();
117
- expect(result).toBe(false);
118
- });
119
- });
120
- describe('generateUrls', () => {
121
- let sitemapDependenciesHelper;
122
- let tuitionFeeCountryPolicy;
123
- beforeEach(() => {
124
- sitemapDependenciesHelper = new SitemapDependencies();
125
- sitemapDependenciesHelper.setProgrammeCount(10); // More than 7 programs
126
- tuitionFeeCountryPolicy = new TuitionFeeCountry(sitemapDependenciesHelper.dependencies);
127
- CountryPresenter.getInstance = vi.fn().mockReturnValue({
128
- getFragments: vi.fn().mockReturnValue([
129
- { id: '30', path: 'uk' },
130
- { id: '202', path: 'australia' },
131
- { id: '56', path: 'usa' }
132
- ])
133
- });
134
- TuitionFeePresenter.getInstance = vi.fn().mockReturnValue({
135
- getFragments: vi.fn().mockReturnValue([
136
- { id: '[0,2500]', path: 'affordable' },
137
- { id: '[2501,5000]', path: 'moderate' },
138
- { id: '[5001,10000]', path: 'expensive' }
139
- ])
140
- });
141
- });
142
- afterEach(() => {
143
- sitemapDependenciesHelper.resetMocks();
144
- });
145
- it('Should generate URLs for valid country-tuition fee combinations with affordable tuition fees', async () => {
146
- // Mock the checkRulesForSitemap to only allow affordable tuition fee options
147
- // due to AffordableTuitionFeeRule
148
- const resultMap = new Map();
149
- // Set up all possible combinations but only allow affordable ones
150
- for (const country of ['30', '202', '56']) {
151
- for (const tuitionFee of ['[0,2500]', '[2501,5000]', '[5001,10000]']) {
152
- const key = `${FilterKey.TUITION_FEE}:${tuitionFee}|${FilterKey.COUNTRY}:${country}`;
153
- // Only affordable tuition fee should pass
154
- resultMap.set(key, tuitionFee === '[0,2500]');
155
- }
156
- }
157
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
158
- // Call the method via reflection since it's protected
159
- const urls = await tuitionFeeCountryPolicy.generateUrls();
160
- // Calculate expected URLs: 3 countries * 1 tuition fee option (affordable) * 1 page = 3 URLs
161
- expect(urls).toHaveLength(3);
162
- // Verify affordable tuition fee combinations
163
- expect(urls).toContain('affordable/uk');
164
- expect(urls).toContain('affordable/usa');
165
- expect(urls).toContain('affordable/australia');
166
- // Verify expensive tuition fees are excluded
167
- expect(urls).not.toContain('moderate/uk');
168
- expect(urls).not.toContain('expensive/uk');
169
- });
170
- it('Should exclude specific country-tuition fee combinations based on rules', async () => {
171
- // Create a map that returns false for specific combinations
172
- const resultMap = new Map();
173
- // Only allow affordable tuition fee, but exclude UK
174
- for (const country of ['30', '56', '202']) {
175
- for (const tuitionFee of ['[0,2500]', '[2501,5000]', '[5001,10000]']) {
176
- const key = `${FilterKey.TUITION_FEE}:${tuitionFee}|${FilterKey.COUNTRY}:${country}`;
177
- // Only affordable tuition fee should pass and exclude UK (30)
178
- resultMap.set(key, tuitionFee === '[0,2500]' && country !== '30');
179
- }
180
- }
181
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap, false);
182
- const urls = await tuitionFeeCountryPolicy.generateUrls();
183
- // Calculate expected URLs: 2 countries (excluding UK) * 1 tuition fee option * 1 page = 2 URLs
184
- expect(urls).toHaveLength(2);
185
- // Verify excluded combinations
186
- expect(urls).not.toContain('affordable/uk');
187
- expect(urls).not.toContain('moderate/uk');
188
- // Verify included combinations
189
- expect(urls).toContain('affordable/usa');
190
- expect(urls).toContain('affordable/australia');
191
- });
192
- it('Should exclude all URLs when all rule checks fail', async () => {
193
- // Create a map that returns false for all combinations
194
- const resultMap = new Map();
195
- for (const country of ['30', '82', '202']) {
196
- for (const tuitionFee of ['[0,2500]', '[2501,5000]', '[5001,10000]']) {
197
- const key = `${FilterKey.TUITION_FEE}:${tuitionFee}|${FilterKey.COUNTRY}:${country}`;
198
- resultMap.set(key, false);
199
- }
200
- }
201
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap, false);
202
- const urls = await tuitionFeeCountryPolicy.generateUrls();
203
- // Should include no URLs
204
- expect(urls).toHaveLength(0);
205
- });
206
- it('Should handle empty country fragments', async () => {
207
- // Mock the CountryPresenter to return empty fragments
208
- CountryPresenter.getInstance.mockReturnValueOnce({
209
- getFragments: vi.fn().mockReturnValue([])
210
- });
211
- sitemapDependenciesHelper.mockCheckRulesForSitemap();
212
- const urls = await tuitionFeeCountryPolicy.generateUrls();
213
- // Should return empty array
214
- expect(urls).toHaveLength(0);
215
- });
216
- it('Should handle empty tuition fee fragments', async () => {
217
- // Mock the TuitionFeePresenter to return empty fragments
218
- TuitionFeePresenter.getInstance.mockReturnValueOnce({
219
- getFragments: vi.fn().mockReturnValue([])
220
- });
221
- sitemapDependenciesHelper.mockCheckRulesForSitemap();
222
- const urls = await tuitionFeeCountryPolicy.generateUrls();
223
- // Should return empty array
224
- expect(urls).toHaveLength(0);
225
- });
226
- it('Should handle performance with large number of combinations', async () => {
227
- // Generate larger datasets for testing
228
- const largeCountrySet = Array.from({ length: 30 }, (_, index) => ({
229
- id: `country-${index}`,
230
- path: `country-path-${index}`
231
- }));
232
- const largeTuitionFeeSet = Array.from({ length: 5 }, (_, index) => ({
233
- id: `tuition-${index}`,
234
- path: `tuition-path-${index}`
235
- }));
236
- // Override mocks with large datasets
237
- CountryPresenter.getInstance.mockReturnValueOnce({
238
- getFragments: vi.fn().mockReturnValue(largeCountrySet)
239
- });
240
- TuitionFeePresenter.getInstance.mockReturnValueOnce({
241
- getFragments: vi.fn().mockReturnValue(largeTuitionFeeSet)
242
- });
243
- // Mock to only allow combinations where country index is even and tuition fee index is 0
244
- // This simulates the AffordableTuitionFeeRule that only allows affordable (lowest) tuition fees
245
- const resultMap = new Map();
246
- for (let c = 0; c < largeCountrySet.length; c++) {
247
- for (let t = 0; t < largeTuitionFeeSet.length; t++) {
248
- const countryId = largeCountrySet[c].id;
249
- const tuitionFeeId = largeTuitionFeeSet[t].id;
250
- const key = `${FilterKey.TUITION_FEE}:${tuitionFeeId}|${FilterKey.COUNTRY}:${countryId}`;
251
- resultMap.set(key, c % 2 === 0 && t === 0); // Only even countries and affordable (index 0) tuition
252
- }
253
- }
254
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap, false);
255
- const urls = await tuitionFeeCountryPolicy.generateUrls();
256
- // Calculate expected count: 15 countries (even indices) * 1 tuition fee (index 0) * 1 page
257
- // 15 * 1 * 1 = 15 URLs
258
- expect(urls).toHaveLength(15);
259
- // Test specific items
260
- expect(urls).toContain('tuition-path-0/country-path-0'); // Even country, affordable tuition
261
- expect(urls).toContain('tuition-path-0/country-path-2'); // Even country, affordable tuition
262
- expect(urls).not.toContain('tuition-path-0/country-path-1'); // Odd country
263
- expect(urls).not.toContain('tuition-path-1/country-path-0'); // Non-affordable tuition
264
- });
265
- });
266
- });