webvalve 0.11.0 → 0.12.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: 467554297c4382a3f12ce68e32c1b9fed9b2d69afa2b97fb46d3f98be5437dc7
4
- data.tar.gz: cb6a4ee0e1a8db1cb37c78737a9d3822b8a4da3e864217612599174b6687e8ee
3
+ metadata.gz: d632e36adb6db315896d3a144d02408dfcacdb7af5196874f4839d12b187499b
4
+ data.tar.gz: 044a117bf8a6df2eba482f99b5234e39b393f906ef0b895b3819d76805e76e9d
5
5
  SHA512:
6
- metadata.gz: 44fd3a16ea1499de33242bbb8a37dcff77e1af8b7a70ea220fda9c29fce8505f19fc2739f48fdb9f47471fe4f5057ed8ffa8d6918949d8e6d6491160b3e79c1d
7
- data.tar.gz: ad0bdc05029b4fdb3e58428186841bcfc6bbeba9e7f21e2df8ab4e4fd2ded9fba0af2aa592b8d1fe0752b141b30d5c8020fd7b57efe65620033a942f9eb9bd98
6
+ metadata.gz: e7c5ca72aa5ac1ee8417a15df0848f66f019655a4870152c32ff62231b1df91eef435524f072e548e4091e509be76d2ac5fd19391ecafd861193c2ef1b92617e
7
+ data.tar.gz: b1a9d0d174ae5d65ca02fc62ecdb13b24f74489d13c6ab39995868cac56665015667632849a62477c087fc6fe4d0770d5945131ffd84914d61706e58e58b374e
data/CHANGELOG.md CHANGED
@@ -9,7 +9,12 @@ and this project aims to adhere to [Semantic Versioning](http://semver.org/spec/
9
9
  ### Added
10
10
  ### Removed
11
11
 
12
- ## [0.11.0] - 2019-09-23
12
+ ## [0.12.0] - 2020-02-22
13
+ ### Changed
14
+ - raise an error on setup when multiple services are registered to the
15
+ same url. (https://github.com/Betterment/webvalve/pull/40)
16
+
17
+ ## [0.11.0] - 2019-11-04
13
18
  ### Changed
14
19
  - rework configuration so that WebValve has 3 operating modes: off,
15
20
  on+allowing, and on+intercepting. support toggling the latter two
@@ -47,7 +52,9 @@ and this project aims to adhere to [Semantic Versioning](http://semver.org/spec/
47
52
  ### Changed
48
53
  - WebMock 3+ support from @messanjah (https://github.com/Betterment/webvalve/pull/22)
49
54
 
50
- [Unreleased]: https://github.com/Betterment/webvalve/compare/v0.10.0...HEAD
55
+ [Unreleased]: https://github.com/Betterment/webvalve/compare/v0.12.0...HEAD
56
+ [0.12.0]: https://github.com/Betterment/webvalve/compare/v0.11.0...v0.12.0
57
+ [0.11.0]: https://github.com/Betterment/webvalve/compare/v0.10.0...v0.11.0
51
58
  [0.10.0]: https://github.com/Betterment/webvalve/compare/v0.9.10...v0.10.0
52
59
  [0.9.10]: https://github.com/Betterment/webvalve/compare/v0.9.9...v0.9.10
53
60
  [0.9.9]: https://github.com/Betterment/webvalve/compare/v0.9.8...v0.9.9
@@ -69,6 +69,7 @@ module WebValve
69
69
  def reset
70
70
  allowlisted_urls.clear
71
71
  fake_service_configs.clear
72
+ stubbed_urls.clear
72
73
  end
73
74
 
74
75
  # @api private
@@ -126,6 +127,8 @@ module WebValve
126
127
  end
127
128
 
128
129
  def webmock_service(config)
130
+ ensure_non_duplicate_stub(config)
131
+
129
132
  WebMock.stub_request(
130
133
  :any,
131
134
  url_to_regexp(config.service_url)
@@ -139,5 +142,14 @@ module WebValve
139
142
  def url_to_regexp(url)
140
143
  %r(\A#{Regexp.escape url})
141
144
  end
145
+
146
+ def ensure_non_duplicate_stub(config)
147
+ raise "Invalid config for #{config.service_class_name}. Already stubbed url #{config.service_url}" if stubbed_urls.include?(config.service_url)
148
+ stubbed_urls << config.service_url
149
+ end
150
+
151
+ def stubbed_urls
152
+ @stubbed_urls ||= Set.new
153
+ end
142
154
  end
143
155
  end
@@ -1,3 +1,3 @@
1
1
  module WebValve
2
- VERSION = "0.11.0"
2
+ VERSION = "0.12.0"
3
3
  end
@@ -129,6 +129,18 @@ RSpec.describe WebValve::Manager do
129
129
 
130
130
  expect(subject.allowlisted_urls).to include 'http://something.dev'
131
131
  end
132
+
133
+ it 'raises with duplicate stubbed urls' do
134
+ disabled_service = class_double(WebValve::FakeService, name: 'FakeSomething')
135
+ other_disabled_service = class_double(WebValve::FakeService, name: 'FakeOtherThing')
136
+
137
+ with_env 'SOMETHING_API_URL' => 'http://something.dev', 'OTHER_THING_API_URL' => 'http://something.dev' do
138
+ subject.register disabled_service.name
139
+ subject.register other_disabled_service.name
140
+
141
+ expect { subject.setup }.to raise_error('Invalid config for FakeOtherThing. Already stubbed url http://something.dev')
142
+ end
143
+ end
132
144
  end
133
145
 
134
146
  context 'when WebValve is on and allowing traffic' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webvalve
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Moore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-04 00:00:00.000000000 Z
11
+ date: 2020-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -222,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
222
  - !ruby/object:Gem::Version
223
223
  version: '0'
224
224
  requirements: []
225
- rubygems_version: 3.0.3
225
+ rubygems_version: 3.1.2
226
226
  signing_key:
227
227
  specification_version: 4
228
228
  summary: A library for faking http service integrations in development and test