Merge pull request #1 from atomaka/feature/retriever-specs
Add retriever specs
This commit is contained in:
commit
b6061f18ca
7 changed files with 107 additions and 21 deletions
|
@ -1,6 +1,7 @@
|
||||||
AllCops:
|
AllCops:
|
||||||
Exclude:
|
Exclude:
|
||||||
- db/schema.rb
|
- db/schema.rb
|
||||||
|
- vendor/**/*
|
||||||
|
|
||||||
Metrics/LineLength:
|
Metrics/LineLength:
|
||||||
Description: 'Limit lines to 80 characters.'
|
Description: 'Limit lines to 80 characters.'
|
||||||
|
|
|
@ -1,5 +1,13 @@
|
||||||
sudo: false
|
sudo: false
|
||||||
|
cache: bundler
|
||||||
language: ruby
|
language: ruby
|
||||||
rvm:
|
rvm:
|
||||||
- 2.4.2
|
- 2.4.2
|
||||||
before_install: gem install bundler -v 1.16.1
|
before_install: gem install bundler -v 1.16.1
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
include:
|
||||||
|
- stage: analyze
|
||||||
|
script: bundle exec rubocop
|
||||||
|
- stage: test
|
||||||
|
script: bundle exec rspec
|
||||||
|
|
43
Gemfile.lock
43
Gemfile.lock
|
@ -1,56 +1,57 @@
|
||||||
PATH
|
PATH
|
||||||
remote: .
|
remote: .
|
||||||
specs:
|
specs:
|
||||||
psenv (0.2.0)
|
psenv (0.2.1)
|
||||||
aws-sdk-ssm (~> 1)
|
aws-sdk-ssm (~> 1)
|
||||||
psenv-rails (0.2.0)
|
psenv-rails (0.2.1)
|
||||||
psenv (= 0.2.0)
|
psenv (= 0.2.1)
|
||||||
railties (>= 3.2, < 5.2)
|
railties (>= 3.2, < 5.2)
|
||||||
|
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actionpack (5.1.5)
|
actionpack (5.1.6)
|
||||||
actionview (= 5.1.5)
|
actionview (= 5.1.6)
|
||||||
activesupport (= 5.1.5)
|
activesupport (= 5.1.6)
|
||||||
rack (~> 2.0)
|
rack (~> 2.0)
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||||
actionview (5.1.5)
|
actionview (5.1.6)
|
||||||
activesupport (= 5.1.5)
|
activesupport (= 5.1.6)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubi (~> 1.4)
|
erubi (~> 1.4)
|
||||||
rails-dom-testing (~> 2.0)
|
rails-dom-testing (~> 2.0)
|
||||||
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
||||||
activesupport (5.1.5)
|
activesupport (5.1.6)
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||||
i18n (~> 0.7)
|
i18n (>= 0.7, < 2)
|
||||||
minitest (~> 5.1)
|
minitest (~> 5.1)
|
||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
addressable (2.5.2)
|
addressable (2.5.2)
|
||||||
public_suffix (>= 2.0.2, < 4.0)
|
public_suffix (>= 2.0.2, < 4.0)
|
||||||
ast (2.4.0)
|
ast (2.4.0)
|
||||||
aws-partitions (1.74.0)
|
aws-partitions (1.79.0)
|
||||||
aws-sdk-core (3.18.0)
|
aws-sdk-core (3.19.0)
|
||||||
aws-partitions (~> 1.0)
|
aws-partitions (~> 1.0)
|
||||||
aws-sigv4 (~> 1.0)
|
aws-sigv4 (~> 1.0)
|
||||||
jmespath (~> 1.0)
|
jmespath (~> 1.0)
|
||||||
aws-sdk-ssm (1.8.0)
|
aws-sdk-ssm (1.10.0)
|
||||||
aws-sdk-core (~> 3)
|
aws-sdk-core (~> 3)
|
||||||
aws-sigv4 (~> 1.0)
|
aws-sigv4 (~> 1.0)
|
||||||
aws-sigv4 (1.0.2)
|
aws-sigv4 (1.0.2)
|
||||||
builder (3.2.3)
|
builder (3.2.3)
|
||||||
|
coderay (1.1.2)
|
||||||
concurrent-ruby (1.0.5)
|
concurrent-ruby (1.0.5)
|
||||||
crack (0.4.3)
|
crack (0.4.3)
|
||||||
safe_yaml (~> 1.0.0)
|
safe_yaml (~> 1.0.0)
|
||||||
crass (1.0.3)
|
crass (1.0.4)
|
||||||
diff-lcs (1.3)
|
diff-lcs (1.3)
|
||||||
erubi (1.7.1)
|
erubi (1.7.1)
|
||||||
hashdiff (0.3.7)
|
hashdiff (0.3.7)
|
||||||
i18n (0.9.5)
|
i18n (1.0.0)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
jmespath (1.3.1)
|
jmespath (1.4.0)
|
||||||
loofah (2.2.2)
|
loofah (2.2.2)
|
||||||
crass (~> 1.0.2)
|
crass (~> 1.0.2)
|
||||||
nokogiri (>= 1.5.9)
|
nokogiri (>= 1.5.9)
|
||||||
|
@ -63,6 +64,9 @@ GEM
|
||||||
parser (2.5.0.5)
|
parser (2.5.0.5)
|
||||||
ast (~> 2.4.0)
|
ast (~> 2.4.0)
|
||||||
powerpack (0.1.1)
|
powerpack (0.1.1)
|
||||||
|
pry (0.11.3)
|
||||||
|
coderay (~> 1.1.0)
|
||||||
|
method_source (~> 0.9.0)
|
||||||
public_suffix (3.0.2)
|
public_suffix (3.0.2)
|
||||||
rack (2.0.4)
|
rack (2.0.4)
|
||||||
rack-test (1.0.0)
|
rack-test (1.0.0)
|
||||||
|
@ -72,9 +76,9 @@ GEM
|
||||||
nokogiri (>= 1.6)
|
nokogiri (>= 1.6)
|
||||||
rails-html-sanitizer (1.0.4)
|
rails-html-sanitizer (1.0.4)
|
||||||
loofah (~> 2.2, >= 2.2.2)
|
loofah (~> 2.2, >= 2.2.2)
|
||||||
railties (5.1.5)
|
railties (5.1.6)
|
||||||
actionpack (= 5.1.5)
|
actionpack (= 5.1.6)
|
||||||
activesupport (= 5.1.5)
|
activesupport (= 5.1.6)
|
||||||
method_source
|
method_source
|
||||||
rake (>= 0.8.7)
|
rake (>= 0.8.7)
|
||||||
thor (>= 0.18.1, < 2.0)
|
thor (>= 0.18.1, < 2.0)
|
||||||
|
@ -117,6 +121,7 @@ PLATFORMS
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
bundler (~> 1.16)
|
bundler (~> 1.16)
|
||||||
|
pry
|
||||||
psenv!
|
psenv!
|
||||||
psenv-rails!
|
psenv-rails!
|
||||||
rake (~> 10.0)
|
rake (~> 10.0)
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
module Psenv
|
module Psenv
|
||||||
VERSION = "0.2.0".freeze
|
VERSION = "0.2.1".freeze
|
||||||
end
|
end
|
||||||
|
|
|
@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
|
||||||
spec.require_paths = ["lib"]
|
spec.require_paths = ["lib"]
|
||||||
|
|
||||||
spec.add_development_dependency "bundler", "~> 1.16"
|
spec.add_development_dependency "bundler", "~> 1.16"
|
||||||
|
spec.add_development_dependency "pry"
|
||||||
spec.add_development_dependency "rake", "~> 10.0"
|
spec.add_development_dependency "rake", "~> 10.0"
|
||||||
spec.add_development_dependency "rspec", "~> 3.0"
|
spec.add_development_dependency "rspec", "~> 3.0"
|
||||||
spec.add_development_dependency "rubocop", "0.54"
|
spec.add_development_dependency "rubocop", "0.54"
|
||||||
|
|
|
@ -49,6 +49,6 @@ RSpec.describe Psenv::Environment do
|
||||||
|
|
||||||
it "applies duplicates based on the first provided" do
|
it "applies duplicates based on the first provided" do
|
||||||
expect(ENV["B"]).to eq("1")
|
expect(ENV["B"]).to eq("1")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
71
spec/retriever_spec.rb
Normal file
71
spec/retriever_spec.rb
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
require "spec_helper"
|
||||||
|
|
||||||
|
require "ostruct"
|
||||||
|
|
||||||
|
RSpec.describe Psenv::Parameter do
|
||||||
|
context ".new" do
|
||||||
|
let(:parameter) do
|
||||||
|
{
|
||||||
|
name: "/psenv/test/VARIABLE",
|
||||||
|
value: "value",
|
||||||
|
type: "String",
|
||||||
|
version: 1,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
subject { Psenv::Parameter.new(parameter) }
|
||||||
|
|
||||||
|
it "creates a paraemeter object" do
|
||||||
|
expect(subject).to be_kind_of(Psenv::Parameter)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "stores the correct name" do
|
||||||
|
expect(subject.name).to eq("VARIABLE")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "stores the value" do
|
||||||
|
expect(subject.value).to eq("value")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
RSpec.describe Psenv::Retriever do
|
||||||
|
context ".new" do
|
||||||
|
it "creates a retriever object" do
|
||||||
|
expect(Psenv::Retriever.new("A")).to be_kind_of(Psenv::Retriever)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "#call" do
|
||||||
|
let(:ssm) { double }
|
||||||
|
before(:each) { allow(Aws::SSM::Client).to receive(:new) { ssm } }
|
||||||
|
|
||||||
|
subject { Psenv::Retriever.new("/psenv/test").call }
|
||||||
|
|
||||||
|
context "with a successful request" do
|
||||||
|
before(:each) do
|
||||||
|
allow(ssm).to receive(:get_parameters_by_path) {
|
||||||
|
OpenStruct.new(
|
||||||
|
parameters: [{
|
||||||
|
name: "/psenv/test/API_KEY",
|
||||||
|
value: "value",
|
||||||
|
type: "String",
|
||||||
|
version: 1,
|
||||||
|
}],
|
||||||
|
)
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns the parsed parameters" do
|
||||||
|
expect(subject).to eq("API_KEY" => "value")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when the request fails" do
|
||||||
|
before(:each) { allow(ssm).to receive(:get_parameters_by_path).and_raise }
|
||||||
|
|
||||||
|
it "raises a RetrieveError" do
|
||||||
|
expect { subject }.to raise_error(Psenv::RetrieveError)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue