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