Add specs for ChangelogOptionParser in bin/changelog
This commit is contained in:
parent
23312b484f
commit
5acb3230ef
2 changed files with 67 additions and 1 deletions
|
@ -42,7 +42,7 @@ class ChangelogOptionParser
|
|||
end
|
||||
|
||||
opts.on('-h', '--help', 'Print help message') do
|
||||
puts opts
|
||||
$stdout.puts opts
|
||||
exit
|
||||
end
|
||||
end
|
||||
|
@ -72,6 +72,7 @@ class ChangelogEntry
|
|||
|
||||
$stdout.puts "\e[32mcreate\e[0m #{file_path}"
|
||||
$stdout.puts contents
|
||||
|
||||
unless options.dry_run
|
||||
write
|
||||
amend_commit if options.amend
|
||||
|
|
65
spec/bin/changelog_spec.rb
Normal file
65
spec/bin/changelog_spec.rb
Normal file
|
@ -0,0 +1,65 @@
|
|||
require 'spec_helper'
|
||||
|
||||
load File.expand_path('../../bin/changelog', __dir__)
|
||||
|
||||
describe 'bin/changelog' do
|
||||
describe ChangelogOptionParser do
|
||||
it 'parses --ammend' do
|
||||
options = described_class.parse(%w[foo bar --amend])
|
||||
|
||||
expect(options.amend).to eq true
|
||||
end
|
||||
|
||||
it 'parses --merge-request' do
|
||||
options = described_class.parse(%w[foo --merge-request 1234 bar])
|
||||
|
||||
expect(options.merge_request).to eq 1234
|
||||
end
|
||||
|
||||
it 'parses -m' do
|
||||
options = described_class.parse(%w[foo -m 4321 bar])
|
||||
|
||||
expect(options.merge_request).to eq 4321
|
||||
end
|
||||
|
||||
it 'parses --dry-run' do
|
||||
options = described_class.parse(%w[foo --dry-run bar])
|
||||
|
||||
expect(options.dry_run).to eq true
|
||||
end
|
||||
|
||||
it 'parses -n' do
|
||||
options = described_class.parse(%w[foo -n bar])
|
||||
|
||||
expect(options.dry_run).to eq true
|
||||
end
|
||||
|
||||
it 'parses --git-username' do
|
||||
allow(described_class).to receive(:git_user_name).and_return('Jane Doe')
|
||||
options = described_class.parse(%w[foo --git-username bar])
|
||||
|
||||
expect(options.author).to eq 'Jane Doe'
|
||||
end
|
||||
|
||||
it 'parses -u' do
|
||||
allow(described_class).to receive(:git_user_name).and_return('John Smith')
|
||||
options = described_class.parse(%w[foo -u bar])
|
||||
|
||||
expect(options.author).to eq 'John Smith'
|
||||
end
|
||||
|
||||
it 'parses -h' do
|
||||
expect do
|
||||
$stdout = StringIO.new
|
||||
|
||||
described_class.parse(%w[foo -h bar])
|
||||
end.to raise_error(SystemExit)
|
||||
end
|
||||
|
||||
it 'assigns title' do
|
||||
options = described_class.parse(%W[foo -m 1 bar\n -u baz\r\n --amend])
|
||||
|
||||
expect(options.title).to eq 'foo bar baz'
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue