tshield 0.11.8.0 → 0.11.9.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: 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