diff --git a/config/routes.rb b/config/routes.rb index 1ed080457..203a954d1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -523,7 +523,7 @@ Rails.application.routes.draw do resources :access_tokens, only: [:index, :show] resources :installation_configs, only: [:index, :new, :create, :show, :edit, :update] - resources :agent_bots, only: [:index, :new, :create, :show, :edit, :update] do + resources :agent_bots, only: [:index, :new, :create, :show, :edit, :update, :destroy] do delete :avatar, on: :member, action: :destroy_avatar end resources :platform_apps, only: [:index, :new, :create, :show, :edit, :update, :destroy] diff --git a/spec/controllers/super_admin/agent_bots_controller_spec.rb b/spec/controllers/super_admin/agent_bots_controller_spec.rb index 4c514c0f0..276d9896f 100644 --- a/spec/controllers/super_admin/agent_bots_controller_spec.rb +++ b/spec/controllers/super_admin/agent_bots_controller_spec.rb @@ -43,4 +43,25 @@ RSpec.describe 'Super Admin agent-bots API', type: :request do end end end + + describe 'DELETE /super_admin/agent_bots/:id' do + let!(:agent_bot) { create(:agent_bot) } + + context 'when it is an unauthenticated super admin' do + it 'returns unauthorized' do + delete "/super_admin/agent_bots/#{agent_bot.id}" + expect(response).to have_http_status(:redirect) + expect(AgentBot.find_by(id: agent_bot.id)).to be_present + end + end + + context 'when it is an authenticated super admin' do + it 'deletes the agent bot' do + sign_in(super_admin, scope: :super_admin) + delete "/super_admin/agent_bots/#{agent_bot.id}" + expect(response).to have_http_status(:redirect) + expect(AgentBot.find_by(id: agent_bot.id)).to be_nil + end + end + end end