fixturama 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/README.md +10 -0
- data/lib/fixturama/changes.rb +2 -1
- data/lib/fixturama/changes/env.rb +35 -0
- data/lib/fixturama/version.rb +2 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d55872d445c82c193803ee59ad7c09bd5086f7c252025f650b2d63ed2f121720
|
4
|
+
data.tar.gz: 1ff0e8705ab7f4d9690fd2750032454fcf22ccfc65dc97314619d5f8299cf92d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7c6395d316867b5c9bb05d75cda3238164a0f47a357693086fa21be913ff1c5dff02aa14e7cdf09e3ec350672d6e7c1b063b21aa50a596064298ba4933228377
|
7
|
+
data.tar.gz: b6e0f0fadfcd1da51f885376775714ec76a58caa30e84968920c85d1b5618a513646b6a239a4bf61a9d237553861dd2a5223c1a83a9ee6cd79c2c11edf9fa362
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
7
7
|
|
8
|
+
## [0.4.0] - [2020-03-15]
|
9
|
+
|
10
|
+
### Added
|
11
|
+
|
12
|
+
- Support for stubbing ENV variables (nepalez)
|
13
|
+
|
14
|
+
```yaml
|
15
|
+
---
|
16
|
+
- env: GOOGLE_CLOUD_KEY
|
17
|
+
value: foo
|
18
|
+
|
19
|
+
- env: GOOGLE_CLOUD_PASSWORD
|
20
|
+
value: bar
|
21
|
+
```
|
22
|
+
|
23
|
+
This would stub selected variables only, not touching the others
|
24
|
+
|
8
25
|
## [0.3.0] - [2020-03-08]
|
9
26
|
|
10
27
|
### Added
|
@@ -250,3 +267,4 @@ This is a first public release with features extracted from production app.
|
|
250
267
|
[0.1.0]: https://github.com/nepalez/fixturama/compare/v0.0.7...v0.1.0
|
251
268
|
[0.2.0]: https://github.com/nepalez/fixturama/compare/v0.1.0...v0.2.0
|
252
269
|
[0.3.0]: https://github.com/nepalez/fixturama/compare/v0.2.0...v0.3.0
|
270
|
+
[0.4.0]: https://github.com/nepalez/fixturama/compare/v0.3.0...v0.4.0
|
data/README.md
CHANGED
@@ -141,6 +141,11 @@ For constants:
|
|
141
141
|
- `const` for stubbed constant
|
142
142
|
- `value` for a value of the constant
|
143
143
|
|
144
|
+
For environment variables:
|
145
|
+
|
146
|
+
- `env` for the name of a variable
|
147
|
+
`value` for a value of the variable
|
148
|
+
|
144
149
|
For http requests:
|
145
150
|
|
146
151
|
- `url` or `uri` for the URI of the request (treats values like `/.../` as regular expressions)
|
@@ -186,9 +191,14 @@ For http requests:
|
|
186
191
|
arguments:
|
187
192
|
- "Profile with id: 1 not found" # for error message
|
188
193
|
|
194
|
+
# Here we stubbing a constant
|
189
195
|
- const: NOTIFIER_TIMEOUT_SEC
|
190
196
|
value: 10
|
191
197
|
|
198
|
+
# This is a stub for ENV['DEFAULT_EMAIL']
|
199
|
+
- env: DEFAULT_EMAIL
|
200
|
+
value: foo@example.com
|
201
|
+
|
192
202
|
# Examples for stubbing HTTP
|
193
203
|
- uri: /example.com/foo/ # regexp!
|
194
204
|
method: delete
|
data/lib/fixturama/changes.rb
CHANGED
@@ -7,6 +7,7 @@ module Fixturama
|
|
7
7
|
require_relative "changes/base"
|
8
8
|
require_relative "changes/chain"
|
9
9
|
require_relative "changes/const"
|
10
|
+
require_relative "changes/env"
|
10
11
|
require_relative "changes/request"
|
11
12
|
require_relative "changes/seed"
|
12
13
|
|
@@ -20,6 +21,7 @@ module Fixturama
|
|
20
21
|
class: Chain,
|
21
22
|
const: Const,
|
22
23
|
count: Seed,
|
24
|
+
env: Env,
|
23
25
|
headers: Request,
|
24
26
|
http_method: Request,
|
25
27
|
object: Chain,
|
@@ -31,7 +33,6 @@ module Fixturama
|
|
31
33
|
type: Seed,
|
32
34
|
uri: Request,
|
33
35
|
url: Request,
|
34
|
-
value: Const,
|
35
36
|
}.freeze
|
36
37
|
|
37
38
|
# Adds new change to the registry
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class Fixturama::Changes
|
2
|
+
#
|
3
|
+
# @private
|
4
|
+
# Stub an environment variable
|
5
|
+
#
|
6
|
+
class Env < Base
|
7
|
+
# All changes has the same +key+
|
8
|
+
# They will be merged before stubbing (see +call+)
|
9
|
+
def key
|
10
|
+
"ENV"
|
11
|
+
end
|
12
|
+
|
13
|
+
# When we merge 2 env-s, we just merge their options
|
14
|
+
def merge(other)
|
15
|
+
return self unless other.is_a?(self.class)
|
16
|
+
dup.tap { |env| env.options.update(other.options) }
|
17
|
+
end
|
18
|
+
|
19
|
+
def call(example)
|
20
|
+
original = Hash ENV
|
21
|
+
example.send(:stub_const, "ENV", original.merge(options))
|
22
|
+
self
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
|
27
|
+
attr_reader :options
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def initialize(**options)
|
32
|
+
@options = { options[:env].to_s => options[:value].to_s }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/fixturama/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fixturama
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kozin (nepalez)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: factory_bot
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- lib/fixturama/changes/chain/raise_action.rb
|
132
132
|
- lib/fixturama/changes/chain/return_action.rb
|
133
133
|
- lib/fixturama/changes/const.rb
|
134
|
+
- lib/fixturama/changes/env.rb
|
134
135
|
- lib/fixturama/changes/request.rb
|
135
136
|
- lib/fixturama/changes/request/response.rb
|
136
137
|
- lib/fixturama/changes/request/responses.rb
|