|
|
|
@ -34,6 +34,63 @@ RSpec.describe Admin::InstancesController do
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe 'GET #show' do
|
|
|
|
|
it 'shows an instance page' do
|
|
|
|
|
get :show, params: { id: account_popular_main.domain }
|
|
|
|
|
|
|
|
|
|
expect(response).to have_http_status(200)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe 'POST #clear_delivery_errors' do
|
|
|
|
|
let(:tracker) { instance_double(DeliveryFailureTracker, clear_failures!: true) }
|
|
|
|
|
|
|
|
|
|
before { allow(DeliveryFailureTracker).to receive(:new).and_return(tracker) }
|
|
|
|
|
|
|
|
|
|
it 'clears instance delivery errors' do
|
|
|
|
|
post :clear_delivery_errors, params: { id: account_popular_main.domain }
|
|
|
|
|
|
|
|
|
|
expect(response).to redirect_to(admin_instance_path(account_popular_main.domain))
|
|
|
|
|
expect(tracker).to have_received(:clear_failures!)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe 'POST #restart_delivery' do
|
|
|
|
|
let(:tracker) { instance_double(DeliveryFailureTracker, track_success!: true) }
|
|
|
|
|
|
|
|
|
|
before { allow(DeliveryFailureTracker).to receive(:new).and_return(tracker) }
|
|
|
|
|
|
|
|
|
|
context 'with an unavailable instance' do
|
|
|
|
|
before { Fabricate(:unavailable_domain, domain: account_popular_main.domain) }
|
|
|
|
|
|
|
|
|
|
it 'tracks success on the instance' do
|
|
|
|
|
post :restart_delivery, params: { id: account_popular_main.domain }
|
|
|
|
|
|
|
|
|
|
expect(response).to redirect_to(admin_instance_path(account_popular_main.domain))
|
|
|
|
|
expect(tracker).to have_received(:track_success!)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
context 'with an available instance' do
|
|
|
|
|
it 'does not track success on the instance' do
|
|
|
|
|
post :restart_delivery, params: { id: account_popular_main.domain }
|
|
|
|
|
|
|
|
|
|
expect(response).to redirect_to(admin_instance_path(account_popular_main.domain))
|
|
|
|
|
expect(tracker).to_not have_received(:track_success!)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe 'POST #stop_delivery' do
|
|
|
|
|
it 'clears instance delivery errors' do
|
|
|
|
|
expect do
|
|
|
|
|
post :stop_delivery, params: { id: account_popular_main.domain }
|
|
|
|
|
end.to change(UnavailableDomain, :count).by(1)
|
|
|
|
|
|
|
|
|
|
expect(response).to redirect_to(admin_instance_path(account_popular_main.domain))
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
describe 'DELETE #destroy' do
|
|
|
|
|
subject { delete :destroy, params: { id: Instance.first.id } }
|
|
|
|
|
|
|
|
|
|