mirror of https://github.com/mastodon/mastodon
63 lines
1.7 KiB
Ruby
63 lines
1.7 KiB
Ruby
# 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
|