ergomentum_rspec 1.4.0 → 1.5.0
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0bb20611970c5edfa286c854f9abc811c88acdf8982c6b3b0020b48a1ff16c9
|
4
|
+
data.tar.gz: b5f89a1cd7017be8340a11556403d1d6859a246d1b063ea708d9e8ca7cf0add1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7488cf0d7d116d123c21c9984590695bab68add340c1e0af46cb68eca3d1f69c49cd80eb726ffb56d58c961107b917f1bec721b1ccd2ba0208a9ccfcc933baa2
|
7
|
+
data.tar.gz: 7aca9a72e930884497367930933091ff48c643945e70f9166c567026a6f4bf8b6d6da55d42b1b258d8b4ed78d93742b9f967bd731d039b2739a95d63af174345
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ErgomentumRspec
|
4
|
+
module Helpers
|
5
|
+
class EnvVarMockService
|
6
|
+
def self.instance
|
7
|
+
@instance ||= new
|
8
|
+
end
|
9
|
+
|
10
|
+
def initialize
|
11
|
+
@original_env_values = {}
|
12
|
+
end
|
13
|
+
|
14
|
+
def mock_environment_variables(env_hash)
|
15
|
+
env_hash.each do |key, value|
|
16
|
+
remember_original_env_value(key)
|
17
|
+
ENV[key] = value
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def restore_original_env_vars
|
22
|
+
@original_env_values.each do |key, value|
|
23
|
+
ENV[key] = value
|
24
|
+
end
|
25
|
+
@original_env_values = {}
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def remember_original_env_value(key)
|
31
|
+
return if @original_env_values.key?(key)
|
32
|
+
|
33
|
+
@original_env_values[key] = ENV[key]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -3,13 +3,17 @@
|
|
3
3
|
module ErgomentumRspec
|
4
4
|
module Helpers
|
5
5
|
module Environment
|
6
|
-
def mock_environment_variables(
|
7
|
-
stub_const("ENV", ENV.to_h.merge(
|
6
|
+
def mock_environment_variables(env_hash)
|
7
|
+
# Using stub_const("ENV", ENV.to_h.merge(env_hash)) as simple solution does not work when using cuprite
|
8
|
+
# in feature specs. Something seems to rely on the concrete implementation of ENV.
|
9
|
+
# When we stub the const ENV with a Hash in such feature specs the whole ruby environment crashes.
|
10
|
+
EnvVarMockService.instance.mock_environment_variables(env_hash)
|
8
11
|
end
|
9
12
|
end
|
10
13
|
|
11
14
|
RSpec.configure do |config|
|
12
15
|
config.include Environment
|
16
|
+
config.after { EnvVarMockService.instance.restore_original_env_vars }
|
13
17
|
end
|
14
18
|
end
|
15
19
|
end
|
data/lib/ergomentum_rspec.rb
CHANGED
@@ -6,6 +6,7 @@ require "active_support/inflector"
|
|
6
6
|
require "rspec"
|
7
7
|
require "active_model"
|
8
8
|
require_relative "ergomentum_rspec/version"
|
9
|
+
require_relative "ergomentum_rspec/helpers/env_var_mock_service"
|
9
10
|
require_relative "ergomentum_rspec/helpers/environment"
|
10
11
|
require_relative "ergomentum_rspec/helpers/fixture"
|
11
12
|
require_relative "ergomentum_rspec/matchers/active_model"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ergomentum_rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ergomentum
|
@@ -163,6 +163,7 @@ files:
|
|
163
163
|
- bin/setup
|
164
164
|
- ergomentum_rspec.gemspec
|
165
165
|
- lib/ergomentum_rspec.rb
|
166
|
+
- lib/ergomentum_rspec/helpers/env_var_mock_service.rb
|
166
167
|
- lib/ergomentum_rspec/helpers/environment.rb
|
167
168
|
- lib/ergomentum_rspec/helpers/fixture.rb
|
168
169
|
- lib/ergomentum_rspec/matchers/active_model.rb
|