ergomentum_rspec 1.4.0 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
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
|