diff --git a/app/assets/javascripts/administrate/controllers/table_controller.js b/app/assets/javascripts/administrate/controllers/table_controller.js index ad0279d6a0..e2a84bce31 100644 --- a/app/assets/javascripts/administrate/controllers/table_controller.js +++ b/app/assets/javascripts/administrate/controllers/table_controller.js @@ -9,7 +9,7 @@ export default class extends Controller { event.keyCode == keycodes.space || event.keyCode == keycodes.enter) { - if (event.target.href) { + if (event.target.closest("a[href], button, input[type='submit']")) { return; } diff --git a/spec/features/orders_index_spec.rb b/spec/features/orders_index_spec.rb index 47923a060f..320427f99f 100644 --- a/spec/features/orders_index_spec.rb +++ b/spec/features/orders_index_spec.rb @@ -57,6 +57,17 @@ ) end + scenario "clicking destroy does not navigate to show page", js: true do + create(:order) + + visit admin_orders_path + dismiss_confirm do + click_on t("administrate.actions.destroy") + end + + expect(page).to have_current_path(admin_orders_path) + end + scenario "cannot delete because associated payment", js: true do create(:payment, order: create(:order))