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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +5 -3
- data/app/assets/javascripts/katello/locale/bn/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/bn_IN/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/ca/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/cs/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/de/katello.js +87 -273
- data/app/assets/javascripts/katello/locale/de_AT/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/de_DE/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/el/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/en/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/en_GB/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/en_US/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/es/katello.js +242 -428
- data/app/assets/javascripts/katello/locale/et_EE/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/fr/katello.js +900 -1086
- data/app/assets/javascripts/katello/locale/gl/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/gu/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/he_IL/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/hi/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/id/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/it/katello.js +78 -264
- data/app/assets/javascripts/katello/locale/ja/katello.js +628 -814
- data/app/assets/javascripts/katello/locale/ka/katello.js +474 -660
- data/app/assets/javascripts/katello/locale/kn/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/ko/katello.js +2129 -2314
- data/app/assets/javascripts/katello/locale/ml_IN/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/mr/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/nl_NL/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/or/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/pa/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/pl/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/pl_PL/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/pt/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/pt_BR/katello.js +255 -441
- data/app/assets/javascripts/katello/locale/ro/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/ro_RO/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/ru/katello.js +78 -264
- data/app/assets/javascripts/katello/locale/sl/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/sv_SE/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/ta/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/ta_IN/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/te/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/tr/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/vi/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/vi_VN/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/zh/katello.js +77 -263
- data/app/assets/javascripts/katello/locale/zh_CN/katello.js +632 -818
- data/app/assets/javascripts/katello/locale/zh_TW/katello.js +78 -264
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +19 -5
- data/app/controllers/katello/api/v2/content_view_components_controller.rb +6 -6
- data/app/controllers/katello/api/v2/content_view_filters_controller.rb +3 -0
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -0
- data/app/controllers/katello/api/v2/content_views_controller.rb +12 -1
- data/app/controllers/katello/api/v2/exports_controller.rb +3 -0
- data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +12 -14
- data/app/controllers/katello/api/v2/organizations_controller.rb +10 -10
- data/app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb +8 -2
- data/app/lib/actions/helpers/rolling_cv_repos.rb +25 -0
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +6 -1
- data/app/lib/actions/katello/content_view/add_rolling_repo_clone.rb +39 -0
- data/app/lib/actions/katello/content_view/create.rb +3 -0
- data/app/lib/actions/katello/content_view/refresh_rolling_repo.rb +40 -0
- data/app/lib/actions/katello/content_view/remove.rb +8 -4
- data/app/lib/actions/katello/content_view/remove_rolling_repo_clone.rb +28 -0
- data/app/lib/actions/katello/content_view/update.rb +8 -0
- data/app/lib/actions/katello/repository/check_matching_content.rb +1 -8
- data/app/lib/actions/katello/repository/import_upload.rb +5 -0
- data/app/lib/actions/katello/repository/sync.rb +8 -4
- data/app/lib/actions/katello/repository/upload_files.rb +7 -1
- data/app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb +3 -2
- data/app/lib/actions/pulp3/orphan_cleanup/delete_orphan_repository_versions.rb +8 -1
- data/app/lib/katello/errors.rb +8 -0
- data/app/lib/katello/validators/container_image_name_validator.rb +3 -2
- data/app/models/katello/authorization/repository.rb +11 -1
- data/app/models/katello/concerns/host_managed_extensions.rb +2 -2
- data/app/models/katello/concerns/pulp_database_unit.rb +12 -42
- data/app/models/katello/concerns/smart_proxy_extensions.rb +8 -0
- data/app/models/katello/content_view.rb +14 -1
- data/app/models/katello/content_view_component.rb +4 -0
- data/app/models/katello/content_view_environment.rb +1 -0
- data/app/models/katello/content_view_version.rb +3 -2
- data/app/models/katello/host/content_facet.rb +18 -5
- data/app/models/katello/product_content.rb +3 -1
- data/app/models/katello/repository.rb +3 -3
- data/app/services/katello/content_unit_indexer.rb +1 -1
- data/app/services/katello/pulp3/api/content_guard.rb +1 -1
- data/app/services/katello/pulp3/api/core.rb +6 -0
- data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +58 -1
- data/app/services/katello/pulp3/smart_proxy_repository.rb +67 -3
- data/app/services/katello/smart_proxy_helper.rb +6 -1
- data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +15 -1
- data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +15 -1
- data/app/views/foreman/job_templates/install_group_-_katello_ansible_default.erb +15 -2
- data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +21 -2
- data/app/views/foreman/job_templates/remove_group_-_katello_ansible_default.erb +15 -1
- data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +20 -1
- data/app/views/foreman/job_templates/update_group_-_katello_ansible_default.erb +15 -2
- data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +17 -1
- data/app/views/katello/api/v2/activation_keys/base.json.rabl +1 -0
- data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +2 -1
- data/app/views/katello/api/v2/content_facet/base.json.rabl +2 -0
- data/app/views/katello/api/v2/content_view_versions/base.json.rabl +12 -0
- data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
- data/app/views/katello/api/v2/environments/show.json.rabl +14 -0
- data/app/views/katello/api/v2/hosts/base.json.rabl +1 -0
- data/app/views/katello/api/v2/organizations/show.json.rabl +2 -0
- data/app/views/katello/api/v2/repositories/base.json.rabl +2 -1
- data/db/migrate/20190930192813_add_pulp3_hrefs_to_content_types.rb +1 -1
- data/db/migrate/20240924161240_katello_recreate_evr_constructs.rb +0 -20
- data/db/migrate/20241022122325_add_rolling_to_katello_content_views.rb +5 -0
- data/db/migrate/20241025151105_remove_pulp3_migrated_hrefs_from_content_tables.rb +1 -1
- data/db/migrate/20250215143303_drop_katello_yum_metadata_file.rb +5 -0
- data/db/migrate/20250409120843_fix_file_download_policy.rb +11 -0
- data/db/migrate/20250410155300_change_ansible_templates_category.rb +22 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/bn_IN.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ca.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/cs_CZ.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_AT.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de_DE.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/el.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_GB.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/en_US.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/et_EE.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gl.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/gu.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/he_IL.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/hi.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/id.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/kn.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ml_IN.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/mr.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/nl_NL.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/or.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pa.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pl_PL.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ro_RO.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sl.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/sv_SE.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ta_IN.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/te.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/tr.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/vi_VN.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +3 -0
- data/lib/katello/engine.rb +9 -1
- data/lib/katello/repository_types/python.rb +1 -1
- data/lib/katello/tasks/repository.rake +1 -1
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +3 -0
- data/locale/bn/LC_MESSAGES/katello.mo +0 -0
- data/locale/bn/katello.po +77 -263
- data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/bn_IN/katello.po +77 -263
- data/locale/ca/LC_MESSAGES/katello.mo +0 -0
- data/locale/ca/katello.po +77 -263
- data/locale/cs/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs/katello.po +77 -263
- data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
- data/locale/cs_CZ/katello.po +77 -263
- data/locale/de/LC_MESSAGES/katello.mo +0 -0
- data/locale/de/katello.po +91 -277
- data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
- data/locale/de_AT/katello.po +77 -263
- data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
- data/locale/de_DE/katello.po +77 -263
- data/locale/el/LC_MESSAGES/katello.mo +0 -0
- data/locale/el/katello.po +77 -263
- data/locale/en/LC_MESSAGES/katello.mo +0 -0
- data/locale/en/katello.po +77 -263
- data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
- data/locale/en_GB/katello.po +77 -263
- data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
- data/locale/en_US/katello.po +77 -263
- data/locale/es/LC_MESSAGES/katello.mo +0 -0
- data/locale/es/katello.po +245 -432
- data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
- data/locale/et_EE/katello.po +77 -263
- data/locale/fr/LC_MESSAGES/katello.mo +0 -0
- data/locale/fr/katello.po +906 -1092
- data/locale/gl/LC_MESSAGES/katello.mo +0 -0
- data/locale/gl/katello.po +77 -263
- data/locale/gu/LC_MESSAGES/katello.mo +0 -0
- data/locale/gu/katello.po +77 -263
- data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
- data/locale/he_IL/katello.po +77 -263
- data/locale/hi/LC_MESSAGES/katello.mo +0 -0
- data/locale/hi/katello.po +77 -263
- data/locale/id/LC_MESSAGES/katello.mo +0 -0
- data/locale/id/katello.po +77 -263
- data/locale/it/LC_MESSAGES/katello.mo +0 -0
- data/locale/it/katello.po +78 -264
- data/locale/ja/LC_MESSAGES/katello.mo +0 -0
- data/locale/ja/katello.po +634 -822
- data/locale/ka/LC_MESSAGES/katello.mo +0 -0
- data/locale/ka/katello.po +474 -662
- data/locale/katello.pot +1194 -1472
- data/locale/kn/LC_MESSAGES/katello.mo +0 -0
- data/locale/kn/katello.po +77 -263
- data/locale/ko/LC_MESSAGES/katello.mo +0 -0
- data/locale/ko/katello.po +2125 -2324
- data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/ml_IN/katello.po +77 -263
- data/locale/mr/LC_MESSAGES/katello.mo +0 -0
- data/locale/mr/katello.po +77 -263
- data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
- data/locale/nl_NL/katello.po +77 -263
- data/locale/or/LC_MESSAGES/katello.mo +0 -0
- data/locale/or/katello.po +77 -263
- data/locale/pa/LC_MESSAGES/katello.mo +0 -0
- data/locale/pa/katello.po +77 -263
- data/locale/pl/LC_MESSAGES/katello.mo +0 -0
- data/locale/pl/katello.po +77 -263
- data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
- data/locale/pl_PL/katello.po +77 -263
- data/locale/pt/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt/katello.po +77 -263
- data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt_BR/katello.po +258 -445
- data/locale/ro/LC_MESSAGES/katello.mo +0 -0
- data/locale/ro/katello.po +77 -263
- data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
- data/locale/ro_RO/katello.po +77 -263
- data/locale/ru/LC_MESSAGES/katello.mo +0 -0
- data/locale/ru/katello.po +78 -264
- data/locale/sl/LC_MESSAGES/katello.mo +0 -0
- data/locale/sl/katello.po +77 -263
- data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
- data/locale/sv_SE/katello.po +77 -263
- data/locale/ta/LC_MESSAGES/katello.mo +0 -0
- data/locale/ta/katello.po +77 -263
- data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
- data/locale/ta_IN/katello.po +77 -263
- data/locale/te/LC_MESSAGES/katello.mo +0 -0
- data/locale/te/katello.po +77 -263
- data/locale/tr/LC_MESSAGES/katello.mo +0 -0
- data/locale/tr/katello.po +77 -263
- data/locale/vi/LC_MESSAGES/katello.mo +0 -0
- data/locale/vi/katello.po +77 -263
- data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
- data/locale/vi_VN/katello.po +77 -263
- data/locale/zh/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh/katello.po +77 -263
- data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_CN/katello.po +632 -824
- data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_TW/katello.po +78 -264
- data/webpack/ForemanColumnExtensions/index.js +12 -4
- data/webpack/components/ActivationKeysSearch/index.js +6 -7
- data/webpack/components/Bookmark/AddBookmarkModal.js +3 -3
- data/webpack/components/Bookmark/Bookmark.scss +3 -3
- data/webpack/components/Bookmark/index.js +7 -2
- data/webpack/components/EditableSwitch.js +1 -1
- data/webpack/components/EditableTextInput/EditableTextInput.js +1 -1
- data/webpack/components/EditableTextInput/editableTextInput.scss +1 -1
- data/webpack/components/Errata/index.js +1 -24
- data/webpack/components/Loading.js +10 -6
- data/webpack/components/Packages/index.js +2 -1
- data/webpack/components/SelectAllCheckbox/index.js +7 -3
- data/webpack/components/SelectableDropdown/SelectableDropdown.js +21 -3
- data/webpack/components/Table/EmptyStateMessage.js +12 -14
- data/webpack/components/Table/MainTable.js +8 -7
- data/webpack/components/Table/MainTable.scss +4 -4
- data/webpack/components/extensions/HostDetails/ActionsBar/index.js +4 -1
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +1 -1
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +9 -6
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +2 -1
- data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +4 -1
- data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +23 -6
- data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +1 -1
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +5 -3
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.scss +3 -3
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +1 -1
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +25 -10
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +5 -2
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.scss +2 -2
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeEditModal.js +5 -4
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +6 -3
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeEditModal.test.js +19 -12
- data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +1 -1
- data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +1 -4
- data/webpack/components/extensions/HostDetails/DetailsTabCards/ImageModeCard.js +1 -4
- data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +1 -4
- data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/HwPropertiesCard.test.js +63 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/ImageModeCard.test.js +73 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/__test__/InstalledProductsCard.test.js +45 -0
- data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +12 -2
- data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +10 -13
- data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +46 -21
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +15 -7
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +13 -3
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +34 -20
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +8 -6
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +5 -3
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.scss +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +12 -13
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +16 -6
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsInstallModal.test.js +10 -5
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsTab.test.js +48 -22
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +123 -47
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +14 -7
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +10 -5
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +41 -24
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +50 -25
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +50 -25
- data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +3 -0
- data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_Review.js +16 -2
- data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/04_ReviewFooter.js +6 -2
- data/webpack/components/extensions/Hosts/BulkActions/BulkErrataWizard/BulkErrataWizard.js +5 -1
- data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_Review.js +16 -2
- data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/04_ReviewFooter.js +6 -2
- data/webpack/components/extensions/Hosts/BulkActions/BulkPackagesWizard/BulkPackagesWizard.js +15 -2
- data/webpack/components/extensions/Hosts/BulkActions/HostReview.js +1 -1
- data/webpack/components/extensions/Hosts/BulkActions/__tests__/bulkChangeHostCVModal.test.js +2 -1
- data/webpack/components/extensions/Hosts/FontAwesomeImageModeIcon.js +1 -1
- data/webpack/components/extensions/Hosts/ImageModeHostAlert.js +14 -0
- data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/ActivationKeys.test.js.snap +14 -17
- data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/Force.test.js.snap +1 -1
- data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/IgnoreSubmanErrors.test.js.snap +1 -1
- data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +38 -49
- data/webpack/containers/Application/overrides.scss +7 -7
- data/webpack/ouia_id_check.js +15 -11
- data/webpack/redux/actions/RedHatRepositories/helpers.js +0 -2
- data/webpack/scenes/ActivationKeys/Details/__tests__/activationKeyDetails.test.js +12 -6
- data/webpack/scenes/ActivationKeys/Details/components/DeleteMenu.js +12 -2
- data/webpack/scenes/ActivationKeys/Details/components/EditModal.js +3 -3
- data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +3 -1
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +3 -1
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +12 -6
- data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +1 -1
- data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +22 -7
- data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +2 -2
- data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +1 -1
- data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +6 -3
- data/webpack/scenes/AlternateContentSources/Details/ACSExpandableDetails.js +25 -15
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +9 -6
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditDetails.js +2 -2
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +1 -1
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditURLPaths.js +33 -7
- data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +10 -5
- data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSExpandableDetails.test.js +4 -2
- data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +10 -8
- data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +4 -2
- data/webpack/scenes/BootedContainerImages/BootedContainerImagesPage.js +5 -5
- data/webpack/scenes/Content/Details/__tests__/contentDetail.test.js +8 -4
- data/webpack/scenes/Content/__tests__/contentTable.test.js +4 -2
- data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +1 -1
- data/webpack/scenes/ContentViews/Copy/__tests__/contentViewCopyResult.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Copy/__tests__/copyContentView.test.js +2 -1
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +86 -31
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.scss +10 -2
- data/webpack/scenes/ContentViews/Create/__tests__/contentViewCreateResult.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +10 -4
- data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +3 -1
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +6 -6
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignActivationKeysForm.js +7 -2
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReassignHostsForm.js +7 -2
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +3 -3
- data/webpack/scenes/ContentViews/Delete/Steps/CVEnvironmentSelectionForm.scss +1 -1
- data/webpack/scenes/ContentViews/Delete/__tests__/CvData.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +3 -2
- data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +10 -8
- data/webpack/scenes/ContentViews/Delete/__tests__/cvDetails.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +16 -5
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +19 -5
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +1 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +11 -2
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/compositeCVDetails.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +69 -27
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +22 -29
- data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +6 -2
- data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +20 -7
- data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +4 -2
- data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositorySelection.js +5 -2
- data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +3 -1
- data/webpack/scenes/ContentViews/Details/Filters/ArtifactsWithNoErrata.js +1 -1
- data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +4 -2
- data/webpack/scenes/ContentViews/Details/Filters/CVDebFilterContent.js +13 -1
- data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +23 -7
- data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +23 -5
- data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +15 -3
- data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +15 -3
- data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +13 -1
- data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetailsHeader.js +6 -4
- data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +11 -1
- data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js +4 -2
- data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/matchContentModal.scss +1 -1
- data/webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js +2 -2
- data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +4 -4
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +18 -12
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +7 -11
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/ContentViewPackageGroupFilter.test.js +81 -70
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +4 -2
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +52 -38
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataDateFilterContent.test.js +9 -4
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErrataIDFilter.test.js +18 -12
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterFixutre.fixture.json +2 -1
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilter.test.js +77 -67
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +2 -2
- data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +4 -2
- data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +1 -1
- data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +7 -5
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +6 -3
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +3 -2
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +3 -1
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +2 -2
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +3 -1
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +3 -1
- data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +4 -4
- data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompare.scss +11 -11
- data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareHeader.js +15 -5
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +1 -1
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +13 -3
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +3 -1
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +17 -13
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignActivationKeysForm.js +12 -7
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVReassignHostsForm.js +64 -7
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +52 -21
- data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +30 -16
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.scss +7 -7
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +5 -3
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +4 -2
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +6 -3
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +2 -1
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +6 -6
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +35 -4
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetail.test.js +197 -0
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewRollingDetails.fixtures.json +82 -0
- data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +3 -7
- data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +2 -2
- data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +6 -5
- data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +3 -1
- data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +15 -7
- data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +4 -4
- data/webpack/scenes/ContentViews/Table/ContentViewVersionCell.js +6 -4
- data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +14 -3
- data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +3 -0
- data/webpack/scenes/ContentViews/__tests__/basicContentViews.fixtures.js +1 -0
- data/webpack/scenes/ContentViews/__tests__/contentViewList.fixtures.json +89 -2
- data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +85 -14
- data/webpack/scenes/ContentViews/__tests__/mockDetails.fixtures.json +2 -1
- data/webpack/scenes/ContentViews/components/ContentViewIcon.js +20 -6
- data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelect.js +4 -1
- data/webpack/scenes/ContentViews/components/ContentViewSelect/ContentViewSelectOption.js +11 -2
- data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +27 -7
- data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +2 -2
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +6 -2
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +4 -1
- data/webpack/scenes/ContentViews/components/FiltersAppliedIcon.js +4 -2
- data/webpack/scenes/ContentViews/components/NeedsPublishIcon.js +7 -6
- data/webpack/scenes/ContentViews/components/NeedsPublishIcon.scss +2 -2
- data/webpack/scenes/ContentViews/components/contentViewIcon.scss +16 -3
- data/webpack/scenes/ContentViews/expansions/DetailsExpansion.js +6 -1
- data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +3 -3
- data/webpack/scenes/ContentViews/expansions/__tests__/contentViewComponentsModal.test.js +2 -1
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +5 -3
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js +3 -2
- data/webpack/scenes/Hosts/ChangeContentSource/components/FormField.js +1 -1
- data/webpack/scenes/Hosts/ChangeContentSource/components/HostsModal.js +1 -1
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepositoryContent.js +1 -1
- data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/__snapshots__/EnabledRepositoryContent.test.js.snap +1 -1
- data/webpack/scenes/RedHatRepositories/index.scss +1 -1
- data/webpack/scenes/SmartProxy/ExpandableCvDetails.js +27 -7
- data/webpack/scenes/SmartProxy/ExpandedSmartProxyRepositories.js +51 -2
- data/webpack/scenes/SmartProxy/SmartProxyExpandableTable.js +2 -2
- data/webpack/scenes/SmartProxy/__tests__/SmartProxyContentTest.js +14 -9
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationForm.scss +1 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CustomCdnTypeForm.js +2 -2
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/NetworkSyncForm.js +6 -6
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CdnTypeForm.test.js +2 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/CustomCdnTypeForm.test.js +2 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/ExportSyncForm.test.js +2 -1
- data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/NetworkSyncForm.test.js +2 -1
- metadata +72 -53
- data/app/models/katello/yum_metadata_file.rb +0 -22
- data/app/services/katello/pulp3/yum_metadata_file.rb +0 -20
- data/db/migrate/20250714190050_add_missing_rpms_evr_index.rb +0 -14
@@ -1,9 +1,19 @@
|
|
1
1
|
import React, { useState, useCallback } from 'react';
|
2
2
|
import { FormattedMessage } from 'react-intl';
|
3
3
|
import {
|
4
|
-
Skeleton,
|
5
|
-
|
4
|
+
Skeleton,
|
5
|
+
Split,
|
6
|
+
SplitItem,
|
7
|
+
ActionList,
|
8
|
+
ActionListItem,
|
9
|
+
Alert,
|
6
10
|
} from '@patternfly/react-core';
|
11
|
+
import {
|
12
|
+
Dropdown,
|
13
|
+
DropdownItem,
|
14
|
+
DropdownToggle,
|
15
|
+
DropdownToggleAction,
|
16
|
+
} from '@patternfly/react-core/deprecated';
|
7
17
|
import { translate as __ } from 'foremanReact/common/I18n';
|
8
18
|
import { TableVariant, Thead, Tbody, Tr, Th, Td } from '@patternfly/react-table';
|
9
19
|
import { ExclamationTriangleIcon } from '@patternfly/react-icons';
|
@@ -233,13 +243,13 @@ const TracesTab = () => {
|
|
233
243
|
>
|
234
244
|
<Thead>
|
235
245
|
<Tr ouiaId="row-header">
|
236
|
-
<Th key="select_checkbox" />
|
246
|
+
<Th key="select_checkbox" aria-label="select table header" />
|
237
247
|
<SortableColumnHeaders
|
238
248
|
columnHeaders={columnHeaders}
|
239
249
|
pfSortParams={pfSortParams}
|
240
250
|
columnsToSortParams={COLUMNS_TO_SORT_PARAMS}
|
241
251
|
/>
|
242
|
-
<Th key="action_menu" />
|
252
|
+
<Th key="action_menu" aria-label="action menu table header" />
|
243
253
|
</Tr>
|
244
254
|
</Thead>
|
245
255
|
<Tbody>
|
@@ -257,7 +267,7 @@ const TracesTab = () => {
|
|
257
267
|
let rowDropdownItems = [
|
258
268
|
{ title: 'Restart via remote execution', onClick: () => onRestartApp(id), isDisabled: actionInProgress },
|
259
269
|
{
|
260
|
-
|
270
|
+
title: <a href={resolveTraceUrl({ hostname, search: tracesSearchQuery(id) })}>{__('Restart via customized remote execution')}</a>,
|
261
271
|
},
|
262
272
|
];
|
263
273
|
if (resolveDisabled) {
|
@@ -270,7 +280,7 @@ const TracesTab = () => {
|
|
270
280
|
{showActions ? (
|
271
281
|
<Td
|
272
282
|
select={{
|
273
|
-
|
283
|
+
isDisabled: actionInProgress || resolveDisabled,
|
274
284
|
props: {
|
275
285
|
'aria-label': `check-${application}`,
|
276
286
|
},
|
@@ -77,7 +77,8 @@ test('Can call API for installable deb packages and show on screen on page load'
|
|
77
77
|
await patientlyWaitFor(() => expect(getAllByText(firstPackages.name)[0]).toBeInTheDocument());
|
78
78
|
// Assert request was made and completed, see helper function
|
79
79
|
assertNockRequest(autocompleteScope);
|
80
|
-
assertNockRequest(scope
|
80
|
+
assertNockRequest(scope);
|
81
|
+
done(); // Pass jest callback to confirm test is done
|
81
82
|
});
|
82
83
|
|
83
84
|
test('Can handle no installable deb packages being present', async (done) => {
|
@@ -109,7 +110,8 @@ test('Can handle no installable deb packages being present', async (done) => {
|
|
109
110
|
await patientlyWaitFor(() => expect(queryByText('No packages available to install')).toBeInTheDocument());
|
110
111
|
// Assert request was made and completed, see helper function
|
111
112
|
assertNockRequest(autocompleteScope);
|
112
|
-
assertNockRequest(scope
|
113
|
+
assertNockRequest(scope);
|
114
|
+
done(); // Pass jest callback to confirm test is done
|
113
115
|
});
|
114
116
|
|
115
117
|
|
@@ -146,7 +148,8 @@ test('Can install a deb package via remote execution', async (done) => {
|
|
146
148
|
|
147
149
|
expect(triggerPackageInstall).toHaveBeenCalled();
|
148
150
|
assertNockRequest(autocompleteScope);
|
149
|
-
assertNockRequest(scope
|
151
|
+
assertNockRequest(scope);
|
152
|
+
done();
|
150
153
|
});
|
151
154
|
|
152
155
|
test('Can install a deb package via customized remote execution', async (done) => {
|
@@ -183,7 +186,8 @@ test('Can install a deb package via customized remote execution', async (done) =
|
|
183
186
|
`/job_invocations/new?feature=${REX_FEATURES.KATELLO_PACKAGE_INSTALL}&search=name%20%5E%20(test-host)&inputs%5Bpackage%5D=duck,cheetah`,
|
184
187
|
);
|
185
188
|
assertNockRequest(autocompleteScope);
|
186
|
-
assertNockRequest(scope
|
189
|
+
assertNockRequest(scope);
|
190
|
+
done();
|
187
191
|
});
|
188
192
|
|
189
193
|
test('Uses packages_install_by_search_query template when in select all mode', async (done) => {
|
@@ -221,6 +225,7 @@ test('Uses packages_install_by_search_query template when in select all mode', a
|
|
221
225
|
`/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)`,
|
222
226
|
);
|
223
227
|
assertNockRequest(autocompleteScope);
|
224
|
-
assertNockRequest(scope
|
228
|
+
assertNockRequest(scope);
|
229
|
+
done();
|
225
230
|
});
|
226
231
|
|
@@ -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';
|
@@ -75,7 +75,8 @@ test('Can call API for packages and show on screen on page load', async (done) =
|
|
75
75
|
await patientlyWaitFor(() => expect(getAllByText(firstDeb.name)[0]).toBeInTheDocument());
|
76
76
|
// Assert request was made and completed, see helper function
|
77
77
|
assertNockRequest(autocompleteScope);
|
78
|
-
assertNockRequest(scope
|
78
|
+
assertNockRequest(scope);
|
79
|
+
done(); // Pass jest callback to confirm test is done
|
79
80
|
});
|
80
81
|
|
81
82
|
test('Can handle no packages being present', async (done) => {
|
@@ -101,7 +102,8 @@ test('Can handle no packages being present', async (done) => {
|
|
101
102
|
await patientlyWaitFor(() => expect(queryByText('This host does not have any packages.')).toBeInTheDocument());
|
102
103
|
// Assert request was made and completed, see helper function
|
103
104
|
assertNockRequest(autocompleteScope);
|
104
|
-
assertNockRequest(scope
|
105
|
+
assertNockRequest(scope);
|
106
|
+
done(); // Pass jest callback to confirm test is done
|
105
107
|
});
|
106
108
|
|
107
109
|
test('Can filter by package status', async (done) => {
|
@@ -132,7 +134,9 @@ test('Can filter by package status', async (done) => {
|
|
132
134
|
|
133
135
|
const statusDropdown = queryByText('Status', { ignore: 'th' });
|
134
136
|
expect(statusDropdown).toBeInTheDocument();
|
135
|
-
|
137
|
+
await act(async () => {
|
138
|
+
fireEvent.click(statusDropdown);
|
139
|
+
});
|
136
140
|
const upgradable = getByRole('option', { name: 'select Upgradable' });
|
137
141
|
fireEvent.click(upgradable);
|
138
142
|
await patientlyWaitFor(() => {
|
@@ -143,7 +147,8 @@ test('Can filter by package status', async (done) => {
|
|
143
147
|
|
144
148
|
assertNockRequest(autocompleteScope);
|
145
149
|
assertNockRequest(scope);
|
146
|
-
assertNockRequest(scope2
|
150
|
+
assertNockRequest(scope2);
|
151
|
+
done(); // Pass jest callback to confirm test is done
|
147
152
|
});
|
148
153
|
|
149
154
|
test('Can upgrade a package via remote execution', async (done) => {
|
@@ -182,25 +187,32 @@ test('Can upgrade a package via remote execution', async (done) => {
|
|
182
187
|
|
183
188
|
const statusDropdown = getByText('Status', { ignore: 'th' });
|
184
189
|
expect(statusDropdown).toBeInTheDocument();
|
185
|
-
|
190
|
+
await act(async () => {
|
191
|
+
fireEvent.click(statusDropdown);
|
192
|
+
});
|
186
193
|
const upgradable = getByRole('option', { name: 'select Upgradable' });
|
187
194
|
fireEvent.click(upgradable);
|
188
195
|
await patientlyWaitFor(() => {
|
189
196
|
expect(getByText('libmagic1')).toBeInTheDocument();
|
190
197
|
expect(getByText('libapt-pkg6.0')).toBeInTheDocument();
|
191
198
|
});
|
192
|
-
|
193
|
-
|
194
|
-
|
199
|
+
const kebabDropdown = getAllByLabelText('Kebab toggle');
|
200
|
+
await act(async () => {
|
201
|
+
kebabDropdown[0].click();
|
202
|
+
});
|
195
203
|
|
196
204
|
const rexAction = getByText('Upgrade via remote execution');
|
197
205
|
await patientlyWaitFor(() => expect(rexAction).toBeInTheDocument());
|
198
|
-
|
206
|
+
|
207
|
+
await act(async () => {
|
208
|
+
fireEvent.click(rexAction);
|
209
|
+
});
|
199
210
|
|
200
211
|
assertNockRequest(autocompleteScope);
|
201
212
|
assertNockRequest(scope);
|
202
213
|
assertNockRequest(statusScope);
|
203
|
-
assertNockRequest(upgradeScope
|
214
|
+
assertNockRequest(upgradeScope);
|
215
|
+
done();
|
204
216
|
});
|
205
217
|
|
206
218
|
test('Can upgrade a package via customized remote execution', async (done) => {
|
@@ -227,7 +239,9 @@ test('Can upgrade a package via customized remote execution', async (done) => {
|
|
227
239
|
|
228
240
|
const statusDropdown = getByText('Status', { ignore: 'th' });
|
229
241
|
expect(statusDropdown).toBeInTheDocument();
|
230
|
-
|
242
|
+
await act(async () => {
|
243
|
+
fireEvent.click(statusDropdown);
|
244
|
+
});
|
231
245
|
const upgradable = getByRole('option', { name: 'select Upgradable' });
|
232
246
|
fireEvent.click(upgradable);
|
233
247
|
await patientlyWaitFor(() => {
|
@@ -235,8 +249,10 @@ test('Can upgrade a package via customized remote execution', async (done) => {
|
|
235
249
|
expect(getByText('libmagic1')).toBeInTheDocument();
|
236
250
|
});
|
237
251
|
|
238
|
-
const kebabDropdown = getAllByLabelText('
|
239
|
-
|
252
|
+
const kebabDropdown = getAllByLabelText('Kebab toggle');
|
253
|
+
await act(async () => {
|
254
|
+
kebabDropdown[0].click();
|
255
|
+
});
|
240
256
|
|
241
257
|
const rexAction = getByText('Upgrade via customized remote execution');
|
242
258
|
const feature = REX_FEATURES.KATELLO_PACKAGE_UPDATE;
|
@@ -248,11 +264,14 @@ test('Can upgrade a package via customized remote execution', async (done) => {
|
|
248
264
|
`/job_invocations/new?feature=${feature}&search=name%20%5E%20(${hostname})&inputs%5Bpackage%5D=${packageName}`,
|
249
265
|
);
|
250
266
|
|
251
|
-
|
267
|
+
await act(async () => {
|
268
|
+
fireEvent.click(rexAction);
|
269
|
+
});
|
252
270
|
|
253
271
|
assertNockRequest(autocompleteScope);
|
254
272
|
assertNockRequest(scope);
|
255
|
-
assertNockRequest(statusScope
|
273
|
+
assertNockRequest(statusScope);
|
274
|
+
done();
|
256
275
|
});
|
257
276
|
|
258
277
|
test('Can bulk upgrade via remote execution', async (done) => {
|
@@ -295,11 +314,14 @@ test('Can bulk upgrade via remote execution', async (done) => {
|
|
295
314
|
|
296
315
|
const rexAction = getByLabelText('bulk_upgrade_rex');
|
297
316
|
expect(rexAction).toBeInTheDocument();
|
298
|
-
|
317
|
+
await act(async () => {
|
318
|
+
fireEvent.click(rexAction);
|
319
|
+
});
|
299
320
|
|
300
321
|
assertNockRequest(autocompleteScope);
|
301
322
|
assertNockRequest(scope);
|
302
|
-
assertNockRequest(upgradeScope
|
323
|
+
assertNockRequest(upgradeScope);
|
324
|
+
done();
|
303
325
|
});
|
304
326
|
|
305
327
|
test('Can bulk upgrade via customized remote execution', async (done) => {
|
@@ -338,7 +360,8 @@ test('Can bulk upgrade via customized remote execution', async (done) => {
|
|
338
360
|
expect(rexAction).toHaveAttribute('href', job);
|
339
361
|
|
340
362
|
assertNockRequest(autocompleteScope);
|
341
|
-
assertNockRequest(scope
|
363
|
+
assertNockRequest(scope);
|
364
|
+
done();
|
342
365
|
});
|
343
366
|
|
344
367
|
test('Upgrade is disabled when there are non-upgradable packages selected', async (done) => {
|
@@ -368,7 +391,8 @@ test('Upgrade is disabled when there are non-upgradable packages selected', asyn
|
|
368
391
|
expect(upgradeDropdown).toHaveAttribute('disabled');
|
369
392
|
|
370
393
|
assertNockRequest(autocompleteScope);
|
371
|
-
assertNockRequest(scope
|
394
|
+
assertNockRequest(scope);
|
395
|
+
done();
|
372
396
|
});
|
373
397
|
|
374
398
|
test('Remove is disabled when in select all mode', async (done) => {
|
@@ -394,7 +418,8 @@ test('Remove is disabled when in select all mode', async (done) => {
|
|
394
418
|
expect(removeButton).toHaveAttribute('aria-disabled', 'true');
|
395
419
|
|
396
420
|
assertNockRequest(autocompleteScope);
|
397
|
-
assertNockRequest(scope
|
421
|
+
assertNockRequest(scope);
|
422
|
+
done();
|
398
423
|
});
|
399
424
|
|
400
425
|
test('Sets initial search query from url params', async (done) => {
|
@@ -415,6 +440,7 @@ test('Sets initial search query from url params', async (done) => {
|
|
415
440
|
expect(queryByText(secondDeb.name)).not.toBeInTheDocument();
|
416
441
|
|
417
442
|
assertNockRequest(autocompleteScope);
|
418
|
-
assertNockRequest(scope
|
443
|
+
assertNockRequest(scope);
|
444
|
+
done(); // Pass jest callback to confirm test is done
|
419
445
|
});
|
420
446
|
|
@@ -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, mockForemanAutocomplete } from '../../../../../test-utils/nockWrapper';
|
4
4
|
import { foremanApi } from '../../../../../services/api';
|
5
5
|
import { HOST_ERRATA_KEY, ERRATA_SEARCH_QUERY } from '../ErrataTab/HostErrataConstants';
|
@@ -20,6 +20,9 @@ const contentFacetAttributes = {
|
|
20
20
|
id: 11,
|
21
21
|
uuid: 'e5761ea3-4117-4ecf-83d0-b694f99b389e',
|
22
22
|
content_view_default: false,
|
23
|
+
contentView: {
|
24
|
+
rolling: false,
|
25
|
+
},
|
23
26
|
lifecycle_environment_library: false,
|
24
27
|
errata_counts: {
|
25
28
|
total: 3,
|
@@ -123,7 +126,8 @@ test('Can call API for errata and show on screen on page load', async (done) =>
|
|
123
126
|
await patientlyWaitFor(() => expect(getAllByText(firstErrata.severity)[0]).toBeInTheDocument());
|
124
127
|
// Assert request was made and completed, see helper function
|
125
128
|
assertNockRequest(autocompleteScope);
|
126
|
-
assertNockRequest(scope
|
129
|
+
assertNockRequest(scope);
|
130
|
+
done(); // Pass jest callback to confirm test is done
|
127
131
|
});
|
128
132
|
|
129
133
|
test('Can handle no errata being present', async (done) => {
|
@@ -149,7 +153,8 @@ test('Can handle no errata being present', async (done) => {
|
|
149
153
|
await patientlyWaitFor(() => expect(queryByText('This host has errata that are applicable, but not installable. Adjust your filters and try again.')).toBeInTheDocument());
|
150
154
|
// Assert request was made and completed, see helper function
|
151
155
|
assertNockRequest(autocompleteScope);
|
152
|
-
assertNockRequest(scope
|
156
|
+
assertNockRequest(scope);
|
157
|
+
done(); // Pass jest callback to confirm test is done
|
153
158
|
});
|
154
159
|
|
155
160
|
test('Can display expanded errata details', async (done) => {
|
@@ -192,7 +197,8 @@ test('Can display expanded errata details', async (done) => {
|
|
192
197
|
expect(queryByText(firstErrata.summary)).not.toBeInTheDocument();
|
193
198
|
// Assert request was made and completed, see helper function
|
194
199
|
assertNockRequest(autocompleteScope);
|
195
|
-
assertNockRequest(scope
|
200
|
+
assertNockRequest(scope);
|
201
|
+
done(); // Pass jest callback to confirm test is done
|
196
202
|
});
|
197
203
|
|
198
204
|
test('Can select one errata', async (done) => {
|
@@ -225,7 +231,8 @@ test('Can select one errata', async (done) => {
|
|
225
231
|
expect(queryByText('1 selected')).toBeInTheDocument();
|
226
232
|
|
227
233
|
assertNockRequest(autocompleteScope);
|
228
|
-
assertNockRequest(scope
|
234
|
+
assertNockRequest(scope);
|
235
|
+
done(); // Pass jest callback to confirm test is done
|
229
236
|
});
|
230
237
|
|
231
238
|
test('Can select all errata across pages through checkbox', async (done) => {
|
@@ -265,8 +272,10 @@ test('Can select all errata across pages through checkbox', async (done) => {
|
|
265
272
|
expect(getByLabelText('Select row 0').checked).toEqual(true);
|
266
273
|
|
267
274
|
assertNockRequest(autocompleteScope);
|
268
|
-
assertNockRequest(scope
|
269
|
-
|
275
|
+
assertNockRequest(scope);
|
276
|
+
done();
|
277
|
+
assertNockRequest(scope2);
|
278
|
+
done(); // Pass jest callback to confirm test is done
|
270
279
|
});
|
271
280
|
|
272
281
|
test('Can deselect all errata across pages through checkbox', async (done) => {
|
@@ -310,8 +319,10 @@ test('Can deselect all errata across pages through checkbox', async (done) => {
|
|
310
319
|
expect(getByLabelText('Select row 0').checked).toEqual(false);
|
311
320
|
|
312
321
|
assertNockRequest(autocompleteScope);
|
313
|
-
assertNockRequest(scope
|
314
|
-
|
322
|
+
assertNockRequest(scope);
|
323
|
+
done(); // Pass jest callback to confirm test is done
|
324
|
+
assertNockRequest(scope2);
|
325
|
+
done();
|
315
326
|
});
|
316
327
|
|
317
328
|
|
@@ -352,8 +363,10 @@ test('Can select & deselect errata across pages', async (done) => {
|
|
352
363
|
expect(queryByText('4 selected')).toBeInTheDocument();
|
353
364
|
|
354
365
|
assertNockRequest(autocompleteScope);
|
355
|
-
assertNockRequest(scope
|
356
|
-
|
366
|
+
assertNockRequest(scope);
|
367
|
+
done(); // Pass jest callback to confirm test is done
|
368
|
+
assertNockRequest(scope2);
|
369
|
+
done();
|
357
370
|
});
|
358
371
|
|
359
372
|
test('Can select & de-select all errata through selectDropDown', async (done) => {
|
@@ -394,7 +407,8 @@ test('Can select & de-select all errata through selectDropDown', async (done) =>
|
|
394
407
|
expect(getByLabelText('Select row 0').checked).toEqual(false);
|
395
408
|
|
396
409
|
assertNockRequest(autocompleteScope);
|
397
|
-
assertNockRequest(scope
|
410
|
+
assertNockRequest(scope);
|
411
|
+
done(); // Pass jest callback to confirm test is done
|
398
412
|
});
|
399
413
|
|
400
414
|
test('Can de-select items in select all mode across pages', async (done) => {
|
@@ -460,9 +474,12 @@ test('Can de-select items in select all mode across pages', async (done) => {
|
|
460
474
|
expect(getByLabelText('Select row 1').checked).toEqual(false);
|
461
475
|
|
462
476
|
assertNockRequest(autocompleteScope);
|
463
|
-
assertNockRequest(scope
|
464
|
-
|
465
|
-
assertNockRequest(
|
477
|
+
assertNockRequest(scope);
|
478
|
+
done(); // Pass jest callback to confirm test is done
|
479
|
+
assertNockRequest(scope2);
|
480
|
+
done();
|
481
|
+
assertNockRequest(scope3);
|
482
|
+
done();
|
466
483
|
});
|
467
484
|
|
468
485
|
test('Can select page and select only items on the page', async (done) => {
|
@@ -496,7 +513,8 @@ test('Can select page and select only items on the page', async (done) => {
|
|
496
513
|
expect(getByLabelText('Select row 0').checked).toEqual(true);
|
497
514
|
|
498
515
|
assertNockRequest(autocompleteScope);
|
499
|
-
assertNockRequest(scope
|
516
|
+
assertNockRequest(scope);
|
517
|
+
done(); // Pass jest callback to confirm test is done
|
500
518
|
});
|
501
519
|
|
502
520
|
test('Select all is disabled if all rows are selected', async (done) => {
|
@@ -550,7 +568,8 @@ test('Select all is disabled if all rows are selected', async (done) => {
|
|
550
568
|
expect(getByText('Select none (0)')).toHaveAttribute('aria-disabled', 'false');
|
551
569
|
|
552
570
|
assertNockRequest(autocompleteScope);
|
553
|
-
assertNockRequest(scope
|
571
|
+
assertNockRequest(scope);
|
572
|
+
done(); // Pass jest callback to confirm test is done
|
554
573
|
});
|
555
574
|
|
556
575
|
test('Toggle Group shows if it\'s not the default content view or library enviroment', async (done) => {
|
@@ -572,7 +591,8 @@ test('Toggle Group shows if it\'s not the default content view or library enviro
|
|
572
591
|
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
573
592
|
expect(queryByLabelText('Installable Errata')).toBeInTheDocument();
|
574
593
|
assertNockRequest(autocompleteScope);
|
575
|
-
assertNockRequest(scope
|
594
|
+
assertNockRequest(scope);
|
595
|
+
done(); // Pass jest callback to confirm test is done
|
576
596
|
});
|
577
597
|
|
578
598
|
test('Toggle Group shows if it\'s the default content view but non-library environment', async (done) => {
|
@@ -598,7 +618,8 @@ test('Toggle Group shows if it\'s the default content view but non-library envir
|
|
598
618
|
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
599
619
|
expect(queryByLabelText('Installable Errata')).toBeInTheDocument();
|
600
620
|
assertNockRequest(autocompleteScope);
|
601
|
-
assertNockRequest(scope
|
621
|
+
assertNockRequest(scope);
|
622
|
+
done(); // Pass jest callback to confirm test is done
|
602
623
|
});
|
603
624
|
|
604
625
|
test('Toggle Group shows if it\'s the library environment but non-default content view', async (done) => {
|
@@ -625,7 +646,8 @@ test('Toggle Group shows if it\'s the library environment but non-default conten
|
|
625
646
|
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
626
647
|
expect(queryByLabelText('Installable Errata')).toBeInTheDocument();
|
627
648
|
assertNockRequest(autocompleteScope);
|
628
|
-
assertNockRequest(scope
|
649
|
+
assertNockRequest(scope);
|
650
|
+
done(); // Pass jest callback to confirm test is done
|
629
651
|
});
|
630
652
|
|
631
653
|
test('Toggle Group does not show if it\'s the default content view and library environment', async (done) => {
|
@@ -648,6 +670,36 @@ test('Toggle Group does not show if it\'s the default content view and library e
|
|
648
670
|
getAllByText,
|
649
671
|
} = renderWithRedux(<ErrataTab />, options);
|
650
672
|
|
673
|
+
// Assert that the errata are now showing on the screen, but wait for them to appear.
|
674
|
+
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
675
|
+
expect(queryByLabelText('Installable Errata')).not.toBeInTheDocument();
|
676
|
+
assertNockRequest(autocompleteScope);
|
677
|
+
assertNockRequest(scope);
|
678
|
+
done(); // Pass jest callback to confirm test is done
|
679
|
+
});
|
680
|
+
|
681
|
+
test('Toggle Group does not show if it\'s a rolling content view and library environment', async (done) => {
|
682
|
+
// Setup autocomplete with mockForemanAutoComplete since we aren't adding /katello
|
683
|
+
const autocompleteScope = mockForemanAutocomplete(nockInstance, autocompleteUrl);
|
684
|
+
const mockErrata = makeMockErrata({});
|
685
|
+
const options = renderOptions({
|
686
|
+
...cfWithErrataTotal(mockErrata.total),
|
687
|
+
contentView: {
|
688
|
+
rolling: true,
|
689
|
+
},
|
690
|
+
lifecycle_environment_library: true,
|
691
|
+
});
|
692
|
+
// return errata data results when we look for errata
|
693
|
+
const scope = nockInstance
|
694
|
+
.get(hostErrata)
|
695
|
+
.query(defaultQuery)
|
696
|
+
.reply(200, mockErrata);
|
697
|
+
|
698
|
+
const {
|
699
|
+
queryByLabelText,
|
700
|
+
getAllByText,
|
701
|
+
} = renderWithRedux(<ErrataTab />, options);
|
702
|
+
|
651
703
|
// Assert that the errata are now showing on the screen, but wait for them to appear.
|
652
704
|
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
653
705
|
expect(queryByLabelText('Installable Errata')).not.toBeInTheDocument();
|
@@ -676,7 +728,8 @@ test('Selection is disabled for errata which are applicable but not installable'
|
|
676
728
|
expect(getByLabelText('Select row 1')).not.toBeDisabled();
|
677
729
|
|
678
730
|
assertNockRequest(autocompleteScope);
|
679
|
-
assertNockRequest(scope
|
731
|
+
assertNockRequest(scope);
|
732
|
+
done(); // Pass jest callback to confirm test is done
|
680
733
|
});
|
681
734
|
|
682
735
|
test('Can select only installable errata across pages through checkbox', async (done) => {
|
@@ -719,8 +772,10 @@ test('Can select only installable errata across pages through checkbox', async (
|
|
719
772
|
expect(getByLabelText('Select row 0').checked).toEqual(true);
|
720
773
|
|
721
774
|
assertNockRequest(autocompleteScope);
|
722
|
-
assertNockRequest(scope
|
723
|
-
|
775
|
+
assertNockRequest(scope);
|
776
|
+
done();
|
777
|
+
assertNockRequest(scope2);
|
778
|
+
done(); // Pass jest callback to confirm test is done
|
724
779
|
});
|
725
780
|
|
726
781
|
test('Can toggle with the Toggle Group ', async (done) => {
|
@@ -746,7 +801,8 @@ test('Can toggle with the Toggle Group ', async (done) => {
|
|
746
801
|
expect(getByText('Applicable').parentElement).toHaveAttribute('aria-pressed', 'false');
|
747
802
|
expect(getAllByText('Installable')[0].parentElement).toHaveAttribute('aria-pressed', 'true');
|
748
803
|
assertNockRequest(autocompleteScope);
|
749
|
-
assertNockRequest(scope
|
804
|
+
assertNockRequest(scope);
|
805
|
+
done(); // Pass jest callback to confirm test is done
|
750
806
|
});
|
751
807
|
|
752
808
|
test('Can filter by errata type', async (done) => {
|
@@ -788,7 +844,8 @@ test('Can filter by errata type', async (done) => {
|
|
788
844
|
|
789
845
|
assertNockRequest(autocompleteScope);
|
790
846
|
assertNockRequest(scope);
|
791
|
-
assertNockRequest(scope2
|
847
|
+
assertNockRequest(scope2);
|
848
|
+
done(); // Pass jest callback to confirm test is done
|
792
849
|
});
|
793
850
|
|
794
851
|
test('Can filter by severity', async (done) => {
|
@@ -815,7 +872,7 @@ test('Can filter by severity', async (done) => {
|
|
815
872
|
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
816
873
|
// the Bugfix text in the table is just a text node, while the dropdown is a button
|
817
874
|
expect(getByText('Moderate', { ignore: ['button', 'title'] })).toBeInTheDocument();
|
818
|
-
expect(getByText('Important', { ignore: ['.pf-c-select__toggle-text', 'title'] })).toBeInTheDocument();
|
875
|
+
expect(getByText('Important', { ignore: ['.pf-v5-c-select__toggle-text', 'title'] })).toBeInTheDocument();
|
819
876
|
expect(getByText('Critical', { ignore: ['button', 'title'] })).toBeInTheDocument();
|
820
877
|
const severityContainer = queryByLabelText('select Severity container', { ignore: 'th' });
|
821
878
|
const severityDropdown = within(severityContainer).queryByText('Severity');
|
@@ -824,17 +881,18 @@ test('Can filter by severity', async (done) => {
|
|
824
881
|
const important = getByRole('option', { name: 'select Important' });
|
825
882
|
fireEvent.click(important);
|
826
883
|
await patientlyWaitFor(() => {
|
827
|
-
expect(queryByText('Moderate', { ignore: ['.pf-c-select__toggle-text'] })).not.toBeInTheDocument();
|
828
|
-
expect(queryByText('Critical', { ignore: ['.pf-c-select__toggle-text'] })).not.toBeInTheDocument();
|
884
|
+
expect(queryByText('Moderate', { ignore: ['.pf-v5-c-select__toggle-text'] })).not.toBeInTheDocument();
|
885
|
+
expect(queryByText('Critical', { ignore: ['.pf-v5-c-select__toggle-text'] })).not.toBeInTheDocument();
|
829
886
|
});
|
830
887
|
await patientlyWaitFor(() => {
|
831
|
-
expect(getByText('Important', { ignore: ['.pf-c-select__toggle-text', 'title'] })).toBeInTheDocument();
|
888
|
+
expect(getByText('Important', { ignore: ['.pf-v5-c-select__toggle-text', 'title'] })).toBeInTheDocument();
|
832
889
|
});
|
833
890
|
|
834
891
|
|
835
892
|
assertNockRequest(autocompleteScope);
|
836
893
|
assertNockRequest(scope);
|
837
|
-
assertNockRequest(scope2
|
894
|
+
assertNockRequest(scope2);
|
895
|
+
done(); // Pass jest callback to confirm test is done
|
838
896
|
});
|
839
897
|
|
840
898
|
test('Can bulk apply via remote execution', async (done) => {
|
@@ -871,11 +929,14 @@ test('Can bulk apply via remote execution', async (done) => {
|
|
871
929
|
actionMenu.click();
|
872
930
|
const viaRexAction = queryByText('Apply via remote execution');
|
873
931
|
expect(viaRexAction).toBeInTheDocument();
|
874
|
-
|
932
|
+
await act(async () => {
|
933
|
+
viaRexAction.click();
|
934
|
+
});
|
875
935
|
|
876
936
|
assertNockRequest(autocompleteScope);
|
877
937
|
assertNockRequest(resolveErrataScope);
|
878
|
-
assertNockRequest(scope
|
938
|
+
assertNockRequest(scope);
|
939
|
+
done();
|
879
940
|
});
|
880
941
|
|
881
942
|
test('Can select all, exclude and bulk apply via remote execution', async (done) => {
|
@@ -911,11 +972,14 @@ test('Can select all, exclude and bulk apply via remote execution', async (done)
|
|
911
972
|
actionMenu.click();
|
912
973
|
const viaRexAction = queryByText('Apply via remote execution');
|
913
974
|
expect(viaRexAction).toBeInTheDocument();
|
914
|
-
|
975
|
+
await act(async () => {
|
976
|
+
viaRexAction.click();
|
977
|
+
});
|
915
978
|
|
916
979
|
assertNockRequest(autocompleteScope);
|
917
980
|
assertNockRequest(resolveErrataScope);
|
918
|
-
assertNockRequest(scope
|
981
|
+
assertNockRequest(scope);
|
982
|
+
done();
|
919
983
|
});
|
920
984
|
|
921
985
|
test('Can apply errata in bulk via customized remote execution', async (done) => {
|
@@ -947,9 +1011,12 @@ test('Can apply errata in bulk via customized remote execution', async (done) =>
|
|
947
1011
|
`/job_invocations/new?feature=${feature}&search=name%20%5E%20(${hostName})&inputs%5BErrata%20search%20query%5D=errata_id%20%5E%20(${errata})`,
|
948
1012
|
);
|
949
1013
|
|
950
|
-
|
1014
|
+
await act(async () => {
|
1015
|
+
viaRexAction.click();
|
1016
|
+
});
|
951
1017
|
assertNockRequest(autocompleteScope);
|
952
|
-
assertNockRequest(scope
|
1018
|
+
assertNockRequest(scope);
|
1019
|
+
done();
|
953
1020
|
});
|
954
1021
|
|
955
1022
|
test('Can apply a single erratum to the host via remote execution', async (done) => {
|
@@ -973,20 +1040,25 @@ test('Can apply a single erratum to the host via remote execution', async (done)
|
|
973
1040
|
renderOptions(cfWithErrataTotal(mockErrata.total)),
|
974
1041
|
);
|
975
1042
|
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
976
|
-
const erratumActionMenu = within(getByLabelText('Select row 0').closest('tr')).getByLabelText('
|
977
|
-
expect(erratumActionMenu).toHaveAttribute('aria-label', '
|
978
|
-
|
1043
|
+
const erratumActionMenu = within(getByLabelText('Select row 0').closest('tr')).getByLabelText('Kebab toggle');
|
1044
|
+
expect(erratumActionMenu).toHaveAttribute('aria-label', 'Kebab toggle');
|
1045
|
+
await act(async () => {
|
1046
|
+
erratumActionMenu.click();
|
1047
|
+
});
|
979
1048
|
|
980
1049
|
let viaRexAction;
|
981
1050
|
await patientlyWaitFor(() => {
|
982
1051
|
viaRexAction = getByText('Apply via remote execution');
|
983
1052
|
expect(viaRexAction).toBeInTheDocument();
|
984
1053
|
});
|
985
|
-
|
1054
|
+
await act(async () => {
|
1055
|
+
viaRexAction.click();
|
1056
|
+
});
|
986
1057
|
|
987
1058
|
assertNockRequest(autocompleteScope);
|
988
1059
|
assertNockRequest(resolveErrataScope);
|
989
|
-
assertNockRequest(scope
|
1060
|
+
assertNockRequest(scope);
|
1061
|
+
done();
|
990
1062
|
});
|
991
1063
|
|
992
1064
|
test('Can apply a single erratum to the host via customized remote execution', async (done) => {
|
@@ -1005,20 +1077,24 @@ test('Can apply a single erratum to the host via customized remote execution', a
|
|
1005
1077
|
renderOptions(cfWithErrataTotal(mockErrata.total)),
|
1006
1078
|
);
|
1007
1079
|
await patientlyWaitFor(() => expect(getAllByText('Important')[0]).toBeInTheDocument());
|
1008
|
-
const erratumActionMenu = within(getByLabelText('Select row 0').closest('tr')).getByLabelText('
|
1009
|
-
expect(erratumActionMenu).toHaveAttribute('aria-label', '
|
1010
|
-
|
1011
|
-
|
1080
|
+
const erratumActionMenu = within(getByLabelText('Select row 0').closest('tr')).getByLabelText('Kebab toggle');
|
1081
|
+
expect(erratumActionMenu).toHaveAttribute('aria-label', 'Kebab toggle');
|
1082
|
+
await act(async () => {
|
1083
|
+
erratumActionMenu.click();
|
1084
|
+
});
|
1012
1085
|
let viaRexAction;
|
1013
1086
|
await patientlyWaitFor(() => {
|
1014
1087
|
viaRexAction = getByText('Apply via customized remote execution');
|
1015
1088
|
expect(viaRexAction).toBeInTheDocument();
|
1016
1089
|
});
|
1017
|
-
|
1090
|
+
await act(async () => {
|
1091
|
+
viaRexAction.click();
|
1092
|
+
});
|
1018
1093
|
expect(viaRexAction).toHaveAttribute(
|
1019
1094
|
'href',
|
1020
1095
|
`/job_invocations/new?feature=${feature}&search=name%20%5E%20(${hostName})&inputs%5BErrata%20search%20query%5D=errata_id%20=%20${errataId}`,
|
1021
1096
|
);
|
1022
1097
|
assertNockRequest(autocompleteScope);
|
1023
|
-
assertNockRequest(scope
|
1098
|
+
assertNockRequest(scope);
|
1099
|
+
done();
|
1024
1100
|
});
|