mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-22 12:55:56 +01:00
Convert admin/domain_allows
spec controller->system (#33365)
This commit is contained in:
parent
1acc54cfc7
commit
87c892191a
2 changed files with 62 additions and 49 deletions
|
@ -1,49 +0,0 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Admin::DomainAllowsController do
|
||||
render_views
|
||||
|
||||
before do
|
||||
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
|
||||
end
|
||||
|
||||
describe 'GET #new' do
|
||||
it 'assigns a new domain allow' do
|
||||
get :new
|
||||
|
||||
expect(response).to have_http_status(200)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST #create' do
|
||||
it 'blocks the domain when succeeded to save' do
|
||||
post :create, params: { domain_allow: { domain: 'example.com' } }
|
||||
|
||||
expect(flash[:notice]).to eq I18n.t('admin.domain_allows.created_msg')
|
||||
expect(response).to redirect_to(admin_instances_path)
|
||||
end
|
||||
|
||||
it 'renders new when failed to save' do
|
||||
Fabricate(:domain_allow, domain: 'example.com')
|
||||
|
||||
post :create, params: { domain_allow: { domain: 'example.com' } }
|
||||
|
||||
expect(response).to render_template :new
|
||||
end
|
||||
end
|
||||
|
||||
describe 'DELETE #destroy' do
|
||||
it 'disallows the domain' do
|
||||
service = instance_double(UnallowDomainService, call: true)
|
||||
allow(UnallowDomainService).to receive(:new).and_return(service)
|
||||
domain_allow = Fabricate(:domain_allow)
|
||||
delete :destroy, params: { id: domain_allow.id }
|
||||
|
||||
expect(service).to have_received(:call).with(domain_allow)
|
||||
expect(flash[:notice]).to eq I18n.t('admin.domain_allows.destroyed_msg')
|
||||
expect(response).to redirect_to(admin_instances_path)
|
||||
end
|
||||
end
|
||||
end
|
62
spec/system/admin/domain_allows_spec.rb
Normal file
62
spec/system/admin/domain_allows_spec.rb
Normal file
|
@ -0,0 +1,62 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Admin::DomainAllows' do
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
let(:domain) { 'host.example' }
|
||||
|
||||
before do
|
||||
Fabricate :account, domain: domain
|
||||
Instance.refresh
|
||||
sign_in user
|
||||
end
|
||||
|
||||
around do |example|
|
||||
original = Rails.configuration.x.limited_federation_mode
|
||||
Rails.configuration.x.limited_federation_mode = true
|
||||
|
||||
example.run
|
||||
|
||||
Rails.configuration.x.limited_federation_mode = original
|
||||
end
|
||||
|
||||
describe 'Managing domain allows' do
|
||||
it 'saves and then deletes a record' do
|
||||
# Visit new page
|
||||
visit new_admin_domain_allow_path
|
||||
click_on I18n.t('admin.domain_allows.add_new')
|
||||
expect(page)
|
||||
.to have_content(I18n.t('admin.domain_allows.add_new'))
|
||||
|
||||
# Submit invalid with missing domain
|
||||
fill_in 'domain_allow_domain', with: ''
|
||||
expect { submit_form }
|
||||
.to not_change(DomainAllow, :count)
|
||||
expect(page)
|
||||
.to have_content(/error below/)
|
||||
|
||||
# Submit valid with domain present
|
||||
fill_in 'domain_allow_domain', with: domain
|
||||
expect { submit_form }
|
||||
.to change(DomainAllow, :count).by(1)
|
||||
expect(page)
|
||||
.to have_content(I18n.t('admin.domain_allows.created_msg'))
|
||||
|
||||
# Visit instance page and delete the domain allow
|
||||
visit admin_instance_path(domain)
|
||||
expect { delete_domain_allow }
|
||||
.to change(DomainAllow, :count).by(-1)
|
||||
expect(page)
|
||||
.to have_content(I18n.t('admin.domain_allows.destroyed_msg'))
|
||||
end
|
||||
|
||||
def submit_form
|
||||
click_on I18n.t('admin.domain_allows.add_new')
|
||||
end
|
||||
|
||||
def delete_domain_allow
|
||||
click_on I18n.t('admin.domain_allows.undo')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue