github-changelog-generator/spec/unit/options_spec.rb

44 lines
1.0 KiB
Ruby
Raw Permalink Normal View History

# frozen_string_literal: true
RSpec.describe GitHubChangelogGenerator::Options do
describe "#initialize" do
context "with known options" do
it "instantiates successfully" do
expect(described_class.new(user: "olle")[:user]).to eq("olle")
end
end
context "with unknown options" do
it "raises an error" do
2016-10-05 21:31:19 +00:00
expect do
described_class.new(
project: "rails",
strength: "super-strength",
wisdom: "deep"
)
2016-10-05 21:31:19 +00:00
end.to raise_error("[:strength, :wisdom]")
end
end
end
describe "#[]=(key, value)" do
let(:options) { described_class.new(project: "rails") }
context "with known options" do
it "sets the option value" do
2016-10-05 21:31:19 +00:00
expect do
options[:project] = "trails"
end.to change { options[:project] }.to "trails"
end
end
context "with unknown options" do
it "raises an error" do
2016-10-05 21:31:19 +00:00
expect do
options[:charisma] = 8
2016-10-05 21:31:19 +00:00
end.to raise_error(":charisma")
end
end
end
end