Add test coverage for `Mastodon::SettingsCLI` (#24856)
parent
64fae0efb5
commit
c9210af3ee
1 changed files with 64 additions and 0 deletions
@ -0,0 +1,64 @@ |
||||
# frozen_string_literal: true |
||||
|
||||
require 'rails_helper' |
||||
require 'mastodon/settings_cli' |
||||
|
||||
RSpec.describe Mastodon::SettingsCLI do |
||||
describe 'subcommand "registrations"' do |
||||
let(:cli) { Mastodon::RegistrationsCLI.new } |
||||
|
||||
before do |
||||
Setting.registrations_mode = nil |
||||
end |
||||
|
||||
describe '#open' do |
||||
it 'changes "registrations_mode" to "open"' do |
||||
expect { cli.open }.to change(Setting, :registrations_mode).from(nil).to('open') |
||||
end |
||||
|
||||
it 'displays success message' do |
||||
expect { cli.open }.to output( |
||||
a_string_including('OK') |
||||
).to_stdout |
||||
end |
||||
end |
||||
|
||||
describe '#approved' do |
||||
it 'changes "registrations_mode" to "approved"' do |
||||
expect { cli.approved }.to change(Setting, :registrations_mode).from(nil).to('approved') |
||||
end |
||||
|
||||
it 'displays success message' do |
||||
expect { cli.approved }.to output( |
||||
a_string_including('OK') |
||||
).to_stdout |
||||
end |
||||
|
||||
context 'with --require-reason' do |
||||
before do |
||||
cli.options = { require_reason: true } |
||||
end |
||||
|
||||
it 'changes "registrations_mode" to "approved"' do |
||||
expect { cli.approved }.to change(Setting, :registrations_mode).from(nil).to('approved') |
||||
end |
||||
|
||||
it 'sets "require_invite_text" to "true"' do |
||||
expect { cli.approved }.to change(Setting, :require_invite_text).from(false).to(true) |
||||
end |
||||
end |
||||
end |
||||
|
||||
describe '#close' do |
||||
it 'changes "registrations_mode" to "none"' do |
||||
expect { cli.close }.to change(Setting, :registrations_mode).from(nil).to('none') |
||||
end |
||||
|
||||
it 'displays success message' do |
||||
expect { cli.close }.to output( |
||||
a_string_including('OK') |
||||
).to_stdout |
||||
end |
||||
end |
||||
end |
||||
end |
Loading…
Reference in new issue