chef-vault-testfixtures 0.2.0 → 0.3.0.20150417141427

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 19d2d915545cbff172ba5a8e6fee939877d15c5a
4
- data.tar.gz: d27ad94cf7553f39fb24dd61a354fddc377a5421
3
+ metadata.gz: 061b4ef41c4e3bc41a4fa2e4ba49e09b79f83e9b
4
+ data.tar.gz: db49f7226f5d2684e3c0203853d86e0fa200e880
5
5
  SHA512:
6
- metadata.gz: e1e0413a2092e8c8ad11ed9efc00eae282d02a32855c192e02afe9466c22f7e1f0313460433f18491870dea4f9252d68bdd4b03f440dd66072c8c4c1215f787a
7
- data.tar.gz: f1243a77fd15d6c9484a6b83542ec2e5024a7fc998521716c52f6d3079de5155a4b77a0a8b45dafecccd803c627c237d10203c0e807ce307c5b5a864ed754454
6
+ metadata.gz: 14b2a13313dc979b9053c3d079e9b48d00c1800709899aa052922eb3ec2ed9de886d91bea740291e4329d75f5a4a5ff423466eb719ee685ff4b5f159e3871a4a
7
+ data.tar.gz: 7a575c3ea9cfd60c8c3661e0c2f0d67843da3956b908ae55a22d59e8ebaf166223832f7b5a430bc29abbaee2a7ed03432619aa6b26dad8b5e50102e957b22eb8
data/Guardfile CHANGED
@@ -9,7 +9,7 @@ guard :rubocop, all_on_start: true, cli: ['-D'] do
9
9
  watch('Rakefile')
10
10
  end
11
11
 
12
- guard :rspec, all_on_start: true, cmd: 'bundle exec rescue rspec' do
12
+ guard :rspec, all_on_start: true, cmd: 'bundle exec rspec' do
13
13
  watch(%r{^spec/(.+)_spec\.rb$})
14
14
  watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
15
15
  watch(%r{^spec/spec_helper.*\.rb$}) { 'spec' }
data/History.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog for chef-vault-testfixtures
2
2
 
3
+ ## 0.3.0
4
+
5
+ * completely re-work to use JSON data bag files in test/integration for compatibility with the fallback mechanism in the chef-vault cookbook
6
+
3
7
  ## 0.2.0
4
8
 
5
9
  * move chef dependency out of runtime and into development - rubygems 1.8.x (which chef-client shipped with prior to 11.8.0) has major problems now that Chef v11 and v12 are both available
data/Manifest.txt CHANGED
@@ -12,5 +12,3 @@ lib/chef-vault/test_fixtures.rb
12
12
  lib/hoe/markdown.rb
13
13
  spec/lib/chef-vault/test_fixtures_spec.rb
14
14
  spec/spec_helper.rb
15
- spec/support/chef-vault/test_fixtures/bar.rb
16
- spec/support/chef-vault/test_fixtures/foo.rb
data/README.md CHANGED
@@ -9,51 +9,40 @@
9
9
  ## DESCRIPTION
10
10
 
11
11
  chef-vault-testfixtures provides an RSpec shared context that
12
- dynamically stubs access to chef-vault encrypted data bags.
12
+ stubs access to chef-vault encrypted data bags using the same
13
+ fallback mechanism as the `chef_vault_item` helper from the
14
+ [chef-vault cookbook](https://supermarket.chef.io/cookbooks/chef-vault)
13
15
 
14
16
  ## USAGE
15
17
 
16
- [chef-vault](https://github.com/Nordstrom/chef-vault) is a gem to manage distribution and control of keys to
17
- decrypt Chef encrypted data bags.
18
+ [chef-vault](https://github.com/Nordstrom/chef-vault) is a gem to manage
19
+ distribution and control of keys to decrypt Chef encrypted data bags.
18
20
 
19
21
  When testing a cookbook that uses chef-vault, encryption is generally
20
- out of scope, which results in a large number of stubs or mocks so that you can get back fixture data without performing decryption.
22
+ out of scope, which results in a large number of stubs or mocks so that
23
+ you can get back fixture data without performing decryption.
21
24
 
22
- This gem makes testing Chef cookbooks easier using ChefSpec by
23
- dynamically stubbing attempts to access vault data to return invalid
24
- (i.e. not real passwords for any of your environments) that are properly
25
- formatted (e.g. a vault item containing an RSA key really contains one)
25
+ Chef created the [chef-vault cookbook](https://supermarket.chef.io/cookbooks/chef-vault)
26
+ to make integration testing easier. If you use the `chef_vault_item`
27
+ helper provided by that cookbook, then failing to load the vault
28
+ causes the helper to fall back to a normal JSON data bag in the
29
+ directory `test/integration/data_bags`.
26
30
 
27
- The intended use case is that for each group of distinct secrets
28
- (e.g. an application stack, or a development team) you create one or
29
- more plugins. The plugins contain data that is specific to your
30
- application.
31
-
32
- Since plugins can be whitelisted or blacklisted when the shared
33
- context is created, this makes it easy to only include the appropriate
34
- secrets in a given cookbook's tests.
35
-
36
- Attempts to access secrets that would not be available to a node
37
- during a real chef-client run will not be mocked, which will cause
38
- the double to raise an 'unexpected message received' error.
31
+ This gem makes the unit test side of cookbook testing with ChefSpec
32
+ easier by dynamically stubbing attempts to access vault data to
33
+ use the same JSON data bags as the helper. This allows you to provide
34
+ one source of stubbing data that works for both unit and integration
35
+ test.
39
36
 
40
37
  ## USAGE
41
38
 
42
- In the file `spec/support/chef-vault/test_fixtures/foo.rb`:
39
+ In the file `test/integration/data_bags/foo/bar.json`:
43
40
 
44
- class ChefVault
45
- class TestFixtures
46
- class Foo
47
- def bar
48
- { 'baz' => 2 }
49
- end
50
- end
51
- end
52
- end
41
+ { "password": "sekrit" }
53
42
 
54
43
  In your cookbook Gemfile:
55
44
 
56
- gem 'chef-vault-testfixtures', '~> 0.1'
45
+ gem 'chef-vault-testfixtures', '~> 0.3'
57
46
 
58
47
  In your cookbook `spec/spec_helper.rb`:
59
48
 
@@ -73,123 +62,14 @@ In a cookbook example:
73
62
 
74
63
  The recipe that the example tests:
75
64
 
76
- chef_gem 'chef-vault' do
77
- compile_time true if respond_to?(:compile_time)
78
- end
79
- require 'chef-vault'
80
- item = ChefVault::Item.load('foo', 'bar')
65
+ include_recipe 'chef-vault'
66
+ item = chef_vault_item('foo', 'bar')
81
67
  file '/tmp/foo' do
82
68
  contents item['password']
83
69
  end
84
70
 
85
- The call to `ChefVault::Item.load` will be stubbed so that you don't
86
- need pre-encrypted data or private keys to run your specs.
87
-
88
- ## PLUGINS
89
-
90
- This gem uses [little-plugger](https://rubygems.org/gems/little-plugger)
91
- to make adding vault fixtures easy. Each data bag needs a plugin
92
- named using [little-pluggers's rules](https://github.com/TwP/little-plugger/blob/master/lib/little-plugger.rb#L13-24).
93
-
94
- The plugin must define a class inside the naming hierarchy
95
- `ChefVault::TestFixtures::`. The class name should be the filename
96
- converted to CamelCase (e.g. `foo_bar.rb` = `FooBar`)
97
-
98
- Inside of the plugin, define a class method for each vault item you
99
- want to stub. The method must return a Hash, which contains the
100
- vault data.
101
-
102
- For example, if you wanted to stub the data bag item foo/bar, you would
103
- create the class `ChefVault::TestFixtures::Foo` and inside define a class method `bar`.
104
-
105
- ### ALIASING VAULT ITEMS
106
-
107
- If you want your vault to return the same data for two different
108
- vault items, just alias the method:
109
-
110
- class ChefVault
111
- class TestFixtures
112
- class MyApp
113
- def test
114
- { 'baz' => 1 }
115
- end
116
-
117
- alias_method :prod, :test
118
- end
119
- end
120
- end
121
-
122
- Now you will get the same value for:
123
-
124
- ChefVault::Item.load('my_app', 'test')['baz']
125
-
126
- as you do from
127
-
128
- ChefVault::Item.load('my_app', 'prod')['baz']
129
-
130
- This can be useful when your vaults use `node.chef_environment`
131
- (or a derivative thereof) for the item name.
132
-
133
- ## FINDING VAULTS
134
-
135
- LittlePlugger loads any files in any installed gem that match
136
- the pathspec `lib/chef-vault/test_fixtures/*.rb`. Plugin classes
137
- that are loaded using 'require' are also available as vaults.
138
-
139
- You can bundle one or more plugins as a gem that you can distribute
140
- publicly or privately, or you can distribute them baked into your cookbook.
141
-
142
- For example, in a cookbook create the file `spec/support/chef-vault/test_fixtures/foo.rb`
143
- with the same contents as above. LittlePlugger will not find
144
- this automatically because it's not part of an installed gem, but
145
- by requiring it from your `spec/spec_helper.rb`:
146
-
147
- require 'support/chef-vault/test_fixtures/foo'
148
-
149
- It will be available when `ChefVault::TestFixtures.rspec_shared_context` is called.
150
-
151
- Note that LittlePlugger excludes any plugins that have a class name
152
- all in capitals (because it assumes those are constants). A plugin
153
- for database secrets should be named `Db` instead of `DB`. However,
154
- this is only of interest to plugin authors. When selecting the plugins
155
- to load, the names are always lowercase symbols.
156
-
157
- ## LISTING VAULTS
158
-
159
- To get a list of the stubbed vaults, call
160
-
161
- ChefVault::TestFixtures.load_plugins
162
- list = ChefVault::TestFixtures.plugins.keys
163
-
164
- The return from `::plugins` is a hash of plugin names (as symbols)
165
- to the class or module that provide them.
166
-
167
- The plugin name is always a lowercase symbol.
168
-
169
- ## RESTRICTING WHICH VAULTS ARE USED
170
-
171
- Thanks to Little Plugger, you can change what plugins (vaults) will
172
- be loaded the first time that `#rspec_shared_context` is called.
173
-
174
- To only load certain plugins, call
175
-
176
- ChefVault::TestFixtures.plugin :pluginone, :plugintwo
177
-
178
- before calling `ChefVault::TestFixtures.rspec_shared_context`.
179
-
180
- To prevent certain plugins from being loaded, call
181
-
182
- ChefVault::TestFixtures.disregard_plugin :pluginthree
183
-
184
- before calling `ChefVault::TestFixtures.rspec_shared_context`.
185
-
186
- Note that the context is memoized on first call, so calling `::plugin` or `::disregard_plugin` after calling `::rspec_shared_context` will not change what vaults are available.
187
-
188
- ## COMPANION COOKBOOK FOR TEST KITCHEN
189
-
190
- A [companion cookbook](https://supermarket.chef.io/cookbooks/chef_vault_testfixtures)
191
- is also available that uses the same data to populate vaults during
192
- Test Kitchen integration runs.
71
+ The helper will call `ChefVault::Item.load`, which will be stubbed using
72
+ the data bag from the test/integration/data_bags directory.
193
73
 
194
74
  ## DEPENDENCIES
195
75
 
data/Rakefile CHANGED
@@ -12,7 +12,6 @@ begin
12
12
  license 'apache2'
13
13
  extra_deps << ['rspec', '~> 3.1']
14
14
  extra_deps << ['chef-vault', '~> 2.5']
15
- extra_deps << ['little-plugger', '~> 1.1']
16
15
  extra_dev_deps << ['chef', '~> 12.0']
17
16
  extra_dev_deps << ['hoe', '~> 3.13']
18
17
  extra_dev_deps << ['hoe-gemspec', '~> 1.0']
@@ -25,9 +24,6 @@ begin
25
24
  extra_dev_deps << ['rubocop', '~> 0.29']
26
25
  extra_dev_deps << ['simplecov', '~> 0.9']
27
26
  extra_dev_deps << ['simplecov-console', '~> 0.2']
28
- extra_dev_deps << ['pry-byebug', '~> 3.0']
29
- extra_dev_deps << ['pry-rescue', '~> 1.3']
30
- extra_dev_deps << ['pry-stack_explorer', '~> 0.4']
31
27
  extra_dev_deps << ['yard', '~> 0.8']
32
28
  end
33
29
  # re-generate our gemspec before packaging
@@ -1,23 +1,23 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: chef-vault-testfixtures 0.2.0.20150225121503 ruby lib
2
+ # stub: chef-vault-testfixtures 0.3.0.20150417141427 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "chef-vault-testfixtures"
6
- s.version = "0.2.0.20150225121503"
6
+ s.version = "0.3.0.20150417141427"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib"]
10
10
  s.authors = ["James FitzGibbon"]
11
- s.date = "2015-02-25"
12
- s.description = "chef-vault-testfixtures provides an RSpec shared context that\ndynamically stubs access to chef-vault encrypted data bags."
11
+ s.date = "2015-04-17"
12
+ s.description = "chef-vault-testfixtures provides an RSpec shared context that\nstubs access to chef-vault encrypted data bags using the same\nfallback mechanism as the `chef_vault_item` helper from the\n[chef-vault cookbook](https://supermarket.chef.io/cookbooks/chef-vault)"
13
13
  s.email = ["james.i.fitzgibbon@nordstrom.com"]
14
14
  s.extra_rdoc_files = ["History.md", "Manifest.txt", "README.md"]
15
- s.files = [".rspec", ".rubocop.yml", ".yardopts", "Gemfile", "Guardfile", "History.md", "Manifest.txt", "README.md", "Rakefile", "chef-vault-testfixtures.gemspec", "lib/chef-vault/test_fixtures.rb", "lib/hoe/markdown.rb", "spec/lib/chef-vault/test_fixtures_spec.rb", "spec/spec_helper.rb", "spec/support/chef-vault/test_fixtures/bar.rb", "spec/support/chef-vault/test_fixtures/foo.rb"]
15
+ s.files = [".rspec", ".rubocop.yml", ".yardopts", "Gemfile", "Guardfile", "History.md", "Manifest.txt", "README.md", "Rakefile", "chef-vault-testfixtures.gemspec", "lib/chef-vault/test_fixtures.rb", "lib/hoe/markdown.rb", "spec/lib/chef-vault/test_fixtures_spec.rb", "spec/spec_helper.rb"]
16
16
  s.homepage = "https://github.com/Nordstrom/chef-vault-testfixtures"
17
17
  s.licenses = ["apache2"]
18
18
  s.rdoc_options = ["--main", "README.md"]
19
- s.rubygems_version = "2.4.4"
20
- s.summary = "chef-vault-testfixtures provides an RSpec shared context that dynamically stubs access to chef-vault encrypted data bags."
19
+ s.rubygems_version = "2.4.6"
20
+ s.summary = "chef-vault-testfixtures provides an RSpec shared context that stubs access to chef-vault encrypted data bags using the same fallback mechanism as the `chef_vault_item` helper from the [chef-vault cookbook](https://supermarket.chef.io/cookbooks/chef-vault)"
21
21
 
22
22
  if s.respond_to? :specification_version then
23
23
  s.specification_version = 4
@@ -25,7 +25,6 @@ Gem::Specification.new do |s|
25
25
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
26
  s.add_runtime_dependency(%q<rspec>, ["~> 3.1"])
27
27
  s.add_runtime_dependency(%q<chef-vault>, ["~> 2.5"])
28
- s.add_runtime_dependency(%q<little-plugger>, ["~> 1.1"])
29
28
  s.add_development_dependency(%q<rdoc>, ["~> 4.0"])
30
29
  s.add_development_dependency(%q<chef>, ["~> 12.0"])
31
30
  s.add_development_dependency(%q<hoe>, ["~> 3.13"])
@@ -38,14 +37,10 @@ Gem::Specification.new do |s|
38
37
  s.add_development_dependency(%q<rubocop>, ["~> 0.29"])
39
38
  s.add_development_dependency(%q<simplecov>, ["~> 0.9"])
40
39
  s.add_development_dependency(%q<simplecov-console>, ["~> 0.2"])
41
- s.add_development_dependency(%q<pry-byebug>, ["~> 3.0"])
42
- s.add_development_dependency(%q<pry-rescue>, ["~> 1.3"])
43
- s.add_development_dependency(%q<pry-stack_explorer>, ["~> 0.4"])
44
40
  s.add_development_dependency(%q<yard>, ["~> 0.8"])
45
41
  else
46
42
  s.add_dependency(%q<rspec>, ["~> 3.1"])
47
43
  s.add_dependency(%q<chef-vault>, ["~> 2.5"])
48
- s.add_dependency(%q<little-plugger>, ["~> 1.1"])
49
44
  s.add_dependency(%q<rdoc>, ["~> 4.0"])
50
45
  s.add_dependency(%q<chef>, ["~> 12.0"])
51
46
  s.add_dependency(%q<hoe>, ["~> 3.13"])
@@ -58,15 +53,11 @@ Gem::Specification.new do |s|
58
53
  s.add_dependency(%q<rubocop>, ["~> 0.29"])
59
54
  s.add_dependency(%q<simplecov>, ["~> 0.9"])
60
55
  s.add_dependency(%q<simplecov-console>, ["~> 0.2"])
61
- s.add_dependency(%q<pry-byebug>, ["~> 3.0"])
62
- s.add_dependency(%q<pry-rescue>, ["~> 1.3"])
63
- s.add_dependency(%q<pry-stack_explorer>, ["~> 0.4"])
64
56
  s.add_dependency(%q<yard>, ["~> 0.8"])
65
57
  end
66
58
  else
67
59
  s.add_dependency(%q<rspec>, ["~> 3.1"])
68
60
  s.add_dependency(%q<chef-vault>, ["~> 2.5"])
69
- s.add_dependency(%q<little-plugger>, ["~> 1.1"])
70
61
  s.add_dependency(%q<rdoc>, ["~> 4.0"])
71
62
  s.add_dependency(%q<chef>, ["~> 12.0"])
72
63
  s.add_dependency(%q<hoe>, ["~> 3.13"])
@@ -79,9 +70,6 @@ Gem::Specification.new do |s|
79
70
  s.add_dependency(%q<rubocop>, ["~> 0.29"])
80
71
  s.add_dependency(%q<simplecov>, ["~> 0.9"])
81
72
  s.add_dependency(%q<simplecov-console>, ["~> 0.2"])
82
- s.add_dependency(%q<pry-byebug>, ["~> 3.0"])
83
- s.add_dependency(%q<pry-rescue>, ["~> 1.3"])
84
- s.add_dependency(%q<pry-stack_explorer>, ["~> 0.4"])
85
73
  s.add_dependency(%q<yard>, ["~> 0.8"])
86
74
  end
87
75
  end
@@ -1,15 +1,14 @@
1
+ require 'pathname'
2
+ require 'json'
3
+
1
4
  require 'rspec'
2
5
  require 'rspec/core/shared_context'
3
6
  require 'chef-vault'
4
- require 'little-plugger'
5
7
 
6
8
  class ChefVault
7
9
  # dynamic RSpec contexts for cookbooks that use chef-vault
8
10
  class TestFixtures
9
- VERSION = '0.2.0'
10
-
11
- extend LittlePlugger path: 'chef-vault/test_fixtures',
12
- module: ChefVault::TestFixtures
11
+ VERSION = '0.3.0'
13
12
 
14
13
  # dynamically creates a memoized RSpec shared context
15
14
  # that when included into an example group will stub
@@ -20,36 +19,45 @@ class ChefVault
20
19
  # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
21
20
  def rspec_shared_context
22
21
  @context ||= begin
23
- load_plugins
24
22
  Module.new do
25
23
  extend RSpec::Core::SharedContext
26
24
 
27
- before do
28
- ChefVault::TestFixtures.plugins.each do |vault, klass|
29
- stub_vault(vault, klass)
25
+ before { find_vaults }
26
+
27
+ private
28
+
29
+ def find_vaults
30
+ dbdir = Pathname.new('test') + 'integration' + 'data_bags'
31
+ dbdir.each_child do |vault|
32
+ next unless vault.directory?
33
+ stub_vault(vault)
30
34
  end
31
35
  end
32
36
 
33
- private
37
+ def stub_vault(vault)
38
+ vault.each_child do |e|
39
+ next unless e.file?
40
+ m = e.basename.to_s.downcase.match(/(.+)\.json/i)
41
+ stub_vault_item(vault.basename.to_s, m[1], e.read) if m
42
+ end
43
+ end
34
44
 
35
- def stub_vault(vaultname, pluginclass)
36
- plugin = pluginclass.new
37
- # stub a vault item for each method defined by the plugin
38
- pluginclass.instance_methods(false).each do |item|
39
- fakevault = make_fakevault(vaultname, item)
40
- # stub lookup of each of the vault item keys
41
- plugin.send(item).each do |k, v|
42
- allow(fakevault).to receive(:[]).with(k).and_return(v)
43
- end
44
- # stub chef-vault to return the fake vault, via both symbol
45
- # and string forms of the data bag name
46
- [vaultname, vaultname.to_s].each do |data_bag|
47
- allow(ChefVault::Item).to(
48
- receive(:load)
49
- .with(data_bag, item.to_s)
50
- .and_return(fakevault)
51
- )
52
- end
45
+ def stub_vault_item(vault, item, json)
46
+ content = JSON.parse(json)
47
+ vi = make_fakevault(vault, item)
48
+ # stub lookup of each of the vault item keys
49
+ content.each do |k, v|
50
+ next if 'id' == k
51
+ allow(vi).to receive(:[]).with(k).and_return(v)
52
+ end
53
+ # stub chef-vault to return the fake vault item, via
54
+ # both symbol and string forms of the data bag name
55
+ [vault, vault.to_sym].each do |dbname|
56
+ allow(ChefVault::Item).to(
57
+ receive(:load)
58
+ .with(dbname, item)
59
+ .and_return(vi)
60
+ )
53
61
  end
54
62
  end
55
63
 
@@ -1,22 +1,5 @@
1
1
  require 'chef-vault/test_fixtures'
2
2
 
3
- # sample plugins
4
- require 'support/chef-vault/test_fixtures/foo.rb'
5
- require 'support/chef-vault/test_fixtures/bar.rb'
6
-
7
- # LittlePlugger doesn't expect to have its inclusion/exclusion
8
- # lists reset in a single process, so we have to monkeypatch
9
- # in some testing functionality
10
- module LittlePlugger
11
- module ClassMethods
12
- def clear_plugins
13
- @plugin_names = []
14
- @disregard_plugin = []
15
- @loaded = {}
16
- end
17
- end
18
- end
19
-
20
3
  # same with ChefVault::TestFixtures
21
4
  class ChefVault
22
5
  class TestFixtures
@@ -32,26 +15,14 @@ RSpec.describe ChefVault::TestFixtures do
32
15
  include ChefVault::TestFixtures.rspec_shared_context
33
16
 
34
17
  before do
35
- ChefVault::TestFixtures.clear_plugins
36
18
  ChefVault::TestFixtures.clear_context
37
19
  end
38
20
 
39
21
  after do
40
- ChefVault::TestFixtures.clear_plugins
41
22
  ChefVault::TestFixtures.clear_context
42
23
  end
43
24
 
44
25
  describe 'Generic functionality' do
45
- it 'should be able to load plugins' do
46
- expect(ChefVault::TestFixtures.plugins).to be_a(Hash)
47
- end
48
-
49
- it 'should load the expected vaults' do
50
- expect(ChefVault::TestFixtures.plugins.keys).to(
51
- contain_exactly(:foo, :bar)
52
- )
53
- end
54
-
55
26
  it 'can create an RSpec shared context' do
56
27
  sc = ChefVault::TestFixtures.rspec_shared_context
57
28
  expect(sc).to be_a(Module)
@@ -63,18 +34,6 @@ RSpec.describe ChefVault::TestFixtures do
63
34
  mod2 = ChefVault::TestFixtures.rspec_shared_context
64
35
  expect(mod2).to be(mod1)
65
36
  end
66
-
67
- it 'allows for the plugin list to be make explicit' do
68
- ChefVault::TestFixtures.plugin :foo
69
- expect(ChefVault::TestFixtures.plugins).to include(:foo)
70
- expect(ChefVault::TestFixtures.plugins).not_to include(:bar)
71
- end
72
-
73
- it 'allows for plugins to be blacklisted' do
74
- ChefVault::TestFixtures.disregard_plugin :foo
75
- expect(ChefVault::TestFixtures.plugins).not_to include(:foo)
76
- expect(ChefVault::TestFixtures.plugins).to include(:bar)
77
- end
78
37
  end
79
38
 
80
39
  describe 'Stub a Vault' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-vault-testfixtures
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0.20150417141427
5
5
  platform: ruby
6
6
  authors:
7
7
  - James FitzGibbon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
11
+ date: 2015-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.5'
41
- - !ruby/object:Gem::Dependency
42
- name: little-plugger
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.1'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.1'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rdoc
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -220,48 +206,6 @@ dependencies:
220
206
  - - "~>"
221
207
  - !ruby/object:Gem::Version
222
208
  version: '0.2'
223
- - !ruby/object:Gem::Dependency
224
- name: pry-byebug
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - "~>"
228
- - !ruby/object:Gem::Version
229
- version: '3.0'
230
- type: :development
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: '3.0'
237
- - !ruby/object:Gem::Dependency
238
- name: pry-rescue
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: '1.3'
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: '1.3'
251
- - !ruby/object:Gem::Dependency
252
- name: pry-stack_explorer
253
- requirement: !ruby/object:Gem::Requirement
254
- requirements:
255
- - - "~>"
256
- - !ruby/object:Gem::Version
257
- version: '0.4'
258
- type: :development
259
- prerelease: false
260
- version_requirements: !ruby/object:Gem::Requirement
261
- requirements:
262
- - - "~>"
263
- - !ruby/object:Gem::Version
264
- version: '0.4'
265
209
  - !ruby/object:Gem::Dependency
266
210
  name: yard
267
211
  requirement: !ruby/object:Gem::Requirement
@@ -278,7 +222,9 @@ dependencies:
278
222
  version: '0.8'
279
223
  description: |-
280
224
  chef-vault-testfixtures provides an RSpec shared context that
281
- dynamically stubs access to chef-vault encrypted data bags.
225
+ stubs access to chef-vault encrypted data bags using the same
226
+ fallback mechanism as the `chef_vault_item` helper from the
227
+ [chef-vault cookbook](https://supermarket.chef.io/cookbooks/chef-vault)
282
228
  email:
283
229
  - james.i.fitzgibbon@nordstrom.com
284
230
  executables: []
@@ -302,8 +248,6 @@ files:
302
248
  - lib/hoe/markdown.rb
303
249
  - spec/lib/chef-vault/test_fixtures_spec.rb
304
250
  - spec/spec_helper.rb
305
- - spec/support/chef-vault/test_fixtures/bar.rb
306
- - spec/support/chef-vault/test_fixtures/foo.rb
307
251
  homepage: https://github.com/Nordstrom/chef-vault-testfixtures
308
252
  licenses:
309
253
  - apache2
@@ -326,9 +270,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
326
270
  version: '0'
327
271
  requirements: []
328
272
  rubyforge_project:
329
- rubygems_version: 2.4.4
273
+ rubygems_version: 2.4.6
330
274
  signing_key:
331
275
  specification_version: 4
332
- summary: chef-vault-testfixtures provides an RSpec shared context that dynamically
333
- stubs access to chef-vault encrypted data bags.
276
+ summary: chef-vault-testfixtures provides an RSpec shared context that stubs access
277
+ to chef-vault encrypted data bags using the same fallback mechanism as the `chef_vault_item`
278
+ helper from the [chef-vault cookbook](https://supermarket.chef.io/cookbooks/chef-vault)
334
279
  test_files: []
280
+ has_rdoc:
@@ -1,11 +0,0 @@
1
- class ChefVault
2
- class TestFixtures
3
- class Bar
4
- def foo
5
- { 'baz' => 1 }
6
- end
7
-
8
- alias_method :gzonk, :foo
9
- end
10
- end
11
- end
@@ -1,9 +0,0 @@
1
- class ChefVault
2
- class TestFixtures
3
- class Foo
4
- def bar
5
- { 'baz' => 2 }
6
- end
7
- end
8
- end
9
- end