@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,304 +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 { CountryDurationDegree } from '@/programmes/policies/CountryDurationDegree';
5
- import { PortalType } from '@studyportals/domain-client';
6
- import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
7
- import { CountryPresenter } from '@/presenters/CountryPresenter';
8
- import { DegreePresenter } from '@/presenters/DegreePresenter';
9
- import { DurationPresenter } from '@/presenters/DurationPresenter';
10
- describe('Policy:CountryDurationDegree', () => {
11
- describe('shouldIndex', () => {
12
- let searchDependenciesHelper;
13
- let countryDurationDegreePolicy;
14
- beforeEach(() => {
15
- searchDependenciesHelper = new SearchDependencies();
16
- countryDurationDegreePolicy = new CountryDurationDegree(searchDependenciesHelper.dependencies);
17
- searchDependenciesHelper.setResultsCount(10);
18
- searchDependenciesHelper.setPageNumber(1);
19
- searchDependenciesHelper.setPortalType(PortalType.PHD);
20
- });
21
- it('Should return true when all conditions are met (degree is MBA)', async () => {
22
- const countryId = '30'; // UK
23
- const duration = '[360,360]'; // 1 year
24
- const degree = 'mba';
25
- searchDependenciesHelper.setFilterKeyValues(new Map([
26
- [FilterKey.COUNTRY, [countryId]],
27
- [FilterKey.DURATION, [duration]],
28
- [FilterKey.DEGREE_TYPE, [degree]]
29
- ]));
30
- const result = await countryDurationDegreePolicy.shouldIndex();
31
- expect(result).toBe(true);
32
- });
33
- it('Should return true when all conditions are met (degree is MSC)', async () => {
34
- const countryId = '30'; // UK
35
- const duration = '[360,360]'; // 1 year
36
- const degree = 'msc';
37
- searchDependenciesHelper.setFilterKeyValues(new Map([
38
- [FilterKey.COUNTRY, [countryId]],
39
- [FilterKey.DURATION, [duration]],
40
- [FilterKey.DEGREE_TYPE, [degree]]
41
- ]));
42
- const result = await countryDurationDegreePolicy.shouldIndex();
43
- expect(result).toBe(true);
44
- });
45
- it('Should return false when multiple countries are selected', async () => {
46
- const firstCountryId = '30'; // UK
47
- const secondCountryId = '21'; // Portugal
48
- const duration = '[360,360]'; // 1 year
49
- const degree = 'mba';
50
- searchDependenciesHelper.setFilterKeyValues(new Map([
51
- [FilterKey.COUNTRY, [firstCountryId, secondCountryId]],
52
- [FilterKey.DURATION, [duration]],
53
- [FilterKey.DEGREE_TYPE, [degree]]
54
- ]));
55
- const result = await countryDurationDegreePolicy.shouldIndex();
56
- expect(result).toBe(false);
57
- });
58
- it('Should return false when degree is not MBA or MSC', async () => {
59
- const countryId = '30'; // UK
60
- const duration = '[360,360]'; // 1 year
61
- const degree = 'phd';
62
- searchDependenciesHelper.setFilterKeyValues(new Map([
63
- [FilterKey.COUNTRY, [countryId]],
64
- [FilterKey.DURATION, [duration]],
65
- [FilterKey.DEGREE_TYPE, [degree]]
66
- ]));
67
- const result = await countryDurationDegreePolicy.shouldIndex();
68
- expect(result).toBe(false);
69
- });
70
- it('Should return false when duration is not one year', async () => {
71
- const countryId = '30'; // UK
72
- const duration = '[720,720]'; // 2 years
73
- const degree = 'mba';
74
- searchDependenciesHelper.setFilterKeyValues(new Map([
75
- [FilterKey.COUNTRY, [countryId]],
76
- [FilterKey.DURATION, [duration]],
77
- [FilterKey.DEGREE_TYPE, [degree]]
78
- ]));
79
- const result = await countryDurationDegreePolicy.shouldIndex();
80
- expect(result).toBe(false);
81
- });
82
- it('Should return false when other filters are selected', async () => {
83
- const countryId = '30'; // UK
84
- const duration = '[360,360]'; // 1 year
85
- const degree = 'mba';
86
- const disciplineId = '12'; // Applied Sciences & Professions
87
- searchDependenciesHelper.setFilterKeyValues(new Map([
88
- [FilterKey.COUNTRY, [countryId]],
89
- [FilterKey.DURATION, [duration]],
90
- [FilterKey.DEGREE_TYPE, [degree]],
91
- [FilterKey.DISCIPLINES, [disciplineId]]
92
- ]));
93
- const result = await countryDurationDegreePolicy.shouldIndex();
94
- expect(result).toBe(false);
95
- });
96
- it('Should return false when number of results is less than 7', async () => {
97
- const countryId = '30'; // UK
98
- const duration = '[360,360]'; // 1 year
99
- const degree = 'mba';
100
- searchDependenciesHelper.setResultsCount(6);
101
- searchDependenciesHelper.setFilterKeyValues(new Map([
102
- [FilterKey.COUNTRY, [countryId]],
103
- [FilterKey.DURATION, [duration]],
104
- [FilterKey.DEGREE_TYPE, [degree]]
105
- ]));
106
- const result = await countryDurationDegreePolicy.shouldIndex();
107
- expect(result).toBe(false);
108
- });
109
- it('Should return false when page number is higher than 2', async () => {
110
- const countryId = '30'; // UK
111
- const duration = '[360,360]'; // 1 year
112
- const degree = 'mba';
113
- searchDependenciesHelper.setPageNumber(5);
114
- searchDependenciesHelper.setFilterKeyValues(new Map([
115
- [FilterKey.COUNTRY, [countryId]],
116
- [FilterKey.DURATION, [duration]],
117
- [FilterKey.DEGREE_TYPE, [degree]]
118
- ]));
119
- const result = await countryDurationDegreePolicy.shouldIndex();
120
- expect(result).toBe(false);
121
- });
122
- it('Should return false when portal is distance learning', async () => {
123
- const countryId = '30'; // UK
124
- const duration = '[360,360]'; // 1 year
125
- const degree = 'mba';
126
- searchDependenciesHelper.setPortalType(PortalType.DISTANCE_LEARNING);
127
- searchDependenciesHelper.setFilterKeyValues(new Map([
128
- [FilterKey.COUNTRY, [countryId]],
129
- [FilterKey.DURATION, [duration]],
130
- [FilterKey.DEGREE_TYPE, [degree]]
131
- ]));
132
- const result = await countryDurationDegreePolicy.shouldIndex();
133
- expect(result).toBe(false);
134
- });
135
- });
136
- describe('generateUrls', () => {
137
- let sitemapDependenciesHelper;
138
- let countryDurationDegreePolicy;
139
- beforeEach(() => {
140
- sitemapDependenciesHelper = new SitemapDependencies();
141
- sitemapDependenciesHelper.setProgrammeCount(10); // More than 7 programs
142
- countryDurationDegreePolicy = new CountryDurationDegree(sitemapDependenciesHelper.dependencies);
143
- CountryPresenter.getInstance = vi.fn().mockReturnValue({
144
- getFragments: vi.fn().mockReturnValue([
145
- { id: '30', path: 'uk' },
146
- { id: '21', path: 'portugal' },
147
- { id: '56', path: 'usa' },
148
- { id: '82', path: 'netherlands' }
149
- ])
150
- });
151
- DegreePresenter.getInstance = vi.fn().mockReturnValue({
152
- getFragments: vi.fn().mockReturnValue([
153
- { id: 'mba', path: 'mba' },
154
- { id: 'msc', path: 'msc' },
155
- { id: 'phd', path: 'phd' }
156
- ])
157
- });
158
- DurationPresenter.getInstance = vi.fn().mockReturnValue({
159
- getFragments: vi.fn().mockReturnValue([
160
- { id: '[360,360]', path: '1-year' },
161
- { id: '[720,720]', path: '2-years' },
162
- { id: '[1080,1080]', path: '3-years' }
163
- ])
164
- });
165
- });
166
- afterEach(() => {
167
- sitemapDependenciesHelper.resetMocks();
168
- });
169
- it('Should generate URLs for all valid degree-duration-country combinations', async () => {
170
- // Mock the checkRulesForSitemap to only allow 1-year duration and MBA or MSC degrees
171
- const resultMap = new Map();
172
- // Set rules: only allow 1-year duration and MBA or MSC degrees
173
- for (const countryId of ['30', '21', '56', '82']) {
174
- for (const durationId of ['[360,360]', '[720,720]', '[1080,1080]']) {
175
- for (const degreeId of ['mba', 'msc', 'phd']) {
176
- const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.DURATION}:${durationId}|${FilterKey.DEGREE_TYPE}:${degreeId}`;
177
- resultMap.set(key, durationId === '[360,360]' && (degreeId === 'mba' || degreeId === 'msc'));
178
- }
179
- }
180
- }
181
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
182
- // Call the method via reflection since it's protected
183
- const urls = await countryDurationDegreePolicy.generateUrls();
184
- // Verify only 1-year MBA/MSC combinations were included (2 degrees * 4 countries * 2 pages = 16 URLs)
185
- expect(urls).toHaveLength(8);
186
- expect(urls).toContain('mba/1-year/uk');
187
- expect(urls).toContain('mba/1-year/portugal');
188
- expect(urls).toContain('mba/1-year/usa');
189
- expect(urls).toContain('mba/1-year/netherlands');
190
- expect(urls).toContain('msc/1-year/uk');
191
- expect(urls).toContain('msc/1-year/portugal');
192
- expect(urls).toContain('msc/1-year/usa');
193
- expect(urls).toContain('msc/1-year/netherlands');
194
- expect(urls).not.toContain('mba/2-years/uk');
195
- expect(urls).not.toContain('msc/2-years/uk');
196
- expect(urls).not.toContain('phd/1-year/uk');
197
- expect(urls).not.toContain('mba/2-years/uk');
198
- });
199
- it('Should exclude certain degree-duration-country combinations', async () => {
200
- // Mock to exclude UK combinations
201
- const resultMap = new Map();
202
- // Set up rules to exclude UK for all durations and degrees
203
- for (const countryId of ['30', '21', '56', '82']) {
204
- for (const durationId of ['[360,360]', '[720,720]', '[1080,1080]']) {
205
- for (const degreeId of ['mba', 'msc', 'phd']) {
206
- const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.DURATION}:${durationId}|${FilterKey.DEGREE_TYPE}:${degreeId}`;
207
- // Exclude UK (30) and only allow 1-year MBA/MSC for others
208
- resultMap.set(key, countryId !== '30' && durationId === '[360,360]' && (degreeId === 'mba' || degreeId === 'msc'));
209
- }
210
- }
211
- }
212
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
213
- const urls = await countryDurationDegreePolicy.generateUrls();
214
- // Should include others but not UK (2 degrees * 3 countries = 6 URLs)
215
- expect(urls).toHaveLength(6);
216
- expect(urls).toContain('mba/1-year/portugal');
217
- expect(urls).toContain('mba/1-year/usa');
218
- expect(urls).toContain('mba/1-year/netherlands');
219
- expect(urls).toContain('msc/1-year/portugal');
220
- expect(urls).toContain('msc/1-year/usa');
221
- expect(urls).toContain('msc/1-year/netherlands');
222
- expect(urls).not.toContain('mba/1-year/uk');
223
- expect(urls).not.toContain('msc/1-year/uk');
224
- });
225
- it('Should exclude all URLs when all checks fail', async () => {
226
- // Create a map that returns false for all combinations
227
- const resultMap = new Map();
228
- // Set all combinations to fail
229
- for (const countryId of ['30', '21', '56', '82']) {
230
- for (const durationId of ['[360,360]', '[720,720]', '[1080,1080]']) {
231
- for (const degreeId of ['mba', 'msc', 'phd']) {
232
- const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.DURATION}:${durationId}|${FilterKey.DEGREE_TYPE}:${degreeId}`;
233
- resultMap.set(key, false);
234
- }
235
- }
236
- }
237
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap, false);
238
- const urls = await countryDurationDegreePolicy.generateUrls();
239
- // Should include no URLs
240
- expect(urls).toHaveLength(0);
241
- });
242
- it('Should handle empty fragments arrays', async () => {
243
- // Mock the CountryPresenter to return empty fragments
244
- CountryPresenter.getInstance.mockReturnValueOnce({
245
- getFragments: vi.fn().mockReturnValue([])
246
- });
247
- sitemapDependenciesHelper.mockCheckRulesForSitemap();
248
- const urls = await countryDurationDegreePolicy.generateUrls();
249
- // Should return empty array
250
- expect(urls).toHaveLength(0);
251
- });
252
- it('Should handle large number of combinations efficiently', async () => {
253
- // Generate a smaller set of countries (10), durations (3) and degree types (3)
254
- const largeCountrySet = Array.from({ length: 10 }, (_, index) => ({
255
- id: `${1000 + index}`,
256
- path: `country-${1000 + index}`
257
- }));
258
- const largeDurationSet = Array.from({ length: 3 }, (_, index) => ({
259
- id: `duration-${index}`,
260
- path: `duration-type-${index}`
261
- }));
262
- const largeDegreeSet = Array.from({ length: 3 }, (_, index) => ({
263
- id: `degree-${index}`,
264
- path: `degree-type-${index}`
265
- }));
266
- // Mock the presenters to return large sets
267
- CountryPresenter.getInstance.mockReturnValueOnce({
268
- getFragments: vi.fn().mockReturnValue(largeCountrySet)
269
- });
270
- DurationPresenter.getInstance.mockReturnValueOnce({
271
- getFragments: vi.fn().mockReturnValue(largeDurationSet)
272
- });
273
- DegreePresenter.getInstance.mockReturnValueOnce({
274
- getFragments: vi.fn().mockReturnValue(largeDegreeSet)
275
- });
276
- // Mock to allow only specific combinations
277
- // Only allow countries divisible by 2, duration index 0, and degree index 0 or 1
278
- const resultMap = new Map();
279
- for (let c = 0; c < largeCountrySet.length; c++) {
280
- for (let d = 0; d < largeDurationSet.length; d++) {
281
- for (let g = 0; g < largeDegreeSet.length; g++) {
282
- const countryId = largeCountrySet[c].id;
283
- const durationId = largeDurationSet[d].id;
284
- const degreeId = largeDegreeSet[g].id;
285
- const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.DURATION}:${durationId}|${FilterKey.DEGREE_TYPE}:${degreeId}`;
286
- // Only include countries where index is divisible by 2, duration index 0, and degree index 0 or 1
287
- resultMap.set(key, c % 2 === 0 && d === 0 && (g === 0 || g === 1));
288
- }
289
- }
290
- }
291
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
292
- const urls = await countryDurationDegreePolicy.generateUrls();
293
- // Should generate 5 countries (10/2) * 1 duration type * 2 degree types * 2 pages = 20 URLs
294
- expect(urls).toHaveLength(10);
295
- // Test some specific combinations
296
- expect(urls).toContain('degree-type-0/duration-type-0/country-1000'); // First valid country, first degree
297
- expect(urls).toContain('degree-type-1/duration-type-0/country-1000'); // First valid country, second degree
298
- expect(urls).toContain('degree-type-0/duration-type-0/country-1002'); // Another valid country, first degree
299
- expect(urls).not.toContain('degree-type-0/duration-type-0/country-1001'); // Invalid country (not divisible by 2)
300
- expect(urls).not.toContain('degree-type-2/duration-type-0/country-1000'); // Invalid degree
301
- expect(urls).not.toContain('degree-type-0/duration-type-1/country-1000'); // Invalid duration
302
- });
303
- });
304
- });
@@ -1,260 +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 { CountryEducationalForm } from '@/programmes/policies/CountryEducationalForm';
5
- import { PortalType } from '@studyportals/domain-client';
6
- import { SitemapDependencies } from '../utils/SitemapDependencies.util.mjs';
7
- import { CountryPresenter } from '@/presenters/CountryPresenter';
8
- import { EducationalFormPresenter } from '@/presenters/EducationalFormPresenter';
9
- describe('Policy:CountryEducationalForm', () => {
10
- describe('shouldIndex', () => {
11
- let searchDependenciesHelper;
12
- let countryEducationalFormPolicy;
13
- beforeEach(() => {
14
- searchDependenciesHelper = new SearchDependencies();
15
- countryEducationalFormPolicy = new CountryEducationalForm(searchDependenciesHelper.dependencies);
16
- searchDependenciesHelper.setResultsCount(10);
17
- searchDependenciesHelper.setPageNumber(1);
18
- searchDependenciesHelper.setPortalType(PortalType.SHORT);
19
- });
20
- it('Should return true when all conditions are met', async () => {
21
- const countryId = '30'; // UK
22
- const educationalForm = 'academic';
23
- searchDependenciesHelper.setFilterKeyValues(new Map([
24
- [FilterKey.COUNTRY, [countryId]],
25
- [FilterKey.EDUCATIONAL_FORM, [educationalForm]]
26
- ]));
27
- const result = await countryEducationalFormPolicy.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 educationalForm = 'academic';
34
- searchDependenciesHelper.setFilterKeyValues(new Map([
35
- [FilterKey.COUNTRY, [firstCountryId, secondCountryId]],
36
- [FilterKey.EDUCATIONAL_FORM, [educationalForm]]
37
- ]));
38
- const result = await countryEducationalFormPolicy.shouldIndex();
39
- expect(result).toBe(false);
40
- });
41
- it('Should return false when multiple educational form values are selected', async () => {
42
- const countryId = '30'; // UK
43
- const firstEducationalForm = 'academic';
44
- const secondEducationalForm = 'semester';
45
- searchDependenciesHelper.setFilterKeyValues(new Map([
46
- [FilterKey.COUNTRY, [countryId]],
47
- [FilterKey.DURATION, [firstEducationalForm, secondEducationalForm]]
48
- ]));
49
- const result = await countryEducationalFormPolicy.shouldIndex();
50
- expect(result).toBe(false);
51
- });
52
- it('Should return false when no educational form values are selected', async () => {
53
- const countryId = '30'; // UK
54
- searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.COUNTRY, [countryId]]]));
55
- const result = await countryEducationalFormPolicy.shouldIndex();
56
- expect(result).toBe(false);
57
- });
58
- it('Should return false when no countries are selected', async () => {
59
- const educationalForm = 'academic';
60
- searchDependenciesHelper.setFilterKeyValues(new Map([[FilterKey.EDUCATIONAL_FORM, [educationalForm]]]));
61
- const result = await countryEducationalFormPolicy.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 educationalForm = 'academic';
67
- const disciplineId = '54'; // Agriculture & Forestry
68
- searchDependenciesHelper.setFilterKeyValues(new Map([
69
- [FilterKey.COUNTRY, [countryId]],
70
- [FilterKey.EDUCATIONAL_FORM, [educationalForm]],
71
- [FilterKey.DISCIPLINES, [disciplineId]]
72
- ]));
73
- const result = await countryEducationalFormPolicy.shouldIndex();
74
- expect(result).toBe(false);
75
- });
76
- it('Should return false when educational form is not indexable (i.e. Winter School)', async () => {
77
- const countryId = '30'; // UK
78
- const educationalForm = 'winter_school';
79
- searchDependenciesHelper.setFilterKeyValues(new Map([
80
- [FilterKey.COUNTRY, [countryId]],
81
- [FilterKey.EDUCATIONAL_FORM, [educationalForm]]
82
- ]));
83
- const result = await countryEducationalFormPolicy.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 educationalForm = 'academic';
89
- searchDependenciesHelper.setResultsCount(6);
90
- searchDependenciesHelper.setFilterKeyValues(new Map([
91
- [FilterKey.COUNTRY, [countryId]],
92
- [FilterKey.EDUCATIONAL_FORM, [educationalForm]]
93
- ]));
94
- const result = await countryEducationalFormPolicy.shouldIndex();
95
- expect(result).toBe(false);
96
- });
97
- it('Should return false when page number is higher than 2', async () => {
98
- const countryId = '30'; // UK
99
- const educationalForm = 'academic';
100
- searchDependenciesHelper.setPageNumber(3);
101
- searchDependenciesHelper.setFilterKeyValues(new Map([
102
- [FilterKey.COUNTRY, [countryId]],
103
- [FilterKey.EDUCATIONAL_FORM, [educationalForm]]
104
- ]));
105
- const result = await countryEducationalFormPolicy.shouldIndex();
106
- expect(result).toBe(false);
107
- });
108
- it('Should return false when portal is distance learning', async () => {
109
- const countryId = '30'; // UK
110
- const educationalForm = 'academic';
111
- searchDependenciesHelper.setPortalType(PortalType.DISTANCE_LEARNING);
112
- searchDependenciesHelper.setFilterKeyValues(new Map([
113
- [FilterKey.COUNTRY, [countryId]],
114
- [FilterKey.EDUCATIONAL_FORM, [educationalForm]]
115
- ]));
116
- const result = await countryEducationalFormPolicy.shouldIndex();
117
- expect(result).toBe(false);
118
- });
119
- });
120
- describe('generateUrls', () => {
121
- let sitemapDependenciesHelper;
122
- let countryEducationalFormPolicy;
123
- beforeEach(() => {
124
- sitemapDependenciesHelper = new SitemapDependencies();
125
- sitemapDependenciesHelper.setProgrammeCount(10); // More than 7 programs
126
- countryEducationalFormPolicy = new CountryEducationalForm(sitemapDependenciesHelper.dependencies);
127
- CountryPresenter.getInstance = vi.fn().mockReturnValue({
128
- getFragments: vi.fn().mockReturnValue([
129
- { id: '30', path: 'uk' },
130
- { id: '21', path: 'portugal' },
131
- { id: '56', path: 'usa' },
132
- { id: '82', path: 'netherlands' }
133
- ])
134
- });
135
- EducationalFormPresenter.getInstance = vi.fn().mockReturnValue({
136
- getFragments: vi.fn().mockReturnValue([
137
- { id: 'academic', path: 'academic-programmes' },
138
- { id: 'semester', path: 'semester-programmes' },
139
- { id: 'winter_school', path: 'winter-school-programmes' },
140
- { id: 'summer_school', path: 'summer-school-programmes' }
141
- ])
142
- });
143
- });
144
- afterEach(() => {
145
- sitemapDependenciesHelper.resetMocks();
146
- });
147
- it('Should generate URLs for all valid country-form combinations', async () => {
148
- // Mock the checkRulesForSitemap to exclude winter_school
149
- const resultMap = new Map();
150
- // Set rules to exclude winter_school (as per shouldIndex test)
151
- for (const countryId of ['30', '21', '56', '82']) {
152
- for (const formId of ['academic', 'semester', 'winter_school', 'summer_school']) {
153
- const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.EDUCATIONAL_FORM}:${formId}`;
154
- resultMap.set(key, formId !== 'winter_school');
155
- }
156
- }
157
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
158
- // Call the method via reflection since it's protected
159
- const urls = await countryEducationalFormPolicy.generateUrls();
160
- // Verify winter_school is excluded (3 forms * 4 countries * 2 pages = 24 URLs)
161
- expect(urls).toHaveLength(12);
162
- expect(urls).toContain('uk/academic-programmes');
163
- expect(urls).toContain('uk/semester-programmes');
164
- expect(urls).toContain('uk/summer-school-programmes');
165
- expect(urls).toContain('portugal/academic-programmes');
166
- expect(urls).toContain('usa/academic-programmes');
167
- expect(urls).toContain('netherlands/academic-programmes');
168
- expect(urls).not.toContain('uk/winter-school-programmes');
169
- expect(urls).not.toContain('portugal/winter-school-programmes');
170
- });
171
- it('Should exclude certain country-form combinations', async () => {
172
- // Mock to exclude UK combinations
173
- const resultMap = new Map();
174
- // Set up rules to exclude UK for all forms
175
- for (const countryId of ['30', '21', '56', '82']) {
176
- for (const formId of ['academic', 'semester', 'winter_school', 'summer_school']) {
177
- const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.EDUCATIONAL_FORM}:${formId}`;
178
- // Exclude UK (30) and winter_school
179
- resultMap.set(key, countryId !== '30' && formId !== 'winter_school');
180
- }
181
- }
182
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
183
- const urls = await countryEducationalFormPolicy.generateUrls();
184
- // Should include others but not UK (3 forms * 3 countries * 2 pages = 18 URLs)
185
- expect(urls).toHaveLength(9);
186
- expect(urls).toContain('portugal/academic-programmes');
187
- expect(urls).toContain('usa/academic-programmes');
188
- expect(urls).toContain('netherlands/academic-programmes');
189
- expect(urls).not.toContain('uk/academic-programmes');
190
- expect(urls).not.toContain('uk/semester-programmes');
191
- expect(urls).not.toContain('portugal/winter-school-programmes');
192
- });
193
- it('Should exclude all URLs when all checks fail', async () => {
194
- // Create a map that returns false for all combinations
195
- const resultMap = new Map();
196
- // Set all combinations to fail
197
- for (const countryId of ['30', '21', '56', '82']) {
198
- for (const formId of ['academic', 'semester', 'winter_school', 'summer_school']) {
199
- const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.EDUCATIONAL_FORM}:${formId}`;
200
- resultMap.set(key, false);
201
- }
202
- }
203
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap, false);
204
- const urls = await countryEducationalFormPolicy.generateUrls();
205
- // Should include no URLs
206
- expect(urls).toHaveLength(0);
207
- });
208
- it('Should handle empty fragments arrays', async () => {
209
- // Mock the CountryPresenter to return empty fragments
210
- CountryPresenter.getInstance.mockReturnValueOnce({
211
- getFragments: vi.fn().mockReturnValue([])
212
- });
213
- sitemapDependenciesHelper.mockCheckRulesForSitemap();
214
- const urls = await countryEducationalFormPolicy.generateUrls();
215
- // Should return empty array
216
- expect(urls).toHaveLength(0);
217
- });
218
- it('Should handle large number of combinations efficiently', async () => {
219
- // Generate a larger set of countries (10) and educational forms (5)
220
- const largeCountrySet = Array.from({ length: 10 }, (_, index) => ({
221
- id: `${1000 + index}`,
222
- path: `country-${1000 + index}`
223
- }));
224
- const largeFormSet = Array.from({ length: 5 }, (_, index) => ({
225
- id: `form-${index}`,
226
- path: `educational-form-${index}`
227
- }));
228
- // Mock the presenters to return large sets
229
- CountryPresenter.getInstance.mockReturnValueOnce({
230
- getFragments: vi.fn().mockReturnValue(largeCountrySet)
231
- });
232
- EducationalFormPresenter.getInstance.mockReturnValueOnce({
233
- getFragments: vi.fn().mockReturnValue(largeFormSet)
234
- });
235
- // Mock to allow only specific combinations
236
- // Only allow countries divisible by 2, and forms with odd indices
237
- const resultMap = new Map();
238
- for (let c = 0; c < largeCountrySet.length; c++) {
239
- for (let f = 0; f < largeFormSet.length; f++) {
240
- const countryId = largeCountrySet[c].id;
241
- const formId = largeFormSet[f].id;
242
- const key = `${FilterKey.COUNTRY}:${countryId}|${FilterKey.EDUCATIONAL_FORM}:${formId}`;
243
- // Only include countries where index is divisible by 2, and form indices that are odd
244
- resultMap.set(key, c % 2 === 0 && f % 2 === 1);
245
- }
246
- }
247
- sitemapDependenciesHelper.mockCheckRulesForSitemap(resultMap);
248
- const urls = await countryEducationalFormPolicy.generateUrls();
249
- // Should generate 5 countries (10/2) * 2 forms (5/2 rounded down + ignore index 0) * 2 pages = 20 URLs
250
- expect(urls).toHaveLength(10);
251
- // Test some specific combinations
252
- expect(urls).toContain('country-1000/educational-form-1'); // First valid country, first valid form
253
- expect(urls).toContain('country-1000/educational-form-3'); // First valid country, second valid form
254
- expect(urls).toContain('country-1002/educational-form-1'); // Another valid country, first valid form
255
- expect(urls).not.toContain('country-1001/educational-form-1'); // Invalid country (not divisible by 2)
256
- expect(urls).not.toContain('country-1000/educational-form-0'); // Invalid form (not odd index)
257
- expect(urls).not.toContain('country-1000/educational-form-2'); // Invalid form (not odd index)
258
- });
259
- });
260
- });