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 +4 -4
- data/Gemfile.lock +43 -2
- data/lib/rspec/terraform/configuration/merger.rb +47 -0
- data/lib/rspec/terraform/configuration/providers/identity.rb +17 -0
- data/lib/rspec/terraform/configuration/providers/in_memory.rb +25 -0
- data/lib/rspec/terraform/configuration/providers.rb +13 -0
- data/lib/rspec/terraform/configuration.rb +20 -0
- data/lib/rspec/terraform/helpers/apply.rb +41 -0
- data/lib/rspec/terraform/helpers.rb +10 -0
- data/lib/rspec/terraform/version.rb +1 -1
- data/lib/rspec/terraform.rb +2 -0
- data/rspec-terraform.gemspec +4 -0
- metadata +65 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e28c4be63e7af5fe059859b2c2de2699f700ad3d163e56981c02a2fd946d477
|
4
|
+
data.tar.gz: 45f56162be84a621752fc33868c350eaefd1c2b198d8bbe46f516af2f6d4dca4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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,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,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
|
data/lib/rspec/terraform.rb
CHANGED
@@ -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)
|
data/rspec-terraform.gemspec
CHANGED
@@ -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.
|
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-
|
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
|