tshield 0.11.8.0 → 0.11.9.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: d2f5af220b6e8aed08b79c006af7975d48416a651c24345b30d20ac7db67e5ca
4
- data.tar.gz: a1cc446bac420e431ec099b027c624e33bb5bcd8291605bdd6876d5aaa04b0b7
3
+ metadata.gz: 8500d36e8b1861611e519cc93e40f176622a24d890f73615fa9852d83b12d530
4
+ data.tar.gz: e5e8dcccd4a31ba89cba70c328f533c1128fb7a8917fdcdec5bbb74cd6832b08
5
5
  SHA512:
6
- metadata.gz: c4bcbfd8ce65cac9dfb6db41879f9237b6aa26b865b5fb9fee27423ea2352a81d5bf713812b2699d5656df933f2bfe96546ad5cd767b0177cf41226dfc7e2539
7
- data.tar.gz: 18b671f8d124aa3237051ed9e516054ddb466510a192107c9016cdba8e11111d770e1603e788daa13218ec8f02dac13d73b14e6a4da7c19463805b0c9431758c
6
+ metadata.gz: 4780911e56839db9afd8a28dbc5759e3cd1d8a604c195c8f5921258cf0bcddf0d8042764e775b871088ac41b0791f14109ed8538c9ad5f991be35a225098c989
7
+ data.tar.gz: 65ce05ffd2f63a68de6e91d9f34d2fe057376f32cf860132d5aca54455a16f97987c90b8af0785d03006c0aaa72cf18f58bfe8e079e2571e8ba3d07e51ded190
@@ -10,14 +10,14 @@ module TShield
10
10
  session[:name] if session
11
11
  end
12
12
 
13
- def self.current_session_call(request, path, method)
13
+ def self.current_session_call(request, callid, method)
14
14
  session = TShield::Sessions.current(request.ip)
15
- session ? session[:counter].current(path, method) : 0
15
+ session ? session[:counter].current(callid, method) : 0
16
16
  end
17
17
 
18
- def self.update_session_call(request, path, method)
18
+ def self.update_session_call(request, callid, method)
19
19
  session = TShield::Sessions.current(request.ip)
20
- session[:counter].add(path, method) if session
20
+ session[:counter].add(callid, method) if session
21
21
  end
22
22
  end
23
23
  end
@@ -20,28 +20,10 @@ module TShield
20
20
  app.enable :logging
21
21
  end
22
22
 
23
- app.get(PATHP) do
24
- treat(params, request, response)
25
- end
26
-
27
- app.post(PATHP) do
28
- treat(params, request, response)
29
- end
30
-
31
- app.put(PATHP) do
32
- treat(params, request, response)
33
- end
34
-
35
- app.patch(PATHP) do
36
- treat(params, request, response)
37
- end
38
-
39
- app.head(PATHP) do
40
- treat(params, request, response)
41
- end
42
-
43
- app.delete(PATHP) do
44
- treat(params, request, response)
23
+ %w[get post put patch head delete].each do |http_method|
24
+ app.send(http_method, PATHP) do
25
+ treat(params, request, response)
26
+ end
45
27
  end
46
28
  end
47
29
 
@@ -55,12 +37,14 @@ module TShield
55
37
 
56
38
  def treat(params, request, _response)
57
39
  path = params.fetch('captures', [])[0]
40
+ callid = "#{path}?#{request.env['QUERY_STRING']}"
58
41
 
59
42
  method = request.request_method
60
43
  request_content_type = request.content_type
44
+
61
45
  session_name = TShield::Controllers::Helpers::SessionHelpers.current_session_name(request)
62
46
  session_call = TShield::Controllers::Helpers::SessionHelpers
63
- .current_session_call(request, path, method)
47
+ .current_session_call(request, callid, method)
64
48
 
65
49
  options = {
66
50
  method: method,
@@ -94,7 +78,7 @@ module TShield
94
78
  "content-type=#{request_content_type} "\
95
79
  "session=#{session_name} call=#{session_call}"
96
80
  )
97
- TShield::Controllers::Helpers::SessionHelpers.update_session_call(request, path, method)
81
+ TShield::Controllers::Helpers::SessionHelpers.update_session_call(request, callid, method)
98
82
 
99
83
  status api_response.status
100
84
  headers api_response.headers
@@ -103,7 +87,7 @@ module TShield
103
87
 
104
88
  def add_headers(headers, path)
105
89
  (configuration.get_headers(domain(path)) || {}).each do |source, destiny|
106
- headers[destiny] = request.env[source] unless request.env[source].nil?
90
+ headers[destiny] = request.env[source] if request.env[source]
107
91
  end
108
92
  end
109
93
 
@@ -7,16 +7,16 @@ module TShield
7
7
  @requests = {}
8
8
  end
9
9
 
10
- def add(path, method)
11
- requests_to_path = @requests.fetch(path, {})
12
- requests_to_method = requests_to_path.fetch(method, 0)
10
+ def add(callid, method)
11
+ requests_to_callid = @requests.fetch(callid, {})
12
+ requests_to_method = requests_to_callid.fetch(method, 0)
13
13
 
14
- requests_to_path[method] = requests_to_method + 1
15
- @requests[path] = requests_to_path
14
+ requests_to_callid[method] = requests_to_method + 1
15
+ @requests[callid] = requests_to_callid
16
16
  end
17
17
 
18
- def current(path, method)
19
- @requests.fetch(path, {}).fetch(method, 0)
18
+ def current(callid, method)
19
+ @requests.fetch(callid, {}).fetch(method, 0)
20
20
  end
21
21
 
22
22
  def to_json(options = {})
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  require 'sinatra'
4
- require 'haml'
5
4
 
6
5
  require 'tshield/options'
7
6
  require 'tshield/controllers/requests'
@@ -5,7 +5,7 @@ module TShield
5
5
  class Version
6
6
  MAJOR = 0
7
7
  MINOR = 11
8
- PATCH = 8
8
+ PATCH = 9
9
9
  PRE = 0
10
10
 
11
11
  class << self
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'tshield/controllers/requests'
4
+ require 'spec_helper'
5
+
6
+ # Class used to test helpers
7
+ class MockController
8
+ include TShield::Controllers::Requests::Helpers
9
+ def initialize(mock_logger)
10
+ @mock_logger = mock_logger
11
+ end
12
+
13
+ def logger
14
+ @mock_logger
15
+ end
16
+
17
+ def status(_value); end
18
+
19
+ def headers(_value); end
20
+
21
+ def body(_value); end
22
+ end
23
+
24
+ describe TShield::Controllers::Requests do
25
+ before(:each) do
26
+ @mock_logger = double
27
+ @controller = MockController.new(@mock_logger)
28
+ allow(TShield::Controllers::Helpers::SessionHelpers).to receive(:current_session_call)
29
+ end
30
+ context 'on treat request' do
31
+ context 'on update session call' do
32
+ it 'should call update_session_call with query params' do
33
+ params = { 'captures' => ['/'] }
34
+
35
+ request = double
36
+ matcher = double
37
+ matched_response = double
38
+
39
+ allow(request).to receive(:request_method).and_return('GET')
40
+ allow(request).to receive(:content_type).and_return('application/json')
41
+ allow(request).to receive(:ip).and_return('0.0.0.0')
42
+ allow(request).to receive(:env).and_return('QUERY_STRING' => 'a=b')
43
+ allow(TShield::RequestMatching).to receive(:new).and_return(matcher)
44
+ allow(matcher).to receive(:match_request).and_return(matched_response)
45
+ allow(matched_response).to receive(:original).and_return(false)
46
+ allow(matched_response).to receive(:status).and_return(200)
47
+ allow(matched_response).to receive(:headers).and_return({})
48
+ allow(matched_response).to receive(:body).and_return('')
49
+ allow(@mock_logger).to receive(:info)
50
+
51
+ expect(TShield::Controllers::Helpers::SessionHelpers)
52
+ .to receive(:current_session_call).with(request, '/?a=b', 'GET')
53
+ expect(TShield::Controllers::Helpers::SessionHelpers)
54
+ .to receive(:update_session_call).with(request, '/?a=b', 'GET')
55
+
56
+ @controller.treat(params, request, nil)
57
+ end
58
+ end
59
+ end
60
+ end
@@ -25,7 +25,6 @@ Gem::Specification.new do |s|
25
25
  s.required_ruby_version = '>= 2.3'
26
26
 
27
27
  s.add_dependency('byebug', '~> 11.0', '>= 11.0.1')
28
- s.add_dependency('haml', '~> 4.0', '>= 4.0.7')
29
28
  s.add_dependency('httparty', '~> 0.14', '>= 0.14.0')
30
29
  s.add_dependency('json', '~> 2.0', '>= 2.0')
31
30
  s.add_dependency('sinatra', '~> 1.4', '>= 1.4.0')
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tshield
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.8.0
4
+ version: 0.11.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Diego Rubin
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-09-10 00:00:00.000000000 Z
12
+ date: 2019-10-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: byebug
@@ -31,26 +31,6 @@ dependencies:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: 11.0.1
34
- - !ruby/object:Gem::Dependency
35
- name: haml
36
- requirement: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '4.0'
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- version: 4.0.7
44
- type: :runtime
45
- prerelease: false
46
- version_requirements: !ruby/object:Gem::Requirement
47
- requirements:
48
- - - "~>"
49
- - !ruby/object:Gem::Version
50
- version: '4.0'
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: 4.0.7
54
34
  - !ruby/object:Gem::Dependency
55
35
  name: httparty
56
36
  requirement: !ruby/object:Gem::Requirement
@@ -381,6 +361,7 @@ files:
381
361
  - spec/spec_helper.rb
382
362
  - spec/tshield/after_filter_spec.rb
383
363
  - spec/tshield/configuration_spec.rb
364
+ - spec/tshield/controllers/requests_spec.rb
384
365
  - spec/tshield/fixtures/config/tshield.yml
385
366
  - spec/tshield/fixtures/filters/example_filter.rb
386
367
  - spec/tshield/fixtures/matching/example.json
@@ -407,17 +388,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
407
388
  - !ruby/object:Gem::Version
408
389
  version: '0'
409
390
  requirements: []
410
- rubygems_version: 3.0.4
391
+ rubygems_version: 3.0.6
411
392
  signing_key:
412
393
  specification_version: 4
413
394
  summary: Proxy for mocks API responses
414
395
  test_files:
396
+ - spec/spec_helper.rb
415
397
  - spec/tshield/options_spec.rb
416
398
  - spec/tshield/configuration_spec.rb
417
- - spec/tshield/request_matching_spec.rb
418
- - spec/tshield/fixtures/matching/example.json
419
- - spec/tshield/fixtures/config/tshield.yml
420
- - spec/tshield/fixtures/filters/example_filter.rb
421
399
  - spec/tshield/request_vcr_spec.rb
400
+ - spec/tshield/controllers/requests_spec.rb
422
401
  - spec/tshield/after_filter_spec.rb
423
- - spec/spec_helper.rb
402
+ - spec/tshield/fixtures/config/tshield.yml
403
+ - spec/tshield/fixtures/matching/example.json
404
+ - spec/tshield/fixtures/filters/example_filter.rb
405
+ - spec/tshield/request_matching_spec.rb