rspec-terraform 0.1.0.pre.19 → 0.1.0.pre.22

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
  SHA256:
3
- metadata.gz: d18507e1fb2c9cb75f1d78660709319e3addcc1eeee92538c2b3134d6c3c6783
4
- data.tar.gz: 794b11b381d232bbbfa5e61ca2a759e8240366768ce7462ad2ea5e6489dddada
3
+ metadata.gz: 0e28c4be63e7af5fe059859b2c2de2699f700ad3d163e56981c02a2fd946d477
4
+ data.tar.gz: 45f56162be84a621752fc33868c350eaefd1c2b198d8bbe46f516af2f6d4dca4
5
5
  SHA512:
6
- metadata.gz: b7bcc363f2779b425e544abd7065263e974d36351ed4526b7e768f3d93cc66bd2241c8afc81a65c7ede3418df35eb70bb3fd0cdfca77b3dcca629f20ab9091a1
7
- data.tar.gz: 9fd86d2510ffcd78213d9ebf8770a1fa70ed4a3a18fca758a2824388e61afcad802d4f1c3bfa85c9612f4abfefb10307a0c5f282e432ea7d490ff9d1c991d8a6
6
+ metadata.gz: 4ad8bfda440da3162a37740551ad3bf1fb8567700709893a349327e5a7145b106a179004cc5c8d47ed40641f1f2ed650f1e410b6cf379d5ebb37a7914c53f7de
7
+ data.tar.gz: 533d8a62d6784ce2451354590333aecc60343449e2feb0f4a1634384dda203de7ddc668080b4169cdc422f92a793b4ac8897dcbb4a73217bc4b4ed80c6869921
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rspec-terraform (0.1.0.pre.19)
4
+ rspec-terraform (0.1.0.pre.22)
5
5
  rspec (>= 3.0)
6
6
  ruby-terraform (= 1.7.0.pre.13)
7
7
 
@@ -16,6 +16,7 @@ GEM
16
16
  addressable (2.8.0)
17
17
  public_suffix (>= 2.0.2, < 5.0)
18
18
  ast (2.4.2)
19
+ coderay (1.1.3)
19
20
  colored2 (3.1.2)
20
21
  concurrent-ruby (1.1.10)
21
22
  diff-lcs (1.5.0)
@@ -27,7 +28,26 @@ GEM
27
28
  faraday-net_http (~> 2.0)
28
29
  ruby2_keywords (>= 0.0.4)
29
30
  faraday-net_http (2.0.3)
31
+ ffi (1.15.5)
32
+ formatador (1.1.0)
30
33
  gem-release (2.2.2)
34
+ guard (2.18.0)
35
+ formatador (>= 0.2.4)
36
+ listen (>= 2.7, < 4.0)
37
+ lumberjack (>= 1.0.12, < 2.0)
38
+ nenv (~> 0.1)
39
+ notiffany (~> 0.0)
40
+ pry (>= 0.13.0)
41
+ shellany (~> 0.0)
42
+ thor (>= 0.18.1)
43
+ guard-compat (1.2.1)
44
+ guard-rspec (4.7.3)
45
+ guard (~> 2.1)
46
+ guard-compat (~> 1.1)
47
+ rspec (>= 2.99.0, < 4.0)
48
+ guard-rubocop (1.5.0)
49
+ guard (~> 2.0)
50
+ rubocop (< 2.0)
31
51
  hamster (3.0.0)
32
52
  concurrent-ruby (~> 1.0)
33
53
  i18n (1.12.0)
@@ -37,7 +57,16 @@ GEM
37
57
  lino (3.0.0)
38
58
  hamster (~> 3.0)
39
59
  open4 (~> 1.3)
60
+ listen (3.7.1)
61
+ rb-fsevent (~> 0.10, >= 0.10.3)
62
+ rb-inotify (~> 0.9, >= 0.9.10)
63
+ lumberjack (1.2.8)
64
+ method_source (1.0.0)
40
65
  minitest (5.16.2)
66
+ nenv (0.3.0)
67
+ notiffany (0.1.3)
68
+ nenv (~> 0.1)
69
+ shellany (~> 0.0)
41
70
  octokit (4.25.1)
42
71
  faraday (>= 1, < 3)
43
72
  sawyer (~> 0.9)
@@ -45,6 +74,9 @@ GEM
45
74
  parallel (1.22.1)
46
75
  parser (3.1.2.1)
47
76
  ast (~> 2.4.1)
77
+ pry (0.14.1)
78
+ coderay (~> 1.1)
79
+ method_source (~> 1.0)
48
80
  public_suffix (4.0.7)
49
81
  rainbow (3.1.1)
50
82
  rake (13.0.6)
@@ -68,6 +100,9 @@ GEM
68
100
  colored2 (~> 3.1)
69
101
  rake_factory (~> 0.23)
70
102
  sshkey (~> 2.0)
103
+ rb-fsevent (0.11.1)
104
+ rb-inotify (0.10.1)
105
+ ffi (~> 1.0)
71
106
  regexp_parser (2.5.0)
72
107
  rexml (3.2.5)
73
108
  rspec (3.11.0)
@@ -109,6 +144,7 @@ GEM
109
144
  sawyer (0.9.2)
110
145
  addressable (>= 2.3.5)
111
146
  faraday (>= 0.17.3, < 3)
147
+ shellany (0.0.1)
112
148
  simplecov (0.21.2)
113
149
  docile (~> 1.1)
114
150
  simplecov-html (~> 0.11)
@@ -116,13 +152,14 @@ GEM
116
152
  simplecov-html (0.12.3)
117
153
  simplecov_json_formatter (0.1.4)
118
154
  sshkey (2.0.0)
155
+ terminal-notifier-guard (1.7.0)
156
+ thor (1.2.1)
119
157
  tzinfo (2.0.5)
120
158
  concurrent-ruby (~> 1.0)
121
159
  unicode-display_width (2.2.0)
122
160
 
123
161
  PLATFORMS
124
162
  arm64-darwin-21
125
- ruby
126
163
  x86_64-darwin-19
127
164
  x86_64-linux
128
165
 
@@ -130,6 +167,9 @@ DEPENDENCIES
130
167
  bundler
131
168
  faker
132
169
  gem-release
170
+ guard
171
+ guard-rspec
172
+ guard-rubocop
133
173
  rake
134
174
  rake_circle_ci
135
175
  rake_github
@@ -140,6 +180,7 @@ DEPENDENCIES
140
180
  rubocop-rake
141
181
  rubocop-rspec
142
182
  simplecov
183
+ terminal-notifier-guard
143
184
 
144
185
  BUNDLED WITH
145
186
  2.3.20
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RSpec
4
+ module Terraform
5
+ module Configuration
6
+ class Merger
7
+ def merge(left, right)
8
+ merge_top_level(left, right)
9
+ .merge(merge_accumulating_maps(left, right))
10
+ .merge(merge_accumulating_lists(left, right))
11
+ end
12
+
13
+ private
14
+
15
+ def merge_top_level(left, right)
16
+ left.merge(right)
17
+ end
18
+
19
+ def merge_accumulating_maps(left, right)
20
+ left_vars = left[:vars] || {}
21
+ right_vars = right[:vars] || {}
22
+ vars = left_vars.merge(right_vars)
23
+
24
+ merged = {}
25
+ unless left_vars == {} && right_vars == {}
26
+ merged = merged.merge(vars: vars)
27
+ end
28
+
29
+ merged
30
+ end
31
+
32
+ def merge_accumulating_lists(left, right)
33
+ left_var_files = left[:var_files] || []
34
+ right_var_files = right[:var_files] || []
35
+ var_files = left_var_files + right_var_files
36
+
37
+ merged = {}
38
+ unless left_var_files == [] && right_var_files == []
39
+ merged = merged.merge(var_files: var_files)
40
+ end
41
+
42
+ merged
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ruby_terraform'
4
+
5
+ module RSpec
6
+ module Terraform
7
+ module Configuration
8
+ module Providers
9
+ class Identity
10
+ def resolve(overrides = {})
11
+ overrides
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ruby_terraform'
4
+ require_relative '../merger'
5
+
6
+ module RSpec
7
+ module Terraform
8
+ module Configuration
9
+ module Providers
10
+ class InMemory
11
+ attr_reader(:configuration)
12
+
13
+ def initialize(configuration = {})
14
+ @configuration = configuration
15
+ @merger = Merger.new
16
+ end
17
+
18
+ def resolve(overrides = {})
19
+ @merger.merge(configuration, overrides)
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'providers/identity'
4
+ require_relative 'providers/in_memory'
5
+
6
+ module RSpec
7
+ module Terraform
8
+ module Configuration
9
+ module Providers
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'configuration/providers'
4
+ require_relative 'configuration/merger'
5
+
6
+ module RSpec
7
+ module Terraform
8
+ module Configuration
9
+ class << self
10
+ def identity_provider
11
+ Providers::Identity.new
12
+ end
13
+
14
+ def in_memory_provider(overrides)
15
+ Providers::InMemory.new(overrides)
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'ruby_terraform'
4
+
5
+ module RSpec
6
+ module Terraform
7
+ module Helpers
8
+ class Apply
9
+ attr_reader(:overrides, :configuration_provider)
10
+
11
+ def initialize(overrides = {}, configuration_provider = nil)
12
+ @overrides = overrides
13
+ @configuration_provider =
14
+ configuration_provider || Configuration.identity_provider
15
+ end
16
+
17
+ def execute
18
+ parameters = configuration_provider.resolve(overrides)
19
+ parameters = parameters.merge(
20
+ input: false,
21
+ auto_approve: true
22
+ )
23
+
24
+ do_apply(parameters)
25
+ end
26
+
27
+ private
28
+
29
+ def do_apply(parameters)
30
+ RubyTerraform.apply(
31
+ chdir: parameters[:configuration_directory],
32
+ state: parameters[:state_file],
33
+ vars: parameters[:vars],
34
+ input: parameters[:input],
35
+ auto_approve: parameters[:auto_approve]
36
+ )
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative './helpers/apply'
4
+
5
+ module RSpec
6
+ module Terraform
7
+ module Helpers
8
+ end
9
+ end
10
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module RSpec
4
4
  module Terraform
5
- VERSION = '0.1.0.pre.19'
5
+ VERSION = '0.1.0.pre.22'
6
6
  end
7
7
  end
@@ -4,7 +4,9 @@ require 'rspec/core'
4
4
  require 'ruby_terraform'
5
5
 
6
6
  require_relative 'terraform/version'
7
+ require_relative 'terraform/configuration'
7
8
  require_relative 'terraform/matchers'
9
+ require_relative 'terraform/helpers'
8
10
 
9
11
  RSpec.configure do |config|
10
12
  config.include(RSpec::Terraform::Matchers)
@@ -43,6 +43,9 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency 'bundler'
44
44
  spec.add_development_dependency 'faker'
45
45
  spec.add_development_dependency 'gem-release'
46
+ spec.add_development_dependency 'guard'
47
+ spec.add_development_dependency 'guard-rspec'
48
+ spec.add_development_dependency 'guard-rubocop'
46
49
  spec.add_development_dependency 'rake'
47
50
  spec.add_development_dependency 'rake_circle_ci'
48
51
  spec.add_development_dependency 'rake_github'
@@ -52,6 +55,7 @@ Gem::Specification.new do |spec|
52
55
  spec.add_development_dependency 'rubocop-rake'
53
56
  spec.add_development_dependency 'rubocop-rspec'
54
57
  spec.add_development_dependency 'simplecov'
58
+ spec.add_development_dependency 'terminal-notifier-guard'
55
59
 
56
60
  spec.metadata['rubygems_mfa_required'] = 'false'
57
61
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-terraform
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.19
4
+ version: 0.1.0.pre.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - InfraBlocks Maintainers
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-17 00:00:00.000000000 Z
11
+ date: 2022-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -80,6 +80,48 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-rubocop
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
83
125
  - !ruby/object:Gem::Dependency
84
126
  name: rake
85
127
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +248,20 @@ dependencies:
206
248
  - - ">="
207
249
  - !ruby/object:Gem::Version
208
250
  version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: terminal-notifier-guard
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
209
265
  description: Helpers, contexts and matchers to support using RSpec to test Terraform
210
266
  configurations and modules.
211
267
  email:
@@ -223,6 +279,13 @@ files:
223
279
  - bin/console
224
280
  - bin/setup
225
281
  - lib/rspec/terraform.rb
282
+ - lib/rspec/terraform/configuration.rb
283
+ - lib/rspec/terraform/configuration/merger.rb
284
+ - lib/rspec/terraform/configuration/providers.rb
285
+ - lib/rspec/terraform/configuration/providers/identity.rb
286
+ - lib/rspec/terraform/configuration/providers/in_memory.rb
287
+ - lib/rspec/terraform/helpers.rb
288
+ - lib/rspec/terraform/helpers/apply.rb
226
289
  - lib/rspec/terraform/matchers.rb
227
290
  - lib/rspec/terraform/matchers/include_output_change.rb
228
291
  - lib/rspec/terraform/matchers/include_resource_change.rb