Convert admin/domain_allows spec controller->system (#33365)

This commit is contained in:
Matt Jankowski 2024-12-20 03:04:22 -05:00 committed by GitHub
parent 1acc54cfc7
commit 87c892191a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 62 additions and 49 deletions

View file

@ -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

View 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