Add specs for environment class
This commit is contained in:
parent
c7e33266ec
commit
2891c0d168
2 changed files with 65 additions and 2 deletions
|
@ -1,11 +1,11 @@
|
||||||
module Psenv
|
module Psenv
|
||||||
class Environment < Hash
|
class Environment < Hash
|
||||||
def apply
|
def apply
|
||||||
each { |k, v| ENV.store(k, v) unless ENV.has_key?(k) }
|
each { |k, v| ENV.store(k.to_s, v) unless ENV.has_key?(k.to_s) }
|
||||||
end
|
end
|
||||||
|
|
||||||
def apply!
|
def apply!
|
||||||
each { |k, v| ENV.store(k, v) }
|
each { |k, v| ENV.store(k.to_s, v) }
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.create(*variables)
|
def self.create(*variables)
|
||||||
|
|
63
spec/environment_spec.rb
Normal file
63
spec/environment_spec.rb
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
require "spec_helper"
|
||||||
|
|
||||||
|
RSpec.describe Psenv::Environment do
|
||||||
|
let(:environment1) { { A: "1", B: "1" } }
|
||||||
|
let(:environment2) { { B: "2", C: "2" } }
|
||||||
|
|
||||||
|
context ".create" do
|
||||||
|
subject { Psenv::Environment.create(environment1, environment2) }
|
||||||
|
|
||||||
|
it "returns an environment object" do
|
||||||
|
expect(subject).to be_kind_of(Psenv::Environment)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "is also a hash" do
|
||||||
|
expect(subject).to be_kind_of(Hash)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "creates the correct environment" do
|
||||||
|
expected = { A: "1", B: "1", C: "2" }
|
||||||
|
expect(subject).to eq(expected)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "#apply" do
|
||||||
|
before(:each) do
|
||||||
|
ENV.store("A", "0")
|
||||||
|
environment = Psenv::Environment.create(environment1, environment2)
|
||||||
|
environment.apply
|
||||||
|
end
|
||||||
|
|
||||||
|
it "does not overwrite existing environment" do
|
||||||
|
expect(ENV["A"]).to eq("0")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "applies unique variables as expected" do
|
||||||
|
expect(ENV["C"]).to eq("2")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "applies duplicates based on the first provided" do
|
||||||
|
expect(ENV["B"]).to eq("1")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "#apply!" do
|
||||||
|
before(:each) do
|
||||||
|
ENV.store("A", "0")
|
||||||
|
environment = Psenv::Environment.create(environment1, environment2)
|
||||||
|
environment.apply!
|
||||||
|
end
|
||||||
|
|
||||||
|
it "does overwrite existing environment" do
|
||||||
|
expect(ENV["A"]).to eq("1")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "applies unique variables as expected" do
|
||||||
|
expect(ENV["C"]).to eq("2")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "applies duplicates based on the first provided" do
|
||||||
|
expect(ENV["B"]).to eq("1")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue