@internetarchive/collection-browser 2.4.1-e2e-test-2 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +12 -12
  6. package/dist/index.js +12 -12
  7. package/dist/src/app-root.d.ts +91 -91
  8. package/dist/src/app-root.js +487 -487
  9. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  10. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  11. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  12. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  13. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  14. package/dist/src/assets/img/icons/chevron.js +2 -2
  15. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  16. package/dist/src/assets/img/icons/contract.js +2 -2
  17. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  18. package/dist/src/assets/img/icons/empty-query.js +2 -2
  19. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  20. package/dist/src/assets/img/icons/expand.js +2 -2
  21. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  23. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye.js +2 -2
  25. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  26. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  27. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  28. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  29. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  30. package/dist/src/assets/img/icons/login-required.js +2 -2
  31. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  59. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  60. package/dist/src/assets/img/icons/null-result.js +2 -2
  61. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  62. package/dist/src/assets/img/icons/restricted.js +2 -2
  63. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  64. package/dist/src/assets/img/icons/reviews.js +2 -2
  65. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  66. package/dist/src/assets/img/icons/upload.js +2 -2
  67. package/dist/src/assets/img/icons/views.d.ts +1 -1
  68. package/dist/src/assets/img/icons/views.js +2 -2
  69. package/dist/src/circular-activity-indicator.d.ts +5 -5
  70. package/dist/src/circular-activity-indicator.js +17 -17
  71. package/dist/src/collection-browser.d.ts +564 -466
  72. package/dist/src/collection-browser.js +1568 -1479
  73. package/dist/src/collection-browser.js.map +1 -1
  74. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  75. package/dist/src/collection-facets/facet-row.js +117 -116
  76. package/dist/src/collection-facets/facet-row.js.map +1 -1
  77. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  78. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  79. package/dist/src/collection-facets/facets-template.d.ts +13 -17
  80. package/dist/src/collection-facets/facets-template.js +46 -144
  81. package/dist/src/collection-facets/facets-template.js.map +1 -1
  82. package/dist/src/collection-facets/more-facets-content.d.ts +106 -74
  83. package/dist/src/collection-facets/more-facets-content.js +424 -377
  84. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  85. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  86. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  87. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  88. package/dist/src/collection-facets/toggle-switch.js +94 -94
  89. package/dist/src/collection-facets.d.ts +103 -103
  90. package/dist/src/collection-facets.js +514 -514
  91. package/dist/src/collection-facets.js.map +1 -1
  92. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +241 -241
  93. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  94. package/dist/src/data-source/collection-browser-data-source.d.ts +378 -378
  95. package/dist/src/data-source/collection-browser-data-source.js +985 -985
  96. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -43
  97. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  98. package/dist/src/data-source/models.d.ts +28 -28
  99. package/dist/src/data-source/models.js +8 -8
  100. package/dist/src/empty-placeholder.d.ts +23 -23
  101. package/dist/src/empty-placeholder.js +74 -74
  102. package/dist/src/expanded-date-picker.d.ts +43 -43
  103. package/dist/src/expanded-date-picker.js +109 -109
  104. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  105. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  106. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  107. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  108. package/dist/src/manage/manage-bar.d.ts +30 -30
  109. package/dist/src/manage/manage-bar.js +61 -61
  110. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  111. package/dist/src/mediatype/mediatype-config.js +91 -91
  112. package/dist/src/models.d.ts +209 -209
  113. package/dist/src/models.js +381 -381
  114. package/dist/src/restoration-state-handler.d.ts +70 -70
  115. package/dist/src/restoration-state-handler.js +357 -357
  116. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  117. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  118. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  119. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  120. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  121. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  122. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  123. package/dist/src/sort-filter-bar/img/list.js +2 -2
  124. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  125. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  126. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  127. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  128. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  129. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  130. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  131. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  132. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  133. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  134. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +222 -222
  135. package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -696
  136. package/dist/src/styles/ia-button.d.ts +2 -2
  137. package/dist/src/styles/ia-button.js +16 -16
  138. package/dist/src/styles/item-image-styles.d.ts +8 -8
  139. package/dist/src/styles/item-image-styles.js +9 -9
  140. package/dist/src/styles/sr-only.d.ts +1 -1
  141. package/dist/src/styles/sr-only.js +2 -2
  142. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  143. package/dist/src/tiles/base-tile-component.js +63 -63
  144. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  145. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  146. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  147. package/dist/src/tiles/grid/account-tile.js +72 -72
  148. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  149. package/dist/src/tiles/grid/collection-tile.js +80 -80
  150. package/dist/src/tiles/grid/item-tile.d.ts +30 -30
  151. package/dist/src/tiles/grid/item-tile.js +149 -149
  152. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  153. package/dist/src/tiles/grid/search-tile.js +51 -51
  154. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  155. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  156. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  157. package/dist/src/tiles/grid/tile-stats.js +53 -53
  158. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  159. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  160. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  161. package/dist/src/tiles/hover/tile-hover-pane.js +69 -69
  162. package/dist/src/tiles/image-block.d.ts +17 -17
  163. package/dist/src/tiles/image-block.js +73 -73
  164. package/dist/src/tiles/item-image.d.ts +39 -39
  165. package/dist/src/tiles/item-image.js +154 -154
  166. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  167. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  168. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  169. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  170. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  171. package/dist/src/tiles/list/tile-list.js +315 -315
  172. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  173. package/dist/src/tiles/mediatype-icon.js +47 -47
  174. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  175. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  176. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  177. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  178. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  179. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  180. package/dist/src/tiles/review-block.d.ts +12 -12
  181. package/dist/src/tiles/review-block.js +56 -56
  182. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  183. package/dist/src/tiles/text-snippet-block.js +73 -73
  184. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  185. package/dist/src/tiles/tile-dispatcher.js +229 -229
  186. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  187. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  188. package/dist/src/utils/analytics-events.d.ts +28 -28
  189. package/dist/src/utils/analytics-events.js +30 -30
  190. package/dist/src/utils/array-equals.d.ts +4 -4
  191. package/dist/src/utils/array-equals.js +10 -10
  192. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  193. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  194. package/dist/src/utils/facet-utils.d.ts +83 -0
  195. package/dist/src/utils/facet-utils.js +146 -0
  196. package/dist/src/utils/facet-utils.js.map +1 -0
  197. package/dist/src/utils/format-count.d.ts +7 -7
  198. package/dist/src/utils/format-count.js +76 -76
  199. package/dist/src/utils/format-date.d.ts +2 -2
  200. package/dist/src/utils/format-date.js +25 -25
  201. package/dist/src/utils/format-unit-size.d.ts +2 -2
  202. package/dist/src/utils/format-unit-size.js +33 -33
  203. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  204. package/dist/src/utils/local-date-from-utc.js +15 -15
  205. package/dist/src/utils/log.d.ts +7 -7
  206. package/dist/src/utils/log.js +15 -15
  207. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  208. package/dist/src/utils/resolve-mediatype.js +23 -23
  209. package/dist/src/utils/sha1.d.ts +2 -2
  210. package/dist/src/utils/sha1.js +8 -8
  211. package/dist/test/collection-browser.test.d.ts +1 -1
  212. package/dist/test/collection-browser.test.js +1294 -1293
  213. package/dist/test/collection-browser.test.js.map +1 -1
  214. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  215. package/dist/test/collection-facets/facet-row.test.js +227 -203
  216. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  217. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  218. package/dist/test/collection-facets/facets-template.test.js +91 -114
  219. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  220. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  221. package/dist/test/collection-facets/more-facets-content.test.js +150 -141
  222. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  223. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  224. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  225. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  226. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  227. package/dist/test/collection-facets.test.d.ts +2 -2
  228. package/dist/test/collection-facets.test.js +652 -652
  229. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  230. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  231. package/dist/test/empty-placeholder.test.d.ts +1 -1
  232. package/dist/test/empty-placeholder.test.js +63 -63
  233. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  234. package/dist/test/expanded-date-picker.test.js +95 -95
  235. package/dist/test/icon-overlay.test.d.ts +1 -1
  236. package/dist/test/icon-overlay.test.js +24 -24
  237. package/dist/test/image-block.test.d.ts +1 -1
  238. package/dist/test/image-block.test.js +48 -48
  239. package/dist/test/item-image.test.d.ts +1 -1
  240. package/dist/test/item-image.test.js +85 -85
  241. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  242. package/dist/test/manage/manage-bar.test.js +81 -81
  243. package/dist/test/mediatype-config.test.d.ts +1 -1
  244. package/dist/test/mediatype-config.test.js +16 -16
  245. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  246. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  247. package/dist/test/mocks/mock-search-responses.d.ts +25 -24
  248. package/dist/test/mocks/mock-search-responses.js +942 -860
  249. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  250. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  251. package/dist/test/mocks/mock-search-service.js +54 -53
  252. package/dist/test/mocks/mock-search-service.js.map +1 -1
  253. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  254. package/dist/test/restoration-state-handler.test.js +270 -270
  255. package/dist/test/review-block.test.d.ts +1 -1
  256. package/dist/test/review-block.test.js +44 -44
  257. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  258. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  259. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  260. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  261. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  262. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +426 -426
  263. package/dist/test/text-overlay.test.d.ts +1 -1
  264. package/dist/test/text-overlay.test.js +48 -48
  265. package/dist/test/text-snippet-block.test.d.ts +1 -1
  266. package/dist/test/text-snippet-block.test.js +57 -57
  267. package/dist/test/tile-stats.test.d.ts +1 -1
  268. package/dist/test/tile-stats.test.js +81 -81
  269. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  270. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  271. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  272. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  273. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  274. package/dist/test/tiles/grid/item-tile.test.js +312 -312
  275. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  276. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  277. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  278. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  279. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  280. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  281. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  282. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  283. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  284. package/dist/test/tiles/list/tile-list.test.js +297 -297
  285. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  286. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  287. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  288. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  289. package/dist/test/utils/array-equals.test.d.ts +1 -1
  290. package/dist/test/utils/array-equals.test.js +26 -26
  291. package/dist/test/utils/format-count.test.d.ts +1 -1
  292. package/dist/test/utils/format-count.test.js +23 -23
  293. package/dist/test/utils/format-date.test.d.ts +1 -1
  294. package/dist/test/utils/format-date.test.js +17 -17
  295. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  296. package/dist/test/utils/format-unit-size.test.js +17 -17
  297. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  298. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  299. package/local.archive.org.cert +86 -86
  300. package/local.archive.org.key +27 -27
  301. package/package.json +1 -1
  302. package/renovate.json +6 -6
  303. package/src/collection-browser.ts +106 -19
  304. package/src/collection-facets/facet-row.ts +5 -4
  305. package/src/collection-facets/facets-template.ts +10 -114
  306. package/src/collection-facets/more-facets-content.ts +219 -144
  307. package/src/collection-facets.ts +24 -12
  308. package/src/utils/facet-utils.ts +181 -0
  309. package/test/collection-browser.test.ts +1 -0
  310. package/test/collection-facets/facet-row.test.ts +30 -6
  311. package/test/collection-facets/facets-template.test.ts +6 -32
  312. package/test/collection-facets/more-facets-content.test.ts +46 -35
  313. package/test/mocks/mock-search-responses.ts +86 -0
  314. package/test/mocks/mock-search-service.ts +2 -0
  315. package/web-dev-server.config.mjs +30 -30
  316. package/web-test-runner.config.mjs +41 -41
@@ -1,124 +1,101 @@
1
- import { expect, fixture } from '@open-wc/testing';
2
- import sinon from 'sinon';
3
- import { html } from 'lit';
4
- import '../../src/collection-facets/facets-template';
5
- const facetGroup = {
6
- title: 'Media Type',
7
- key: 'mediatype',
8
- buckets: [
9
- { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
10
- { displayText: 'movies', key: 'movies', count: 901, state: 'none' },
11
- { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
12
- { displayText: 'data', key: 'data', count: 230, state: 'none' },
13
- { displayText: 'web', key: 'web', count: 453, state: 'none' },
14
- ],
15
- };
16
- describe('Render facets', () => {
17
- it('should render more facets template', async () => {
18
- var _a;
19
- const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
20
- await el.updateComplete;
21
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row')).to.exist;
22
- });
23
- it('facets render on page', async () => {
24
- var _a;
25
- const el = await fixture(html `<facets-template
26
- .facetGroup=${facetGroup}
27
- .renderOn=${'page'}
28
- ></facets-template>`);
29
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-on-page')).to.exist;
30
- });
31
- it('facets render on modal', async () => {
32
- var _a;
33
- const el = await fixture(html `<facets-template
34
- .facetGroup=${facetGroup}
35
- .renderOn=${'modal'}
36
- ></facets-template>`);
37
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-on-modal')).to.exist;
38
- });
39
- it('applies correct bucket values to facet row', async () => {
40
- var _a;
41
- const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
42
- const facetRows = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('facet-row');
43
- expect(facetRows === null || facetRows === void 0 ? void 0 : facetRows.length).to.equal(facetGroup.buckets.length);
44
- facetRows === null || facetRows === void 0 ? void 0 : facetRows.forEach((elmt, i) => {
45
- const facetRow = elmt;
46
- expect(facetRow).to.exist;
47
- expect(facetRow.bucket).to.equal(facetGroup.buckets[i]);
48
- expect(facetRow.facetType).to.equal(facetGroup.key);
49
- });
50
- });
51
- it('emits facet click and change events when a facet is selected/deselected', async () => {
52
- var _a, _b, _c, _d;
53
- const facetClickSpy = sinon.spy();
54
- const facetChangeSpy = sinon.spy();
1
+ import { expect, fixture } from '@open-wc/testing';
2
+ import sinon from 'sinon';
3
+ import { html } from 'lit';
4
+ import '../../src/collection-facets/facets-template';
5
+ const facetGroup = {
6
+ title: 'Media Type',
7
+ key: 'mediatype',
8
+ buckets: [
9
+ { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
10
+ { displayText: 'movies', key: 'movies', count: 901, state: 'none' },
11
+ { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
12
+ { displayText: 'data', key: 'data', count: 230, state: 'none' },
13
+ { displayText: 'web', key: 'web', count: 453, state: 'none' },
14
+ ],
15
+ };
16
+ describe('Render facets', () => {
17
+ it('should render more facets template', async () => {
18
+ var _a;
19
+ const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
20
+ await el.updateComplete;
21
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row')).to.exist;
22
+ });
23
+ it('facets template renders facet rows', async () => {
24
+ var _a;
25
+ const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
26
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facet-rows')).to.exist;
27
+ });
28
+ it('applies correct bucket values to facet row', async () => {
29
+ var _a;
30
+ const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
31
+ const facetRows = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('facet-row');
32
+ expect(facetRows === null || facetRows === void 0 ? void 0 : facetRows.length).to.equal(facetGroup.buckets.length);
33
+ facetRows === null || facetRows === void 0 ? void 0 : facetRows.forEach((elmt, i) => {
34
+ const facetRow = elmt;
35
+ expect(facetRow).to.exist;
36
+ expect(facetRow.bucket).to.equal(facetGroup.buckets[i]);
37
+ expect(facetRow.facetType).to.equal(facetGroup.key);
38
+ });
39
+ });
40
+ it('emits facet click event when a facet is selected/deselected', async () => {
41
+ var _a, _b, _c, _d;
42
+ const facetClickSpy = sinon.spy();
55
43
  const el = await fixture(html `<facets-template
56
44
  .facetGroup=${facetGroup}
57
45
  @facetClick=${facetClickSpy}
58
- @selectedFacetsChanged=${facetChangeSpy}
59
- ></facets-template>`);
60
- const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
61
- expect(facetRow).to.exist;
62
- const facetSelectCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.select-facet-checkbox');
63
- expect(facetSelectCheck).to.exist;
64
- facetSelectCheck.click();
65
- expect(facetClickSpy.callCount).to.equal(1);
66
- expect(facetChangeSpy.callCount).to.equal(1);
67
- expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('selected');
68
- facetSelectCheck.click();
69
- expect(facetClickSpy.callCount).to.equal(2);
70
- expect(facetChangeSpy.callCount).to.equal(2);
71
- expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('none');
72
- });
73
- it('emits facet click and change events when a facet is negated/un-negated', async () => {
74
- var _a, _b, _c, _d;
75
- const facetClickSpy = sinon.spy();
76
- const facetChangeSpy = sinon.spy();
46
+ ></facets-template>`);
47
+ const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
48
+ expect(facetRow).to.exist;
49
+ const facetSelectCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.select-facet-checkbox');
50
+ expect(facetSelectCheck).to.exist;
51
+ facetSelectCheck.click();
52
+ expect(facetClickSpy.callCount).to.equal(1);
53
+ expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('selected');
54
+ facetSelectCheck.click();
55
+ expect(facetClickSpy.callCount).to.equal(2);
56
+ expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('none');
57
+ });
58
+ it('emits facet click event when a facet is negated/un-negated', async () => {
59
+ var _a, _b, _c, _d;
60
+ const facetClickSpy = sinon.spy();
77
61
  const el = await fixture(html `<facets-template
78
62
  .facetGroup=${facetGroup}
79
63
  @facetClick=${facetClickSpy}
80
- @selectedFacetsChanged=${facetChangeSpy}
81
- ></facets-template>`);
82
- const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
83
- expect(facetRow).to.exist;
84
- const facetNegateCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.hide-facet-checkbox');
85
- expect(facetNegateCheck).to.exist;
86
- facetNegateCheck.click();
87
- expect(facetClickSpy.callCount).to.equal(1);
88
- expect(facetChangeSpy.callCount).to.equal(1);
89
- expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('hidden');
90
- facetNegateCheck.click();
91
- expect(facetClickSpy.callCount).to.equal(2);
92
- expect(facetChangeSpy.callCount).to.equal(2);
93
- expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('none');
94
- });
95
- it('emits facet click and change events when a pre-selected facet is deselected', async () => {
96
- var _a, _b, _c, _d;
97
- const facetClickSpy = sinon.spy();
98
- const facetChangeSpy = sinon.spy();
99
- const facetGroupWithSelection = { ...facetGroup };
100
- facetGroupWithSelection.buckets = [
101
- { ...facetGroup.buckets[0], state: 'selected' },
102
- ...facetGroup.buckets.slice(1),
103
- ];
64
+ ></facets-template>`);
65
+ const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
66
+ expect(facetRow).to.exist;
67
+ const facetNegateCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.hide-facet-checkbox');
68
+ expect(facetNegateCheck).to.exist;
69
+ facetNegateCheck.click();
70
+ expect(facetClickSpy.callCount).to.equal(1);
71
+ expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('hidden');
72
+ facetNegateCheck.click();
73
+ expect(facetClickSpy.callCount).to.equal(2);
74
+ expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('none');
75
+ });
76
+ it('emits facet click event when a pre-selected facet is deselected', async () => {
77
+ var _a, _b, _c, _d;
78
+ const facetClickSpy = sinon.spy();
79
+ const facetGroupWithSelection = { ...facetGroup };
80
+ facetGroupWithSelection.buckets = [
81
+ { ...facetGroup.buckets[0], state: 'selected' },
82
+ ...facetGroup.buckets.slice(1),
83
+ ];
104
84
  const el = await fixture(html `<facets-template
105
85
  .facetGroup=${facetGroupWithSelection}
106
86
  @facetClick=${facetClickSpy}
107
- @selectedFacetsChanged=${facetChangeSpy}
108
- ></facets-template>`);
109
- const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
110
- expect(facetRow).to.exist;
111
- const facetSelectCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.select-facet-checkbox');
112
- expect(facetSelectCheck).to.exist;
113
- expect(facetSelectCheck.checked).to.be.true;
114
- facetSelectCheck.click();
115
- expect(facetClickSpy.callCount).to.equal(1);
116
- expect(facetChangeSpy.callCount).to.equal(1);
117
- expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('none');
118
- facetSelectCheck.click();
119
- expect(facetClickSpy.callCount).to.equal(2);
120
- expect(facetChangeSpy.callCount).to.equal(2);
121
- expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('selected');
122
- });
123
- });
87
+ ></facets-template>`);
88
+ const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
89
+ expect(facetRow).to.exist;
90
+ const facetSelectCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.select-facet-checkbox');
91
+ expect(facetSelectCheck).to.exist;
92
+ expect(facetSelectCheck.checked).to.be.true;
93
+ facetSelectCheck.click();
94
+ expect(facetClickSpy.callCount).to.equal(1);
95
+ expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('none');
96
+ facetSelectCheck.click();
97
+ expect(facetClickSpy.callCount).to.equal(2);
98
+ expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('selected');
99
+ });
100
+ });
124
101
  //# sourceMappingURL=facets-template.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"facets-template.test.js","sourceRoot":"","sources":["../../../test/collection-facets/facets-template.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport sinon from 'sinon';\nimport { html } from 'lit';\nimport type { FacetsTemplate } from '../../src/collection-facets/facets-template';\nimport '../../src/collection-facets/facets-template';\nimport type { FacetRow } from '../../src/collection-facets/facet-row';\nimport type { FacetGroup } from '../../src/models';\n\nconst facetGroup: FacetGroup = {\n title: 'Media Type',\n key: 'mediatype',\n buckets: [\n { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },\n { displayText: 'movies', key: 'movies', count: 901, state: 'none' },\n { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },\n { displayText: 'data', key: 'data', count: 230, state: 'none' },\n { displayText: 'web', key: 'web', count: 453, state: 'none' },\n ],\n};\n\ndescribe('Render facets', () => {\n it('should render more facets template', async () => {\n const el = await fixture<FacetsTemplate>(\n html`<facets-template .facetGroup=${facetGroup}></facets-template>`\n );\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('facet-row')).to.exist;\n });\n\n it('facets render on page', async () => {\n const el = await fixture<FacetsTemplate>(\n html`<facets-template\n .facetGroup=${facetGroup}\n .renderOn=${'page'}\n ></facets-template>`\n );\n\n expect(el.shadowRoot?.querySelector('.facets-on-page')).to.exist;\n });\n\n it('facets render on modal', async () => {\n const el = await fixture<FacetsTemplate>(\n html`<facets-template\n .facetGroup=${facetGroup}\n .renderOn=${'modal'}\n ></facets-template>`\n );\n\n expect(el.shadowRoot?.querySelector('.facets-on-modal')).to.exist;\n });\n\n it('applies correct bucket values to facet row', async () => {\n const el = await fixture<FacetsTemplate>(\n html`<facets-template .facetGroup=${facetGroup}></facets-template>`\n );\n\n const facetRows = el.shadowRoot?.querySelectorAll('facet-row');\n expect(facetRows?.length).to.equal(facetGroup.buckets.length);\n\n facetRows?.forEach((elmt, i) => {\n const facetRow = elmt as FacetRow;\n expect(facetRow).to.exist;\n expect(facetRow.bucket).to.equal(facetGroup.buckets[i]);\n expect(facetRow.facetType).to.equal(facetGroup.key);\n });\n });\n\n it('emits facet click and change events when a facet is selected/deselected', async () => {\n const facetClickSpy = sinon.spy();\n const facetChangeSpy = sinon.spy();\n const el = await fixture<FacetsTemplate>(\n html`<facets-template\n .facetGroup=${facetGroup}\n @facetClick=${facetClickSpy}\n @selectedFacetsChanged=${facetChangeSpy}\n ></facets-template>`\n );\n\n const facetRow = el.shadowRoot?.querySelector('facet-row') as FacetRow;\n expect(facetRow).to.exist;\n\n const facetSelectCheck = facetRow.shadowRoot?.querySelector(\n '.select-facet-checkbox'\n ) as HTMLInputElement;\n expect(facetSelectCheck).to.exist;\n\n facetSelectCheck.click();\n expect(facetClickSpy.callCount).to.equal(1);\n expect(facetChangeSpy.callCount).to.equal(1);\n expect(facetRow.bucket?.state).to.equal('selected');\n\n facetSelectCheck.click();\n expect(facetClickSpy.callCount).to.equal(2);\n expect(facetChangeSpy.callCount).to.equal(2);\n expect(facetRow.bucket?.state).to.equal('none');\n });\n\n it('emits facet click and change events when a facet is negated/un-negated', async () => {\n const facetClickSpy = sinon.spy();\n const facetChangeSpy = sinon.spy();\n const el = await fixture<FacetsTemplate>(\n html`<facets-template\n .facetGroup=${facetGroup}\n @facetClick=${facetClickSpy}\n @selectedFacetsChanged=${facetChangeSpy}\n ></facets-template>`\n );\n\n const facetRow = el.shadowRoot?.querySelector('facet-row') as FacetRow;\n expect(facetRow).to.exist;\n\n const facetNegateCheck = facetRow.shadowRoot?.querySelector(\n '.hide-facet-checkbox'\n ) as HTMLInputElement;\n expect(facetNegateCheck).to.exist;\n\n facetNegateCheck.click();\n expect(facetClickSpy.callCount).to.equal(1);\n expect(facetChangeSpy.callCount).to.equal(1);\n expect(facetRow.bucket?.state).to.equal('hidden');\n\n facetNegateCheck.click();\n expect(facetClickSpy.callCount).to.equal(2);\n expect(facetChangeSpy.callCount).to.equal(2);\n expect(facetRow.bucket?.state).to.equal('none');\n });\n\n it('emits facet click and change events when a pre-selected facet is deselected', async () => {\n const facetClickSpy = sinon.spy();\n const facetChangeSpy = sinon.spy();\n const facetGroupWithSelection = { ...facetGroup };\n facetGroupWithSelection.buckets = [\n { ...facetGroup.buckets[0], state: 'selected' },\n ...facetGroup.buckets.slice(1),\n ];\n\n const el = await fixture<FacetsTemplate>(\n html`<facets-template\n .facetGroup=${facetGroupWithSelection}\n @facetClick=${facetClickSpy}\n @selectedFacetsChanged=${facetChangeSpy}\n ></facets-template>`\n );\n\n const facetRow = el.shadowRoot?.querySelector('facet-row') as FacetRow;\n expect(facetRow).to.exist;\n\n const facetSelectCheck = facetRow.shadowRoot?.querySelector(\n '.select-facet-checkbox'\n ) as HTMLInputElement;\n expect(facetSelectCheck).to.exist;\n expect(facetSelectCheck.checked).to.be.true;\n\n facetSelectCheck.click();\n expect(facetClickSpy.callCount).to.equal(1);\n expect(facetChangeSpy.callCount).to.equal(1);\n expect(facetRow.bucket?.state).to.equal('none');\n\n facetSelectCheck.click();\n expect(facetClickSpy.callCount).to.equal(2);\n expect(facetChangeSpy.callCount).to.equal(2);\n expect(facetRow.bucket?.state).to.equal('selected');\n });\n});\n"]}
1
+ {"version":3,"file":"facets-template.test.js","sourceRoot":"","sources":["../../../test/collection-facets/facets-template.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport sinon from 'sinon';\nimport { html } from 'lit';\nimport type { FacetsTemplate } from '../../src/collection-facets/facets-template';\nimport '../../src/collection-facets/facets-template';\nimport type { FacetRow } from '../../src/collection-facets/facet-row';\nimport type { FacetGroup } from '../../src/models';\n\nconst facetGroup: FacetGroup = {\n title: 'Media Type',\n key: 'mediatype',\n buckets: [\n { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },\n { displayText: 'movies', key: 'movies', count: 901, state: 'none' },\n { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },\n { displayText: 'data', key: 'data', count: 230, state: 'none' },\n { displayText: 'web', key: 'web', count: 453, state: 'none' },\n ],\n};\n\ndescribe('Render facets', () => {\n it('should render more facets template', async () => {\n const el = await fixture<FacetsTemplate>(\n html`<facets-template .facetGroup=${facetGroup}></facets-template>`\n );\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('facet-row')).to.exist;\n });\n\n it('facets template renders facet rows', async () => {\n const el = await fixture<FacetsTemplate>(\n html`<facets-template .facetGroup=${facetGroup}></facets-template>`\n );\n\n expect(el.shadowRoot?.querySelector('.facet-rows')).to.exist;\n });\n\n it('applies correct bucket values to facet row', async () => {\n const el = await fixture<FacetsTemplate>(\n html`<facets-template .facetGroup=${facetGroup}></facets-template>`\n );\n\n const facetRows = el.shadowRoot?.querySelectorAll('facet-row');\n expect(facetRows?.length).to.equal(facetGroup.buckets.length);\n\n facetRows?.forEach((elmt, i) => {\n const facetRow = elmt as FacetRow;\n expect(facetRow).to.exist;\n expect(facetRow.bucket).to.equal(facetGroup.buckets[i]);\n expect(facetRow.facetType).to.equal(facetGroup.key);\n });\n });\n\n it('emits facet click event when a facet is selected/deselected', async () => {\n const facetClickSpy = sinon.spy();\n const el = await fixture<FacetsTemplate>(\n html`<facets-template\n .facetGroup=${facetGroup}\n @facetClick=${facetClickSpy}\n ></facets-template>`\n );\n\n const facetRow = el.shadowRoot?.querySelector('facet-row') as FacetRow;\n expect(facetRow).to.exist;\n\n const facetSelectCheck = facetRow.shadowRoot?.querySelector(\n '.select-facet-checkbox'\n ) as HTMLInputElement;\n expect(facetSelectCheck).to.exist;\n\n facetSelectCheck.click();\n expect(facetClickSpy.callCount).to.equal(1);\n expect(facetRow.bucket?.state).to.equal('selected');\n\n facetSelectCheck.click();\n expect(facetClickSpy.callCount).to.equal(2);\n expect(facetRow.bucket?.state).to.equal('none');\n });\n\n it('emits facet click event when a facet is negated/un-negated', async () => {\n const facetClickSpy = sinon.spy();\n const el = await fixture<FacetsTemplate>(\n html`<facets-template\n .facetGroup=${facetGroup}\n @facetClick=${facetClickSpy}\n ></facets-template>`\n );\n\n const facetRow = el.shadowRoot?.querySelector('facet-row') as FacetRow;\n expect(facetRow).to.exist;\n\n const facetNegateCheck = facetRow.shadowRoot?.querySelector(\n '.hide-facet-checkbox'\n ) as HTMLInputElement;\n expect(facetNegateCheck).to.exist;\n\n facetNegateCheck.click();\n expect(facetClickSpy.callCount).to.equal(1);\n expect(facetRow.bucket?.state).to.equal('hidden');\n\n facetNegateCheck.click();\n expect(facetClickSpy.callCount).to.equal(2);\n expect(facetRow.bucket?.state).to.equal('none');\n });\n\n it('emits facet click event when a pre-selected facet is deselected', async () => {\n const facetClickSpy = sinon.spy();\n const facetGroupWithSelection = { ...facetGroup };\n facetGroupWithSelection.buckets = [\n { ...facetGroup.buckets[0], state: 'selected' },\n ...facetGroup.buckets.slice(1),\n ];\n\n const el = await fixture<FacetsTemplate>(\n html`<facets-template\n .facetGroup=${facetGroupWithSelection}\n @facetClick=${facetClickSpy}\n ></facets-template>`\n );\n\n const facetRow = el.shadowRoot?.querySelector('facet-row') as FacetRow;\n expect(facetRow).to.exist;\n\n const facetSelectCheck = facetRow.shadowRoot?.querySelector(\n '.select-facet-checkbox'\n ) as HTMLInputElement;\n expect(facetSelectCheck).to.exist;\n expect(facetSelectCheck.checked).to.be.true;\n\n facetSelectCheck.click();\n expect(facetClickSpy.callCount).to.equal(1);\n expect(facetRow.bucket?.state).to.equal('none');\n\n facetSelectCheck.click();\n expect(facetClickSpy.callCount).to.equal(2);\n expect(facetRow.bucket?.state).to.equal('selected');\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../../src/collection-facets/more-facets-content';
1
+ import '../../src/collection-facets/more-facets-content';
@@ -1,161 +1,170 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import { Aggregation } from '@internetarchive/search-service';
5
- import '../../src/collection-facets/more-facets-content';
6
- import { MockSearchService } from '../mocks/mock-search-service';
7
- import { MockAnalyticsHandler } from '../mocks/mock-analytics-handler';
8
- const selectedFacetsGroup = {
9
- title: 'Media Type',
10
- key: 'mediatype',
11
- buckets: [
12
- { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
13
- { displayText: 'movies', key: 'movies', count: 901, state: 'none' },
14
- { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
15
- { displayText: 'data', key: 'data', count: 230, state: 'none' },
16
- { displayText: 'web', key: 'web', count: 453, state: 'none' },
17
- ],
18
- };
19
- const aggregations = {
20
- collection: new Aggregation({
21
- buckets: [
22
- {
23
- key: 'foo',
24
- doc_count: 5,
25
- },
26
- ],
27
- }),
28
- };
29
- describe('More facets content', () => {
30
- it('should render more facets template', async () => {
31
- var _a;
32
- const el = await fixture(html `<more-facets-content></more-facets-content>`);
33
- el.facetsLoading = false;
34
- await el.updateComplete;
35
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-content')).to.exist;
36
- });
37
- it('should render more facets loader template', async () => {
38
- var _a;
39
- const el = await fixture(html `<more-facets-content></more-facets-content>`);
40
- el.facetsLoading = true;
41
- await el.updateComplete;
42
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-loader')).to.exist;
43
- });
44
- it('should render pagination for more facets', async () => {
45
- var _a;
46
- const searchService = new MockSearchService();
1
+ /* eslint-disable import/no-duplicates */
2
+ import { aTimeout, expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../../src/collection-facets/more-facets-content';
5
+ import { MockSearchService } from '../mocks/mock-search-service';
6
+ import { MockAnalyticsHandler } from '../mocks/mock-analytics-handler';
7
+ const selectedFacetsGroup = {
8
+ title: 'Media Type',
9
+ key: 'mediatype',
10
+ buckets: [
11
+ { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
12
+ { displayText: 'movies', key: 'movies', count: 901, state: 'none' },
13
+ { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
14
+ { displayText: 'data', key: 'data', count: 230, state: 'none' },
15
+ { displayText: 'web', key: 'web', count: 453, state: 'none' },
16
+ ],
17
+ };
18
+ const yearSelectedFacets = {
19
+ mediatype: {},
20
+ lending: {},
21
+ year: {
22
+ '2000': { key: '2000', count: 5, state: 'selected' },
23
+ },
24
+ subject: {},
25
+ collection: {},
26
+ creator: {},
27
+ language: {},
28
+ };
29
+ describe('More facets content', () => {
30
+ it('should render more facets template', async () => {
31
+ var _a;
32
+ const el = await fixture(html `<more-facets-content></more-facets-content>`);
33
+ el.facetsLoading = false;
34
+ await el.updateComplete;
35
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-content')).to.exist;
36
+ });
37
+ it('should render more facets loader template', async () => {
38
+ var _a;
39
+ const el = await fixture(html `<more-facets-content></more-facets-content>`);
40
+ el.facetsLoading = true;
41
+ await el.updateComplete;
42
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-loader')).to.exist;
43
+ });
44
+ it('should render pagination for more facets', async () => {
45
+ var _a;
46
+ const searchService = new MockSearchService();
47
47
  const el = await fixture(html `<more-facets-content
48
48
  .searchService=${searchService}
49
- ></more-facets-content>`);
50
- el.facetKey = 'mediatype';
51
- el.facetsLoading = false;
52
- el.paginationSize = 6;
53
- await el.updateComplete;
54
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('more-facets-pagination')).to.exist;
55
- });
56
- it('query for more facets content using search service', async () => {
57
- var _a;
58
- const searchService = new MockSearchService();
49
+ ></more-facets-content>`);
50
+ el.facetKey = 'year';
51
+ el.query = 'more-facets'; // Produces a response with 40+ aggregations for multiple pages
52
+ await el.updateComplete;
53
+ await aTimeout(50); // Give it a moment to perform the (mock) search query after the initial update
54
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('more-facets-pagination')).to.exist;
55
+ });
56
+ it('query for more facets content using search service', async () => {
57
+ var _a;
58
+ const searchService = new MockSearchService();
59
59
  const el = await fixture(html `<more-facets-content
60
60
  .searchService=${searchService}
61
- ></more-facets-content>`);
62
- el.facetKey = 'collection';
63
- el.query = 'collection-aggregations';
64
- await el.updateComplete;
65
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('collection-aggregations');
66
- });
67
- it('queries for more facets using search service within a collection (no query)', async () => {
68
- var _a, _b;
69
- const searchService = new MockSearchService();
61
+ ></more-facets-content>`);
62
+ el.facetKey = 'collection';
63
+ el.query = 'collection-aggregations';
64
+ await el.updateComplete;
65
+ expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('collection-aggregations');
66
+ });
67
+ it('queries for more facets using search service within a collection (no query)', async () => {
68
+ var _a, _b;
69
+ const searchService = new MockSearchService();
70
70
  const el = await fixture(html `<more-facets-content
71
71
  .searchService=${searchService}
72
- .pageSpecifierParams=${{
73
- pageType: 'collection_details',
74
- pageTarget: 'foobar',
72
+ .pageSpecifierParams=${{
73
+ pageType: 'collection_details',
74
+ pageTarget: 'foobar',
75
75
  }}
76
- ></more-facets-content>`);
77
- el.facetKey = 'subject';
78
- await el.updateComplete;
79
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.be.empty;
80
- expect((_b = searchService.searchParams) === null || _b === void 0 ? void 0 : _b.pageTarget).to.equal('foobar');
81
- });
82
- it('queries for more facets using search service within a collection (with query)', async () => {
83
- var _a, _b;
84
- const searchService = new MockSearchService();
76
+ ></more-facets-content>`);
77
+ el.facetKey = 'subject';
78
+ await el.updateComplete;
79
+ expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.be.empty;
80
+ expect((_b = searchService.searchParams) === null || _b === void 0 ? void 0 : _b.pageTarget).to.equal('foobar');
81
+ });
82
+ it('queries for more facets using search service within a collection (with query)', async () => {
83
+ var _a, _b;
84
+ const searchService = new MockSearchService();
85
85
  const el = await fixture(html `<more-facets-content
86
86
  .searchService=${searchService}
87
- .pageSpecifierParams=${{
88
- pageType: 'collection_details',
89
- pageTarget: 'foobar',
87
+ .pageSpecifierParams=${{
88
+ pageType: 'collection_details',
89
+ pageTarget: 'foobar',
90
90
  }}
91
- ></more-facets-content>`);
92
- el.facetKey = 'subject';
93
- el.query = 'title:hello';
94
- await el.updateComplete;
95
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
96
- expect((_b = searchService.searchParams) === null || _b === void 0 ? void 0 : _b.pageTarget).to.equal('foobar');
97
- });
98
- it('filter raw selectedFacets object', async () => {
99
- var _a;
100
- const searchService = new MockSearchService();
91
+ ></more-facets-content>`);
92
+ el.facetKey = 'subject';
93
+ el.query = 'title:hello';
94
+ await el.updateComplete;
95
+ expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
96
+ expect((_b = searchService.searchParams) === null || _b === void 0 ? void 0 : _b.pageTarget).to.equal('foobar');
97
+ });
98
+ it('filter raw selectedFacets object', async () => {
99
+ var _a;
100
+ const searchService = new MockSearchService();
101
101
  const el = await fixture(html `<more-facets-content
102
102
  .searchService=${searchService}
103
103
  .selectedFacets=${selectedFacetsGroup}
104
- ></more-facets-content>`);
105
- el.facetKey = 'collection';
106
- el.query = 'title:hello';
107
- await el.updateComplete;
108
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
109
- });
110
- it('combine selectedFacets and aggregationFacets and render on modal', async () => {
111
- var _a;
112
- const searchService = new MockSearchService();
104
+ ></more-facets-content>`);
105
+ el.facetKey = 'collection';
106
+ el.query = 'title:hello';
107
+ await el.updateComplete;
108
+ expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
109
+ });
110
+ it('combines selectedFacets and aggregationFacets and renders on modal', async () => {
111
+ var _a;
112
+ const searchService = new MockSearchService();
113
113
  const el = await fixture(html `<more-facets-content
114
+ .facetKey=${'year'}
115
+ .query=${'more-facets'}
114
116
  .searchService=${searchService}
115
- .selectedFacets=${selectedFacetsGroup}
116
- .aggregations=${aggregations}
117
- ></more-facets-content>`);
118
- await el.updateComplete;
119
- expect(el.facetGroupTitle).to.equal('Collection');
120
- const facetGroup = (_a = el.facetGroup) === null || _a === void 0 ? void 0 : _a.shift();
121
- expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.key).to.equal('collection');
122
- expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.title).to.equal('Collection');
123
- const bucket = facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.buckets[0];
124
- expect(bucket === null || bucket === void 0 ? void 0 : bucket.key).to.equal('foo');
125
- expect(bucket === null || bucket === void 0 ? void 0 : bucket.count).to.equal(5);
126
- });
127
- it('cancel button clicked event', async () => {
128
- var _a;
129
- const mockAnalyticsHandler = new MockAnalyticsHandler();
117
+ .selectedFacets=${yearSelectedFacets}
118
+ ></more-facets-content>`);
119
+ const facetsTemplate = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facets-template');
120
+ expect(facetsTemplate).to.exist;
121
+ const { facetGroup } = facetsTemplate;
122
+ expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.key).to.equal('year');
123
+ expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.title).to.equal('Year');
124
+ // First bucket is the one that was included in the selected facets
125
+ const firstBucket = facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.buckets[0];
126
+ expect(firstBucket === null || firstBucket === void 0 ? void 0 : firstBucket.key).to.equal('2000');
127
+ expect(firstBucket === null || firstBucket === void 0 ? void 0 : firstBucket.count).to.equal(5);
128
+ // Second bucket is the most recent year, since year facets default to descending order of year
129
+ const secondBucket = facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.buckets[1];
130
+ expect(secondBucket === null || secondBucket === void 0 ? void 0 : secondBucket.key).to.equal('2024');
131
+ expect(secondBucket === null || secondBucket === void 0 ? void 0 : secondBucket.count).to.equal(5);
132
+ });
133
+ it('cancel button clicked event', async () => {
134
+ var _a;
135
+ const searchService = new MockSearchService();
136
+ const mockAnalyticsHandler = new MockAnalyticsHandler();
130
137
  const el = await fixture(html `<more-facets-content
138
+ .facetKey=${'collection'}
139
+ .query=${'collection-aggregations'}
140
+ .searchService=${searchService}
131
141
  .analyticsHandler=${mockAnalyticsHandler}
132
- ></more-facets-content>`);
133
- el.facetsLoading = false;
134
- el.paginationSize = 5;
135
- await el.updateComplete;
136
- // select cancel button
137
- const cancelButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-cancel');
138
- cancelButton === null || cancelButton === void 0 ? void 0 : cancelButton.click();
139
- expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
140
- expect(mockAnalyticsHandler.callAction).to.equal('closeMoreFacetsModal');
141
- expect(mockAnalyticsHandler.callLabel).to.equal('undefined');
142
- });
143
- it('facet apply button clicked event', async () => {
144
- var _a;
145
- const mockAnalyticsHandler = new MockAnalyticsHandler();
142
+ ></more-facets-content>`);
143
+ // select cancel button
144
+ const cancelButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-cancel');
145
+ expect(cancelButton).to.exist;
146
+ cancelButton === null || cancelButton === void 0 ? void 0 : cancelButton.click();
147
+ expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
148
+ expect(mockAnalyticsHandler.callAction).to.equal('closeMoreFacetsModal');
149
+ expect(mockAnalyticsHandler.callLabel).to.equal('collection');
150
+ });
151
+ it('facet apply button clicked event', async () => {
152
+ var _a;
153
+ const searchService = new MockSearchService();
154
+ const mockAnalyticsHandler = new MockAnalyticsHandler();
146
155
  const el = await fixture(html `<more-facets-content
156
+ .facetKey=${'collection'}
157
+ .query=${'collection-aggregations'}
158
+ .searchService=${searchService}
147
159
  .analyticsHandler=${mockAnalyticsHandler}
148
- ></more-facets-content>`);
149
- el.facetsLoading = false;
150
- el.paginationSize = 5;
151
- el.facetKey = 'collection';
152
- await el.updateComplete;
153
- // select submit button
154
- const submitButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-submit');
155
- submitButton === null || submitButton === void 0 ? void 0 : submitButton.click();
156
- expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
157
- expect(mockAnalyticsHandler.callAction).to.equal('applyMoreFacetsModal');
158
- expect(mockAnalyticsHandler.callLabel).to.equal('collection');
159
- });
160
- });
160
+ ></more-facets-content>`);
161
+ // select submit button
162
+ const submitButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-submit');
163
+ expect(submitButton).to.exist;
164
+ submitButton === null || submitButton === void 0 ? void 0 : submitButton.click();
165
+ expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
166
+ expect(mockAnalyticsHandler.callAction).to.equal('applyMoreFacetsModal');
167
+ expect(mockAnalyticsHandler.callLabel).to.equal('collection');
168
+ });
169
+ });
161
170
  //# sourceMappingURL=more-facets-content.test.js.map