lhc 10.4.3 → 10.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 +4 -4
- data/.rubocop.yml +3 -0
- data/README.md +13 -11
- data/lib/lhc/rspec.rb +12 -0
- data/lib/lhc/test/cache_helper.rb +1 -7
- data/lib/lhc/version.rb +1 -1
- data/spec/interceptors/throttle/reset_track_spec.rb +53 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cf5537cde6885a7e37d2bb70d7b222e761804018d0aab94bd9249c68a40d3f7
|
4
|
+
data.tar.gz: 1d501413fd820cffc020cc39eec04b4e775440abebdf61e030f8d6114b660922
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5fc4d1cb8b374931d4c53d295319e6f3c16657e0bde1dd7aa0799812bbc378390165f097b7c6627ced47f92d2ebe7459d5180745a4b00692875fbdfffda2c931
|
7
|
+
data.tar.gz: d5d39be61013fe93e275d2725e7fc4cfec83f27646c36762a2c3fbe64d1c40aa9831f7274fb7a46a7ff1500244a19a8fe76b2887539cb0e2f435a438178ff21a
|
data/.rubocop.yml
CHANGED
data/README.md
CHANGED
@@ -67,7 +67,6 @@ use it like:
|
|
67
67
|
* [Bearer Authentication with client access token](#bearer-authentication-with-client-access-token)
|
68
68
|
* [Caching Interceptor](#caching-interceptor)
|
69
69
|
* [Options](#options)
|
70
|
-
* [Testing](#testing)
|
71
70
|
* [Default Timeout Interceptor](#default-timeout-interceptor)
|
72
71
|
* [Overwrite defaults](#overwrite-defaults)
|
73
72
|
* [Logging Interceptor](#logging-interceptor)
|
@@ -83,13 +82,16 @@ use it like:
|
|
83
82
|
* [Retry Interceptor](#retry-interceptor)
|
84
83
|
* [Limit the amount of retries while making the request](#limit-the-amount-of-retries-while-making-the-request)
|
85
84
|
* [Change the default maximum of retries of the retry interceptor](#change-the-default-maximum-of-retries-of-the-retry-interceptor)
|
85
|
+
* [Retry all requests](#retry-all-requests)
|
86
86
|
* [Rollbar Interceptor](#rollbar-interceptor)
|
87
87
|
* [Forward additional parameters](#forward-additional-parameters)
|
88
|
+
* [Throttle](#throttle)
|
88
89
|
* [Zipkin](#zipkin)
|
89
90
|
* [Create an interceptor from scratch](#create-an-interceptor-from-scratch)
|
90
91
|
* [Interceptor callbacks](#interceptor-callbacks)
|
91
92
|
* [Interceptor request/response](#interceptor-requestresponse)
|
92
93
|
* [Provide a response replacement through an interceptor](#provide-a-response-replacement-through-an-interceptor)
|
94
|
+
* [Testing](#testing)
|
93
95
|
* [License](#license)
|
94
96
|
|
95
97
|
## Basic methods
|
@@ -629,16 +631,6 @@ To avoid that case the first process to find an expired cache entry will bump th
|
|
629
631
|
|
630
632
|
`use` - Set an explicit cache to be used for this request. If this option is missing `LHC::Caching.cache` is used.
|
631
633
|
|
632
|
-
##### Testing
|
633
|
-
|
634
|
-
Add to your spec_helper.rb:
|
635
|
-
|
636
|
-
```ruby
|
637
|
-
require 'lhc/test/cache_helper.rb'
|
638
|
-
```
|
639
|
-
|
640
|
-
This will initialize a MemoryStore cache for LHC::Caching interceptor and resets the cache before every test.
|
641
|
-
|
642
634
|
#### Default Timeout Interceptor
|
643
635
|
|
644
636
|
Applies default timeout values to all requests made in an application, that uses LHC.
|
@@ -963,6 +955,16 @@ You can access the request.response to identify if a response was already provid
|
|
963
955
|
end
|
964
956
|
```
|
965
957
|
|
958
|
+
## Testing
|
959
|
+
|
960
|
+
When writing tests for your application when using LHC, please make sure you require the lhc rspec test helper:
|
961
|
+
|
962
|
+
```ruby
|
963
|
+
# spec/spec_helper.rb
|
964
|
+
|
965
|
+
require 'lhc/rspec'
|
966
|
+
```
|
967
|
+
|
966
968
|
## License
|
967
969
|
|
968
970
|
[GNU General Public License Version 3.](https://www.gnu.org/licenses/gpl-3.0.en.html)
|
data/lib/lhc/rspec.rb
ADDED
@@ -1,9 +1,3 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
LHC::Caching.cache = ActiveSupport::Cache::MemoryStore.new
|
5
|
-
|
6
|
-
config.before(:each) do
|
7
|
-
LHC::Caching.cache.clear
|
8
|
-
end
|
9
|
-
end
|
3
|
+
warn("[WARNING] require 'lhc/test/cache_helper.rb' is not needed any more! Just require 'lhc/rspec' in your spec helper instead.")
|
data/lib/lhc/version.rb
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rails_helper'
|
4
|
+
|
5
|
+
describe LHC::Throttle do
|
6
|
+
let(:provider) { 'local.ch' }
|
7
|
+
let(:limit) { 10000 }
|
8
|
+
let(:remaining) { 1900 }
|
9
|
+
let(:options) do
|
10
|
+
{
|
11
|
+
throttle: {
|
12
|
+
provider: provider,
|
13
|
+
track: true,
|
14
|
+
limit: limit_options,
|
15
|
+
remaining: { header: 'Rate-Limit-Remaining' },
|
16
|
+
expires: { header: 'Rate-Limit-Reset' },
|
17
|
+
break: '80%'
|
18
|
+
}
|
19
|
+
}
|
20
|
+
end
|
21
|
+
let(:limit_options) { { header: 'Rate-Limit-Limit' } }
|
22
|
+
let(:break_option) { false }
|
23
|
+
let(:expires_in) { (Time.zone.now + 1.hour).to_i }
|
24
|
+
|
25
|
+
before(:each) do
|
26
|
+
LHC::Throttle.track = nil
|
27
|
+
LHC.config.interceptors = [LHC::Throttle]
|
28
|
+
|
29
|
+
stub_request(:get, 'http://local.ch')
|
30
|
+
.to_return(
|
31
|
+
headers: {
|
32
|
+
'Rate-Limit-Limit' => limit,
|
33
|
+
'Rate-Limit-Remaining' => remaining,
|
34
|
+
'Rate-Limit-Reset' => expires_in
|
35
|
+
}
|
36
|
+
)
|
37
|
+
end
|
38
|
+
|
39
|
+
# If LHC::Trottle.track would be kept accross multiple tests,
|
40
|
+
# at least 2/3 of the following would fail
|
41
|
+
|
42
|
+
it 'resets track accross multiple tests 1/3' do
|
43
|
+
LHC.get('http://local.ch', options)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'resets track accross multiple tests 2/3' do
|
47
|
+
LHC.get('http://local.ch', options)
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'resets track accross multiple tests 3/3' do
|
51
|
+
LHC.get('http://local.ch', options)
|
52
|
+
end
|
53
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lhc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.
|
4
|
+
version: 10.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- https://github.com/local-ch/lhc/contributors
|
@@ -245,6 +245,7 @@ files:
|
|
245
245
|
- lib/lhc/response/data/base.rb
|
246
246
|
- lib/lhc/response/data/collection.rb
|
247
247
|
- lib/lhc/response/data/item.rb
|
248
|
+
- lib/lhc/rspec.rb
|
248
249
|
- lib/lhc/test/cache_helper.rb
|
249
250
|
- lib/lhc/version.rb
|
250
251
|
- script/ci/build.sh
|
@@ -336,6 +337,7 @@ files:
|
|
336
337
|
- spec/interceptors/return_response_spec.rb
|
337
338
|
- spec/interceptors/rollbar/main_spec.rb
|
338
339
|
- spec/interceptors/throttle/main_spec.rb
|
340
|
+
- spec/interceptors/throttle/reset_track_spec.rb
|
339
341
|
- spec/interceptors/zipkin/distributed_tracing_spec.rb
|
340
342
|
- spec/rails_helper.rb
|
341
343
|
- spec/request/body_spec.rb
|
@@ -482,6 +484,7 @@ test_files:
|
|
482
484
|
- spec/interceptors/return_response_spec.rb
|
483
485
|
- spec/interceptors/rollbar/main_spec.rb
|
484
486
|
- spec/interceptors/throttle/main_spec.rb
|
487
|
+
- spec/interceptors/throttle/reset_track_spec.rb
|
485
488
|
- spec/interceptors/zipkin/distributed_tracing_spec.rb
|
486
489
|
- spec/rails_helper.rb
|
487
490
|
- spec/request/body_spec.rb
|