43 lines
1.1 KiB
Ruby
43 lines
1.1 KiB
Ruby
# 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
|
|
expect do
|
|
described_class.new(
|
|
git_remote: "origin",
|
|
strength: "super-strength",
|
|
wisdom: "deep"
|
|
)
|
|
end.to raise_error("[:strength, :wisdom]")
|
|
end
|
|
end
|
|
end
|
|
|
|
describe "#[]=(key, value)" do
|
|
let(:options) { described_class.new(git_remote: "origin") }
|
|
|
|
context "with known options" do
|
|
it "sets the option value" do
|
|
expect do
|
|
options[:git_remote] = "in the cloud"
|
|
end.to change { options[:git_remote] }.to "in the cloud"
|
|
end
|
|
end
|
|
|
|
context "with unknown options" do
|
|
it "raises an error" do
|
|
expect do
|
|
options[:charisma] = 8
|
|
end.to raise_error(":charisma")
|
|
end
|
|
end
|
|
end
|
|
end
|