katello 4.16.3 → 4.17.0.rc1

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.

Potentially problematic release.


This version of katello might be problematic. Click here for more details.

Files changed (509) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +5 -3
  3. data/app/assets/javascripts/katello/locale/bn/katello.js +77 -263
  4. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +77 -263
  5. data/app/assets/javascripts/katello/locale/ca/katello.js +77 -263
  6. data/app/assets/javascripts/katello/locale/cs/katello.js +77 -263
  7. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +77 -263
  8. data/app/assets/javascripts/katello/locale/de/katello.js +87 -273
  9. data/app/assets/javascripts/katello/locale/de_AT/katello.js +77 -263
  10. data/app/assets/javascripts/katello/locale/de_DE/katello.js +77 -263
  11. data/app/assets/javascripts/katello/locale/el/katello.js +77 -263
  12. data/app/assets/javascripts/katello/locale/en/katello.js +77 -263
  13. data/app/assets/javascripts/katello/locale/en_GB/katello.js +77 -263
  14. data/app/assets/javascripts/katello/locale/en_US/katello.js +77 -263
  15. data/app/assets/javascripts/katello/locale/es/katello.js +242 -428
  16. data/app/assets/javascripts/katello/locale/et_EE/katello.js +77 -263
  17. data/app/assets/javascripts/katello/locale/fr/katello.js +900 -1086
  18. data/app/assets/javascripts/katello/locale/gl/katello.js +77 -263
  19. data/app/assets/javascripts/katello/locale/gu/katello.js +77 -263
  20. data/app/assets/javascripts/katello/locale/he_IL/katello.js +77 -263
  21. data/app/assets/javascripts/katello/locale/hi/katello.js +77 -263
  22. data/app/assets/javascripts/katello/locale/id/katello.js +77 -263
  23. data/app/assets/javascripts/katello/locale/it/katello.js +78 -264
  24. data/app/assets/javascripts/katello/locale/ja/katello.js +628 -814
  25. data/app/assets/javascripts/katello/locale/ka/katello.js +474 -660
  26. data/app/assets/javascripts/katello/locale/kn/katello.js +77 -263
  27. data/app/assets/javascripts/katello/locale/ko/katello.js +2129 -2314
  28. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +77 -263
  29. data/app/assets/javascripts/katello/locale/mr/katello.js +77 -263
  30. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +77 -263
  31. data/app/assets/javascripts/katello/locale/or/katello.js +77 -263
  32. data/app/assets/javascripts/katello/locale/pa/katello.js +77 -263
  33. data/app/assets/javascripts/katello/locale/pl/katello.js +77 -263
  34. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +77 -263
  35. data/app/assets/javascripts/katello/locale/pt/katello.js +77 -263
  36. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +255 -441
  37. data/app/assets/javascripts/katello/locale/ro/katello.js +77 -263
  38. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +77 -263
  39. data/app/assets/javascripts/katello/locale/ru/katello.js +78 -264
  40. data/app/assets/javascripts/katello/locale/sl/katello.js +77 -263
  41. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +77 -263
  42. data/app/assets/javascripts/katello/locale/ta/katello.js +77 -263
  43. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +77 -263
  44. data/app/assets/javascripts/katello/locale/te/katello.js +77 -263
  45. data/app/assets/javascripts/katello/locale/tr/katello.js +77 -263
  46. data/app/assets/javascripts/katello/locale/vi/katello.js +77 -263
  47. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +77 -263
  48. data/app/assets/javascripts/katello/locale/zh/katello.js +77 -263
  49. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +632 -818
  50. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +78 -264
  51. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +19 -5
  52. data/app/controllers/katello/api/v2/content_view_components_controller.rb +6 -6
  53. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +3 -0
  54. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -0
  55. data/app/controllers/katello/api/v2/content_views_controller.rb +12 -1
  56. data/app/controllers/katello/api/v2/exports_controller.rb +3 -0
  57. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +12 -14
  58. data/app/controllers/katello/api/v2/organizations_controller.rb +10 -10
  59. data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +8 -2
  60. data/app/lib/actions/helpers/rolling_cv_repos.rb +25 -0
  61. data/app/lib/actions/katello/capsule_content/sync_capsule.rb +6 -1
  62. data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +39 -0
  63. data/app/lib/actions/katello/content_view/create.rb +3 -0
  64. data/app/lib/actions/katello/content_view/refresh_rolling_repo.rb +40 -0
  65. data/app/lib/actions/katello/content_view/remove.rb +8 -4
  66. data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +28 -0
  67. data/app/lib/actions/katello/content_view/update.rb +8 -0
  68. data/app/lib/actions/katello/repository/check_matching_content.rb +1 -8
  69. data/app/lib/actions/katello/repository/import_upload.rb +5 -0
  70. data/app/lib/actions/katello/repository/sync.rb +8 -4
  71. data/app/lib/actions/katello/repository/upload_files.rb +7 -1
  72. data/app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb +3 -2
  73. data/app/lib/actions/pulp3/orphan_cleanup/delete_orphan_repository_versions.rb +8 -1
  74. data/app/lib/katello/errors.rb +8 -0
  75. data/app/lib/katello/validators/container_image_name_validator.rb +3 -2
  76. data/app/models/katello/authorization/repository.rb +11 -1
  77. data/app/models/katello/concerns/host_managed_extensions.rb +2 -2
  78. data/app/models/katello/concerns/pulp_database_unit.rb +12 -42
  79. data/app/models/katello/concerns/smart_proxy_extensions.rb +8 -0
  80. data/app/models/katello/content_view.rb +14 -1
  81. data/app/models/katello/content_view_component.rb +4 -0
  82. data/app/models/katello/content_view_environment.rb +1 -0
  83. data/app/models/katello/content_view_version.rb +3 -2
  84. data/app/models/katello/host/content_facet.rb +18 -5
  85. data/app/models/katello/product_content.rb +3 -1
  86. data/app/models/katello/repository.rb +3 -3
  87. data/app/services/katello/content_unit_indexer.rb +1 -1
  88. data/app/services/katello/pulp3/api/content_guard.rb +1 -1
  89. data/app/services/katello/pulp3/api/core.rb +6 -0
  90. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +58 -1
  91. data/app/services/katello/pulp3/smart_proxy_repository.rb +67 -3
  92. data/app/services/katello/smart_proxy_helper.rb +6 -1
  93. data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +15 -1
  94. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +15 -1
  95. data/app/views/foreman/job_templates/install_group_-_katello_ansible_default.erb +15 -2
  96. data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +21 -2
  97. data/app/views/foreman/job_templates/remove_group_-_katello_ansible_default.erb +15 -1
  98. data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +20 -1
  99. data/app/views/foreman/job_templates/update_group_-_katello_ansible_default.erb +15 -2
  100. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +17 -1
  101. data/app/views/katello/api/v2/activation_keys/base.json.rabl +1 -0
  102. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +2 -1
  103. data/app/views/katello/api/v2/content_facet/base.json.rabl +2 -0
  104. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +12 -0
  105. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  106. data/app/views/katello/api/v2/environments/show.json.rabl +14 -0
  107. data/app/views/katello/api/v2/hosts/base.json.rabl +1 -0
  108. data/app/views/katello/api/v2/organizations/show.json.rabl +2 -0
  109. data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
  110. data/db/migrate/20190930192813_add_pulp3_hrefs_to_content_types.rb +1 -1
  111. data/db/migrate/20240924161240_katello_recreate_evr_constructs.rb +0 -20
  112. data/db/migrate/20241022122325_add_rolling_to_katello_content_views.rb +5 -0
  113. data/db/migrate/20241025151105_remove_pulp3_migrated_hrefs_from_content_tables.rb +1 -1
  114. data/db/migrate/20250215143303_drop_katello_yum_metadata_file.rb +5 -0
  115. data/db/migrate/20250409120843_fix_file_download_policy.rb +11 -0
  116. data/db/migrate/20250410155300_change_ansible_templates_category.rb +22 -0
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +0 -6
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +0 -6
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +0 -6
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +0 -6
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +0 -6
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +0 -6
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +0 -6
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +0 -6
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +0 -6
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +0 -6
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +0 -6
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +0 -6
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +0 -6
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +0 -6
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +0 -6
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +0 -6
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +0 -6
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +0 -6
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +0 -6
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +0 -6
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +0 -6
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +0 -6
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +0 -6
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +0 -6
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +0 -6
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +0 -6
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +0 -6
  144. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +0 -6
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +0 -6
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +0 -6
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +0 -6
  148. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +0 -6
  149. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +0 -6
  150. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +0 -6
  151. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +0 -6
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +0 -6
  153. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +0 -6
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +0 -6
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +0 -6
  156. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +0 -6
  157. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +0 -6
  158. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +0 -6
  159. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +0 -6
  160. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +0 -6
  161. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +0 -6
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +0 -6
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +3 -0
  164. data/lib/katello/engine.rb +9 -1
  165. data/lib/katello/repository_types/python.rb +1 -1
  166. data/lib/katello/tasks/repository.rake +1 -1
  167. data/lib/katello/version.rb +1 -1
  168. data/locale/action_names.rb +3 -0
  169. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  170. data/locale/bn/katello.po +77 -263
  171. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  172. data/locale/bn_IN/katello.po +77 -263
  173. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  174. data/locale/ca/katello.po +77 -263
  175. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  176. data/locale/cs/katello.po +77 -263
  177. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  178. data/locale/cs_CZ/katello.po +77 -263
  179. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  180. data/locale/de/katello.po +91 -277
  181. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  182. data/locale/de_AT/katello.po +77 -263
  183. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  184. data/locale/de_DE/katello.po +77 -263
  185. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  186. data/locale/el/katello.po +77 -263
  187. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  188. data/locale/en/katello.po +77 -263
  189. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  190. data/locale/en_GB/katello.po +77 -263
  191. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  192. data/locale/en_US/katello.po +77 -263
  193. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  194. data/locale/es/katello.po +245 -432
  195. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  196. data/locale/et_EE/katello.po +77 -263
  197. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  198. data/locale/fr/katello.po +906 -1092
  199. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  200. data/locale/gl/katello.po +77 -263
  201. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  202. data/locale/gu/katello.po +77 -263
  203. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  204. data/locale/he_IL/katello.po +77 -263
  205. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  206. data/locale/hi/katello.po +77 -263
  207. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  208. data/locale/id/katello.po +77 -263
  209. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  210. data/locale/it/katello.po +78 -264
  211. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  212. data/locale/ja/katello.po +634 -822
  213. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  214. data/locale/ka/katello.po +474 -662
  215. data/locale/katello.pot +1194 -1472
  216. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  217. data/locale/kn/katello.po +77 -263
  218. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  219. data/locale/ko/katello.po +2125 -2324
  220. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  221. data/locale/ml_IN/katello.po +77 -263
  222. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  223. data/locale/mr/katello.po +77 -263
  224. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  225. data/locale/nl_NL/katello.po +77 -263
  226. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  227. data/locale/or/katello.po +77 -263
  228. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  229. data/locale/pa/katello.po +77 -263
  230. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/pl/katello.po +77 -263
  232. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  233. data/locale/pl_PL/katello.po +77 -263
  234. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  235. data/locale/pt/katello.po +77 -263
  236. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  237. data/locale/pt_BR/katello.po +258 -445
  238. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  239. data/locale/ro/katello.po +77 -263
  240. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  241. data/locale/ro_RO/katello.po +77 -263
  242. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  243. data/locale/ru/katello.po +78 -264
  244. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  245. data/locale/sl/katello.po +77 -263
  246. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  247. data/locale/sv_SE/katello.po +77 -263
  248. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  249. data/locale/ta/katello.po +77 -263
  250. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  251. data/locale/ta_IN/katello.po +77 -263
  252. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  253. data/locale/te/katello.po +77 -263
  254. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  255. data/locale/tr/katello.po +77 -263
  256. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  257. data/locale/vi/katello.po +77 -263
  258. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  259. data/locale/vi_VN/katello.po +77 -263
  260. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  261. data/locale/zh/katello.po +77 -263
  262. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  263. data/locale/zh_CN/katello.po +632 -824
  264. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  265. data/locale/zh_TW/katello.po +78 -264
  266. data/webpack/ForemanColumnExtensions/index.js +12 -4
  267. data/webpack/components/ActivationKeysSearch/index.js +6 -7
  268. data/webpack/components/Bookmark/AddBookmarkModal.js +3 -3
  269. data/webpack/components/Bookmark/Bookmark.scss +3 -3
  270. data/webpack/components/Bookmark/index.js +7 -2
  271. data/webpack/components/EditableSwitch.js +1 -1
  272. data/webpack/components/EditableTextInput/EditableTextInput.js +1 -1
  273. data/webpack/components/EditableTextInput/editableTextInput.scss +1 -1
  274. data/webpack/components/Errata/index.js +1 -24
  275. data/webpack/components/Loading.js +10 -6
  276. data/webpack/components/Packages/index.js +2 -1
  277. data/webpack/components/SelectAllCheckbox/index.js +7 -3
  278. data/webpack/components/SelectableDropdown/SelectableDropdown.js +21 -3
  279. data/webpack/components/Table/EmptyStateMessage.js +12 -14
  280. data/webpack/components/Table/MainTable.js +8 -7
  281. data/webpack/components/Table/MainTable.scss +4 -4
  282. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +4 -1
  283. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +1 -1
  284. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +9 -6
  285. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +2 -1
  286. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +4 -1
  287. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +23 -6
  288. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +1 -1
  289. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +5 -3
  290. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.scss +3 -3
  291. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
  292. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +25 -10
  293. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +5 -2
  294. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.scss +2 -2
  295. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +5 -4
  296. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +6 -3
  297. data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +19 -12
  298. data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +1 -1
  299. data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +1 -4
  300. data/webpack/components/extensions/HostDetails/DetailsTabCards/ImageModeCard.js +1 -4
  301. data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +1 -4
  302. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/HwPropertiesCard.test.js +63 -0
  303. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/ImageModeCard.test.js +73 -0
  304. data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/InstalledProductsCard.test.js +45 -0
  305. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +12 -2
  306. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.scss +1 -1
  307. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +10 -13
  308. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.scss +1 -1
  309. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +46 -21
  310. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.scss +1 -1
  311. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +15 -7
  312. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +13 -3
  313. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.scss +1 -1
  314. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +34 -20
  315. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.scss +1 -1
  316. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +8 -6
  317. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +5 -3
  318. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.scss +1 -1
  319. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +12 -13
  320. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +16 -6
  321. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsInstallModal.test.js +10 -5
  322. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsTab.test.js +48 -22
  323. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +123 -47
  324. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +14 -7
  325. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +10 -5
  326. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +41 -24
  327. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +50 -25
  328. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +50 -25
  329. data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +3 -0
  330. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_Review.js +16 -2
  331. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +6 -2
  332. data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +5 -1
  333. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_Review.js +16 -2
  334. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +6 -2
  335. data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +15 -2
  336. data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +1 -1
  337. data/webpack/components/extensions/Hosts/BulkActions/__tests__/bulkChangeHostCVModal.test.js +2 -1
  338. data/webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js +1 -1
  339. data/webpack/components/extensions/Hosts/ImageModeHostAlert.js +14 -0
  340. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/ActivationKeys.test.js.snap +14 -17
  341. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/Force.test.js.snap +1 -1
  342. data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/IgnoreSubmanErrors.test.js.snap +1 -1
  343. data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +38 -49
  344. data/webpack/containers/Application/overrides.scss +7 -7
  345. data/webpack/ouia_id_check.js +15 -11
  346. data/webpack/redux/actions/RedHatRepositories/helpers.js +0 -2
  347. data/webpack/scenes/ActivationKeys/Details/__tests__/activationKeyDetails.test.js +12 -6
  348. data/webpack/scenes/ActivationKeys/Details/components/DeleteMenu.js +12 -2
  349. data/webpack/scenes/ActivationKeys/Details/components/EditModal.js +3 -3
  350. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +3 -1
  351. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +3 -1
  352. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +12 -6
  353. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -1
  354. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +22 -7
  355. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +2 -2
  356. data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +1 -1
  357. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +6 -3
  358. data/webpack/scenes/AlternateContentSources/Details/ACSExpandableDetails.js +25 -15
  359. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +9 -6
  360. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +2 -2
  361. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +1 -1
  362. data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +33 -7
  363. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +10 -5
  364. data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSExpandableDetails.test.js +4 -2
  365. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +10 -8
  366. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -2
  367. data/webpack/scenes/BootedContainerImages/BootedContainerImagesPage.js +5 -5
  368. data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +8 -4
  369. data/webpack/scenes/Content/__tests__/contentTable.test.js +4 -2
  370. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +1 -1
  371. data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +1 -0
  372. data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +2 -1
  373. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +86 -31
  374. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.scss +10 -2
  375. data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
  376. data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +10 -4
  377. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +3 -1
  378. data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +6 -6
  379. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignActivationKeysForm.js +7 -2
  380. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignHostsForm.js +7 -2
  381. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +3 -3
  382. data/webpack/scenes/ContentViews/Delete/Steps/CVEnvironmentSelectionForm.scss +1 -1
  383. data/webpack/scenes/ContentViews/Delete/__tests__/CvData.fixtures.json +2 -1
  384. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +3 -2
  385. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +10 -8
  386. data/webpack/scenes/ContentViews/Delete/__tests__/cvDetails.fixtures.json +2 -1
  387. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +16 -5
  388. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +19 -5
  389. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +1 -1
  390. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +11 -2
  391. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/compositeCVDetails.fixtures.json +2 -1
  392. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +69 -27
  393. data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +2 -1
  394. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +22 -29
  395. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +6 -2
  396. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +20 -7
  397. data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +4 -2
  398. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositorySelection.js +5 -2
  399. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +3 -1
  400. data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +1 -1
  401. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +4 -2
  402. data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +13 -1
  403. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +23 -7
  404. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +23 -5
  405. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +15 -3
  406. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +15 -3
  407. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +13 -1
  408. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +6 -4
  409. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +11 -1
  410. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +4 -2
  411. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/matchContentModal.scss +1 -1
  412. data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +2 -2
  413. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +4 -4
  414. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +18 -12
  415. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +7 -11
  416. data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +81 -70
  417. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +1 -0
  418. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +4 -2
  419. data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +52 -38
  420. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +9 -4
  421. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +18 -12
  422. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +1 -0
  423. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +1 -0
  424. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +1 -0
  425. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterFixutre.fixture.json +2 -1
  426. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +77 -67
  427. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +1 -0
  428. data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +1 -0
  429. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -2
  430. data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +4 -2
  431. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +1 -1
  432. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +7 -5
  433. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +6 -3
  434. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
  435. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +3 -2
  436. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +3 -1
  437. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +2 -2
  438. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +3 -1
  439. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +3 -1
  440. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +4 -4
  441. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +11 -11
  442. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +15 -5
  443. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +1 -1
  444. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +13 -3
  445. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +3 -1
  446. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +17 -13
  447. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +12 -7
  448. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +64 -7
  449. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +52 -21
  450. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +30 -16
  451. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.scss +7 -7
  452. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +5 -3
  453. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -2
  454. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +6 -3
  455. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +2 -1
  456. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +6 -6
  457. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +35 -4
  458. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
  459. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +197 -0
  460. data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +82 -0
  461. data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +3 -7
  462. data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +2 -2
  463. data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +6 -5
  464. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +3 -1
  465. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +15 -7
  466. data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +4 -4
  467. data/webpack/scenes/ContentViews/Table/ContentViewVersionCell.js +6 -4
  468. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +14 -3
  469. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +3 -0
  470. data/webpack/scenes/ContentViews/__tests__/basicContentViews.fixtures.js +1 -0
  471. data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +89 -2
  472. data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +85 -14
  473. data/webpack/scenes/ContentViews/__tests__/mockDetails.fixtures.json +2 -1
  474. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +20 -6
  475. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelect.js +4 -1
  476. data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelectOption.js +11 -2
  477. data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +27 -7
  478. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +2 -2
  479. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +6 -2
  480. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +4 -1
  481. data/webpack/scenes/ContentViews/components/FiltersAppliedIcon.js +4 -2
  482. data/webpack/scenes/ContentViews/components/NeedsPublishIcon.js +7 -6
  483. data/webpack/scenes/ContentViews/components/NeedsPublishIcon.scss +2 -2
  484. data/webpack/scenes/ContentViews/components/contentViewIcon.scss +16 -3
  485. data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +6 -1
  486. data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +3 -3
  487. data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +2 -1
  488. data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +5 -3
  489. data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js +3 -2
  490. data/webpack/scenes/Hosts/ChangeContentSource/components/FormField.js +1 -1
  491. data/webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js +1 -1
  492. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepositoryContent.js +1 -1
  493. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/__snapshots__/EnabledRepositoryContent.test.js.snap +1 -1
  494. data/webpack/scenes/RedHatRepositories/index.scss +1 -1
  495. data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +27 -7
  496. data/webpack/scenes/SmartProxy/ExpandedSmartProxyRepositories.js +51 -2
  497. data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +2 -2
  498. data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +14 -9
  499. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationForm.scss +1 -1
  500. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +2 -2
  501. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/NetworkSyncForm.js +6 -6
  502. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CdnTypeForm.test.js +2 -1
  503. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CustomCdnTypeForm.test.js +2 -1
  504. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/ExportSyncForm.test.js +2 -1
  505. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/NetworkSyncForm.test.js +2 -1
  506. metadata +72 -53
  507. data/app/models/katello/yum_metadata_file.rb +0 -22
  508. data/app/services/katello/pulp3/yum_metadata_file.rb +0 -20
  509. data/db/migrate/20250714190050_add_missing_rpms_evr_index.rb +0 -14
@@ -62,7 +62,8 @@ test('Can call API for Module streams and show on screen on page load', async (d
62
62
  expect(getAllByText(firstModuleStreams.name)[0]).toBeInTheDocument());
63
63
  // Assert request was made and completed, see helper function
64
64
  assertNockRequest(autocompleteScope);
65
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
65
+ assertNockRequest(scope);
66
+ done(); // Pass jest callback to confirm test is done
66
67
  act(done);
67
68
  });
68
69
 
@@ -89,7 +90,8 @@ test('Can handle no Module streams being present', async (done) => {
89
90
  await patientlyWaitFor(() => expect(queryByText('This host does not have any Module streams.')).toBeInTheDocument());
90
91
  // Assert request was made and completed, see helper function
91
92
  assertNockRequest(autocompleteScope);
92
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
93
+ assertNockRequest(scope);
94
+ done(); // Pass jest callback to confirm test is done
93
95
  act(done);
94
96
  });
95
97
 
@@ -166,7 +168,8 @@ test('When there are no search results, can display an empty state with a clear
166
168
  assertNockRequest(badAutoCompleteScope);
167
169
  assertNockRequest(badSearchScope);
168
170
  assertNockRequest(scopeWithoutSearch);
169
- assertNockRequest(autocompleteScope, done);
171
+ assertNockRequest(autocompleteScope);
172
+ done();
170
173
  });
171
174
 
172
175
  test('Can filter results based on status', async (done) => {
@@ -198,7 +201,8 @@ test('Can filter results based on status', async (done) => {
198
201
  fireEvent.click(installed);
199
202
  assertNockRequest(autocompleteScope);
200
203
  assertNockRequest(scope);
201
- assertNockRequest(scope2, done);
204
+ assertNockRequest(scope2);
205
+ done();
202
206
  act(done);
203
207
  });
204
208
 
@@ -231,7 +235,8 @@ test('Can filter results based on Installation status', async (done) => {
231
235
  fireEvent.click(installed);
232
236
  assertNockRequest(autocompleteScope);
233
237
  assertNockRequest(scope);
234
- assertNockRequest(scope2, done);
238
+ assertNockRequest(scope2);
239
+ done();
235
240
  act(done);
236
241
  });
237
242
 
@@ -260,7 +265,8 @@ test('Can provide dropdown actions with redirects on Module Streams with customi
260
265
  expect(getByText('Enable')).toHaveAttribute('href', '/job_invocations/new?feature=katello_module_stream_action&search=name%20%5E%20(test-host)&inputs%5Baction%5D=enable&inputs%5Bmodule_spec%5D=walrus:2.4');
261
266
  expect(getByText('Install')).toHaveAttribute('href', '/job_invocations/new?feature=katello_module_stream_action&search=name%20%5E%20(test-host)&inputs%5Baction%5D=install&inputs%5Bmodule_spec%5D=walrus:2.4');
262
267
  assertNockRequest(autocompleteScope);
263
- assertNockRequest(scope, done);
268
+ assertNockRequest(scope);
269
+ done();
264
270
  act(done);
265
271
  });
266
272
 
@@ -305,6 +311,7 @@ test('Can perform actions on Module Streams', async (done) => {
305
311
  fireEvent.click(getByLabelText('confirm-module-action'));
306
312
  assertNockRequest(autocompleteScope);
307
313
  assertNockRequest(scope);
308
- assertNockRequest(jobScope, done);
314
+ assertNockRequest(jobScope);
315
+ done();
309
316
  act(done);
310
317
  });
@@ -79,7 +79,8 @@ test('Can call API for installable packages and show on screen on page load', as
79
79
  await patientlyWaitFor(() => expect(getAllByText(firstPackages.name)[0]).toBeInTheDocument());
80
80
  // Assert request was made and completed, see helper function
81
81
  assertNockRequest(autocompleteScope);
82
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
82
+ assertNockRequest(scope);
83
+ done(); // Pass jest callback to confirm test is done
83
84
  });
84
85
 
85
86
  test('Can handle no installable packages being present', async (done) => {
@@ -111,7 +112,8 @@ test('Can handle no installable packages being present', async (done) => {
111
112
  await patientlyWaitFor(() => expect(queryByText('No packages available to install')).toBeInTheDocument());
112
113
  // Assert request was made and completed, see helper function
113
114
  assertNockRequest(autocompleteScope);
114
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
115
+ assertNockRequest(scope);
116
+ done(); // Pass jest callback to confirm test is done
115
117
  });
116
118
 
117
119
 
@@ -148,7 +150,8 @@ test('Can install a package via remote execution', async (done) => {
148
150
 
149
151
  expect(triggerPackageInstall).toHaveBeenCalled();
150
152
  assertNockRequest(autocompleteScope);
151
- assertNockRequest(scope, done);
153
+ assertNockRequest(scope);
154
+ done();
152
155
  });
153
156
 
154
157
  test('Can install a package via customized remote execution', async (done) => {
@@ -185,7 +188,8 @@ test('Can install a package via customized remote execution', async (done) => {
185
188
  `/job_invocations/new?feature=${REX_FEATURES.KATELLO_PACKAGE_INSTALL}&search=name%20%5E%20(test-host)&inputs%5Bpackage%5D=duck,cheetah`,
186
189
  );
187
190
  assertNockRequest(autocompleteScope);
188
- assertNockRequest(scope, done);
191
+ assertNockRequest(scope);
192
+ done();
189
193
  });
190
194
 
191
195
  test('Uses package_install_by_search_query template when in select all mode', async (done) => {
@@ -223,6 +227,7 @@ test('Uses package_install_by_search_query template when in select all mode', as
223
227
  `/job_invocations/new?feature=${REX_FEATURES.KATELLO_PACKAGE_INSTALL_BY_SEARCH}&search=name%20%5E%20(test-host)&inputs%5BPackage%20search%20query%5D=id%20!%5E%20(32376)`,
224
228
  );
225
229
  assertNockRequest(autocompleteScope);
226
- assertNockRequest(scope, done);
230
+ assertNockRequest(scope);
231
+ done();
227
232
  });
228
233
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { renderWithRedux, patientlyWaitFor, fireEvent } from 'react-testing-lib-wrapper';
2
+ import { renderWithRedux, patientlyWaitFor, fireEvent, act } from 'react-testing-lib-wrapper';
3
3
  import * as hooks from 'foremanReact/components/PF4/TableIndexPage/Table/TableHooks';
4
4
  import { nockInstance, assertNockRequest, mockForemanAutocomplete } from '../../../../../test-utils/nockWrapper';
5
5
  import { foremanApi } from '../../../../../services/api';
@@ -79,7 +79,8 @@ test('Can call API for packages and show on screen on page load', async (done) =
79
79
  await patientlyWaitFor(() => expect(getAllByText(firstPackage.name)[0]).toBeInTheDocument());
80
80
  // Assert request was made and completed, see helper function
81
81
  assertNockRequest(autocompleteScope);
82
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
82
+ assertNockRequest(scope);
83
+ act(done); // Pass jest callback to confirm test is done
83
84
  });
84
85
 
85
86
  test('Can handle no packages being present', async (done) => {
@@ -105,7 +106,8 @@ test('Can handle no packages being present', async (done) => {
105
106
  await patientlyWaitFor(() => expect(queryByText('This host does not have any packages.')).toBeInTheDocument());
106
107
  // Assert request was made and completed, see helper function
107
108
  assertNockRequest(autocompleteScope);
108
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
109
+ assertNockRequest(scope);
110
+ act(done); // Pass jest callback to confirm test is done
109
111
  });
110
112
 
111
113
  test('Can filter by package status', async (done) => {
@@ -145,7 +147,8 @@ test('Can filter by package status', async (done) => {
145
147
 
146
148
  assertNockRequest(autocompleteScope);
147
149
  assertNockRequest(scope);
148
- assertNockRequest(scope2, done); // Pass jest callback to confirm test is done
150
+ assertNockRequest(scope2);
151
+ act(done); // Pass jest callback to confirm test is done
149
152
  });
150
153
 
151
154
  test('Can upgrade a package via remote execution', async (done) => {
@@ -191,17 +194,20 @@ test('Can upgrade a package via remote execution', async (done) => {
191
194
  expect(getByText('coreutils')).toBeInTheDocument();
192
195
  });
193
196
 
194
- const kebabDropdown = getByLabelText('Actions');
197
+ const kebabDropdown = getByLabelText('Kebab toggle');
195
198
  kebabDropdown.click();
196
199
 
200
+ await patientlyWaitFor(() => expect(getByText('Upgrade via remote execution')).toBeInTheDocument());
197
201
  const rexAction = getByText('Upgrade via remote execution');
198
- await patientlyWaitFor(() => expect(rexAction).toBeInTheDocument());
199
- fireEvent.click(rexAction);
202
+ await act(async () => {
203
+ fireEvent.click(rexAction);
204
+ });
200
205
 
201
206
  assertNockRequest(autocompleteScope);
202
207
  assertNockRequest(scope);
203
208
  assertNockRequest(statusScope);
204
209
  assertNockRequest(upgradeScope, done);
210
+ act(done);
205
211
  });
206
212
 
207
213
  test('Can upgrade a package via customized remote execution', async (done) => {
@@ -235,7 +241,7 @@ test('Can upgrade a package via customized remote execution', async (done) => {
235
241
  expect(getByText('coreutils')).toBeInTheDocument();
236
242
  });
237
243
 
238
- const kebabDropdown = getByLabelText('Actions');
244
+ const kebabDropdown = getByLabelText('Kebab toggle');
239
245
  kebabDropdown.click();
240
246
 
241
247
  const rexAction = getByText('Upgrade via customized remote execution');
@@ -247,12 +253,14 @@ test('Can upgrade a package via customized remote execution', async (done) => {
247
253
  'href',
248
254
  `/job_invocations/new?feature=${feature}&search=name%20%5E%20(${hostname})&inputs%5Bpackage%5D=${packageName}`,
249
255
  );
250
-
251
- fireEvent.click(rexAction);
256
+ await act(async () => {
257
+ fireEvent.click(rexAction);
258
+ });
252
259
 
253
260
  assertNockRequest(autocompleteScope);
254
261
  assertNockRequest(scope);
255
262
  assertNockRequest(statusScope, done);
263
+ act(done);
256
264
  });
257
265
 
258
266
  test('Can remove a package via remote execution', async (done) => {
@@ -283,13 +291,14 @@ test('Can remove a package via remote execution', async (done) => {
283
291
 
284
292
  await patientlyWaitFor(() => expect(getAllByText(firstPackage.name)[0]).toBeInTheDocument());
285
293
 
286
- const kebabDropdown = getByLabelText('Actions');
287
- kebabDropdown.click();
294
+ const kebabDropdown = getByLabelText('Kebab toggle');
295
+ fireEvent.click(kebabDropdown);
296
+ await patientlyWaitFor(() => expect(getByText('Remove')).toBeInTheDocument());
288
297
 
289
298
  const rexAction = getByText('Remove');
290
- await patientlyWaitFor(() => expect(rexAction).toBeInTheDocument());
291
- fireEvent.click(rexAction);
292
-
299
+ await act(async () => {
300
+ fireEvent.click(rexAction);
301
+ });
293
302
  assertNockRequest(autocompleteScope);
294
303
  assertNockRequest(scope);
295
304
  assertNockRequest(removeScope, done);
@@ -336,11 +345,13 @@ test('Can bulk remove a package via remote execution', async (done) => {
336
345
 
337
346
  const rexAction = getByText('Remove');
338
347
  await patientlyWaitFor(() => expect(rexAction).toBeInTheDocument());
339
- fireEvent.click(rexAction);
340
-
348
+ await act(async () => {
349
+ fireEvent.click(rexAction);
350
+ });
341
351
  assertNockRequest(autocompleteScope);
342
352
  assertNockRequest(scope);
343
353
  assertNockRequest(removeScope, done);
354
+ act(done);
344
355
  });
345
356
 
346
357
  test('Can bulk upgrade via remote execution', async (done) => {
@@ -381,14 +392,16 @@ test('Can bulk upgrade via remote execution', async (done) => {
381
392
 
382
393
  const upgradeDropdown = getAllByRole('button', { name: 'Select' })[1];
383
394
  fireEvent.click(upgradeDropdown);
384
-
385
395
  const rexAction = getByLabelText('bulk_upgrade_rex');
386
396
  expect(rexAction).toBeInTheDocument();
387
- fireEvent.click(rexAction);
397
+ await act(async () => {
398
+ fireEvent.click(rexAction);
399
+ });
388
400
 
389
401
  assertNockRequest(autocompleteScope);
390
402
  assertNockRequest(scope);
391
- assertNockRequest(upgradeScope, done);
403
+ assertNockRequest(upgradeScope);
404
+ act(done);
392
405
  });
393
406
 
394
407
  test('Can bulk upgrade via customized remote execution', async (done) => {
@@ -427,7 +440,8 @@ test('Can bulk upgrade via customized remote execution', async (done) => {
427
440
  expect(rexAction).toHaveAttribute('href', job);
428
441
 
429
442
  assertNockRequest(autocompleteScope);
430
- assertNockRequest(scope, done);
443
+ assertNockRequest(scope);
444
+ act(done);
431
445
  });
432
446
 
433
447
  test('Upgrade is disabled when there are non-upgradable packages selected', async (done) => {
@@ -457,7 +471,8 @@ test('Upgrade is disabled when there are non-upgradable packages selected', asyn
457
471
  expect(upgradeDropdown).toHaveAttribute('disabled');
458
472
 
459
473
  assertNockRequest(autocompleteScope);
460
- assertNockRequest(scope, done);
474
+ assertNockRequest(scope);
475
+ act(done);
461
476
  });
462
477
 
463
478
  test('Remove is disabled when in select all mode', async (done) => {
@@ -483,7 +498,8 @@ test('Remove is disabled when in select all mode', async (done) => {
483
498
  expect(removeButton).toHaveAttribute('aria-disabled', 'true');
484
499
 
485
500
  assertNockRequest(autocompleteScope);
486
- assertNockRequest(scope, done);
501
+ assertNockRequest(scope);
502
+ act(done);
487
503
  });
488
504
 
489
505
  test('Sets initial search query from url params', async (done) => {
@@ -504,6 +520,7 @@ test('Sets initial search query from url params', async (done) => {
504
520
  expect(queryByText(secondPackage.name)).not.toBeInTheDocument();
505
521
 
506
522
  assertNockRequest(autocompleteScope);
507
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
523
+ assertNockRequest(scope);
524
+ act(done); // Pass jest callback to confirm test is done
508
525
  });
509
526
 
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { renderWithRedux, patientlyWaitFor, within, fireEvent } from 'react-testing-lib-wrapper';
2
+ import { renderWithRedux, patientlyWaitFor, within, fireEvent, act } from 'react-testing-lib-wrapper';
3
3
  import { nockInstance, assertNockRequest, mockAutocomplete } from '../../../../../test-utils/nockWrapper';
4
4
  import katelloApi, { foremanApi } from '../../../../../services/api';
5
5
  import { REPOSITORY_SETS_KEY } from '../RepositorySetsTab/RepositorySetsConstants';
@@ -83,7 +83,8 @@ test('Can call API for repository sets and show basic table', async (done) => {
83
83
  // Assert that the repository sets are now showing on the screen, but wait for them to appear.
84
84
  await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
85
85
  assertNockRequest(autocompleteScope);
86
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
86
+ assertNockRequest(scope);
87
+ done(); // Pass jest callback to confirm test is done
87
88
  });
88
89
 
89
90
  test('Can handle no repository sets being present', async (done) => {
@@ -108,7 +109,8 @@ test('Can handle no repository sets being present', async (done) => {
108
109
  await patientlyWaitFor(() => expect(queryByText('No repository sets to show.')).toBeInTheDocument());
109
110
  // Assert request was made and completed, see helper function
110
111
  assertNockRequest(autocompleteScope);
111
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
112
+ assertNockRequest(scope);
113
+ done(); // Pass jest callback to confirm test is done
112
114
  });
113
115
 
114
116
  test('Toggle Group shows if it\'s not the default content view or library enviroment', async (done) => {
@@ -127,7 +129,8 @@ test('Toggle Group shows if it\'s not the default content view or library enviro
127
129
  await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
128
130
  expect(queryByLabelText('Limit to environment')).toBeInTheDocument();
129
131
  assertNockRequest(autocompleteScope);
130
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
132
+ assertNockRequest(scope);
133
+ done(); // Pass jest callback to confirm test is done
131
134
  });
132
135
 
133
136
  test('Toggle Group shows if it\'s the default content view but non-library environment', async (done) => {
@@ -151,7 +154,8 @@ test('Toggle Group shows if it\'s the default content view but non-library envir
151
154
  await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
152
155
  expect(queryByLabelText('Limit to environment')).toBeInTheDocument();
153
156
  assertNockRequest(autocompleteScope);
154
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
157
+ assertNockRequest(scope);
158
+ done(); // Pass jest callback to confirm test is done
155
159
  });
156
160
 
157
161
  test('Toggle Group shows if it\'s the library environment but a non-default content view', async (done) => {
@@ -174,7 +178,8 @@ test('Toggle Group shows if it\'s the library environment but a non-default cont
174
178
  await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
175
179
  expect(queryByLabelText('Limit to environment')).toBeInTheDocument();
176
180
  assertNockRequest(autocompleteScope);
177
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
181
+ assertNockRequest(scope);
182
+ done(); // Pass jest callback to confirm test is done
178
183
  });
179
184
 
180
185
  test('Toggle Group does not show if it\'s the library environment and default content view', async (done) => {
@@ -199,7 +204,8 @@ test('Toggle Group does not show if it\'s the library environment and default co
199
204
  await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
200
205
  expect(queryByLabelText('Limit to environment')).not.toBeInTheDocument();
201
206
  assertNockRequest(autocompleteScope);
202
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
207
+ assertNockRequest(scope);
208
+ done(); // Pass jest callback to confirm test is done
203
209
  });
204
210
 
205
211
  test('Can toggle with the Toggle Group ', async (done) => {
@@ -221,7 +227,8 @@ test('Can toggle with the Toggle Group ', async (done) => {
221
227
  expect(queryByLabelText('Limit to environment')).toHaveAttribute('aria-pressed', 'true');
222
228
  expect(queryByLabelText('No limit')).toHaveAttribute('aria-pressed', 'false');
223
229
  assertNockRequest(autocompleteScope);
224
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
230
+ assertNockRequest(scope);
231
+ done(); // Pass jest callback to confirm test is done
225
232
  });
226
233
 
227
234
  test('Can override to disabled', async (done) => {
@@ -244,9 +251,10 @@ test('Can override to disabled', async (done) => {
244
251
  expect(getAllByText('Enabled')).toHaveLength(2);
245
252
  expect(getAllByText('Disabled')).toHaveLength(1);
246
253
  // Find the first action menu and click it
247
- const actionMenu = getAllByLabelText('Actions')[0].closest('button');
248
- fireEvent.click(actionMenu);
249
-
254
+ const actionMenu = getAllByLabelText('Kebab toggle')[0].closest('button');
255
+ await act(async () => {
256
+ fireEvent.click(actionMenu);
257
+ });
250
258
  const overrideMenuItem = getByText('Override to disabled');
251
259
  expect(overrideMenuItem).toBeInTheDocument();
252
260
  fireEvent.click(overrideMenuItem);
@@ -259,7 +267,8 @@ test('Can override to disabled', async (done) => {
259
267
 
260
268
  assertNockRequest(autocompleteScope);
261
269
  assertNockRequest(scope);
262
- assertNockRequest(contentOverrideScope, done); // Pass jest callback to confirm test is done
270
+ assertNockRequest(contentOverrideScope);
271
+ done(); // Pass jest callback to confirm test is done
263
272
  });
264
273
 
265
274
  test('Can override to enabled', async (done) => {
@@ -284,8 +293,10 @@ test('Can override to enabled', async (done) => {
284
293
  expect(getAllByText('Enabled')).toHaveLength(2);
285
294
  expect(getAllByText('Disabled')).toHaveLength(1);
286
295
  // The second item is overridden to disabled; we're going to override to enabled
287
- const actionMenu = getAllByLabelText('Actions')[1].closest('button');
288
- fireEvent.click(actionMenu);
296
+ const actionMenu = getAllByLabelText('Kebab toggle')[1].closest('button');
297
+ await act(async () => {
298
+ fireEvent.click(actionMenu);
299
+ });
289
300
 
290
301
  const overrideMenuItem = getByText('Override to enabled');
291
302
  expect(overrideMenuItem).toBeInTheDocument();
@@ -298,7 +309,8 @@ test('Can override to enabled', async (done) => {
298
309
 
299
310
  assertNockRequest(autocompleteScope);
300
311
  assertNockRequest(scope);
301
- assertNockRequest(contentOverrideScope, done); // Pass jest callback to confirm test is done
312
+ assertNockRequest(contentOverrideScope);
313
+ done(); // Pass jest callback to confirm test is done
302
314
  });
303
315
 
304
316
  test('Can reset to default', async (done) => {
@@ -323,8 +335,10 @@ test('Can reset to default', async (done) => {
323
335
  expect(getAllByText('Disabled')).toHaveLength(1);
324
336
 
325
337
  // The second item is overridden to disabled but would normally be enabled; we're going to reset
326
- const actionMenu = getAllByLabelText('Actions')[1].closest('button');
327
- fireEvent.click(actionMenu);
338
+ const actionMenu = getAllByLabelText('Kebab toggle')[1].closest('button');
339
+ await act(async () => {
340
+ fireEvent.click(actionMenu);
341
+ });
328
342
 
329
343
  const overrideMenuItem = getByText('Reset to default');
330
344
  expect(overrideMenuItem).toBeInTheDocument();
@@ -337,7 +351,8 @@ test('Can reset to default', async (done) => {
337
351
 
338
352
  assertNockRequest(autocompleteScope);
339
353
  assertNockRequest(scope);
340
- assertNockRequest(contentOverrideScope, done); // Pass jest callback to confirm test is done
354
+ assertNockRequest(contentOverrideScope);
355
+ done(); // Pass jest callback to confirm test is done
341
356
  });
342
357
 
343
358
  test('Can override in bulk', async (done) => {
@@ -358,14 +373,17 @@ test('Can override in bulk', async (done) => {
358
373
  getByLabelText('Select row 0').click();
359
374
  getByLabelText('Select row 1').click();
360
375
  const actionMenu = getByLabelText('bulk_actions');
361
- actionMenu.click();
376
+ await act(async () => {
377
+ fireEvent.click(actionMenu);
378
+ });
362
379
  const resetToDefault = queryByText('Reset to default');
363
380
  expect(resetToDefault).toBeInTheDocument();
364
381
  resetToDefault.click();
365
382
 
366
383
  assertNockRequest(autocompleteScope);
367
384
  assertNockRequest(scope);
368
- assertNockRequest(contentOverrideScope, done); // Pass jest callback to confirm test is done});
385
+ assertNockRequest(contentOverrideScope);
386
+ done(); // Pass jest callback to confirm test is done});
369
387
  });
370
388
  test('Can override in bulk when limited to environment', async (done) => {
371
389
  const autocompleteScope = mockAutocomplete(nockInstance, autocompleteUrl);
@@ -391,14 +409,17 @@ test('Can override in bulk when limited to environment', async (done) => {
391
409
  await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
392
410
  getByLabelText('Select all').click();
393
411
  const actionMenu = getByLabelText('bulk_actions');
394
- actionMenu.click();
412
+ await act(async () => {
413
+ fireEvent.click(actionMenu);
414
+ });
395
415
  const resetToDefault = queryByText('Reset to default');
396
416
  expect(resetToDefault).toBeInTheDocument();
397
417
  resetToDefault.click();
398
418
 
399
419
  assertNockRequest(autocompleteScope);
400
420
  assertNockRequest(scope);
401
- assertNockRequest(contentOverrideScope, done);
421
+ assertNockRequest(contentOverrideScope);
422
+ done();
402
423
  });
403
424
 
404
425
  test('Can filter by status', async (done) => {
@@ -422,7 +443,9 @@ test('Can filter by status', async (done) => {
422
443
  const statusContainer = queryByLabelText('select Status container', { ignore: 'th' });
423
444
  const statusDropdown = within(statusContainer).queryByText('Status');
424
445
  expect(statusDropdown).toBeInTheDocument();
425
- fireEvent.click(statusDropdown);
446
+ await act(async () => {
447
+ fireEvent.click(statusDropdown);
448
+ });
426
449
  const overridden = getByRole('option', { name: 'select Overridden' });
427
450
  fireEvent.click(overridden);
428
451
  await patientlyWaitFor(() => {
@@ -430,7 +453,8 @@ test('Can filter by status', async (done) => {
430
453
  });
431
454
  assertNockRequest(autocompleteScope);
432
455
  assertNockRequest(scope);
433
- assertNockRequest(scope2, done); // Pass jest callback to confirm test is done
456
+ assertNockRequest(scope2);
457
+ done(); // Pass jest callback to confirm test is done
434
458
  });
435
459
 
436
460
  test('Can display restrictions as labels', async (done) => {
@@ -448,5 +472,6 @@ test('Can display restrictions as labels', async (done) => {
448
472
  expect(secondRepoSet.archRestricted).not.toBeNull();
449
473
  expect(getByText(secondRepoSet.archRestricted)).toBeInTheDocument();
450
474
  assertNockRequest(autocompleteScope);
451
- assertNockRequest(scope, done); // Pass jest callback to confirm test is done
475
+ assertNockRequest(scope);
476
+ done(); // Pass jest callback to confirm test is done
452
477
  });