finapps 2.1.1 → 2.1.2

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
  SHA1:
3
- metadata.gz: 5096a6b1981fc503ff5718b188c8b54f960db534
4
- data.tar.gz: 28f39fcf4370f57c640d9b7bb555585fa1fc6455
3
+ metadata.gz: c165121be25a140bd8e679e20ff7d9b09aabc28a
4
+ data.tar.gz: 7ced8cf8b1d9436b17bf2fed865f161502b8a6c6
5
5
  SHA512:
6
- metadata.gz: 25f29fe1caafca96681e176dba45ce2cd941eb83a357a635ee66f93a41238cadb4a07fccb14b6b22b6d3ab3d83b6546dd5848e3a775d582f73a10a49d0d7b3b8
7
- data.tar.gz: 374ea976bc0ed5e4ccb93b390b618f64858f8353c19565b7fbcd44bc201efa701e51e41c0888e43f784ba69261939a1fbd5c09c9a46b2be3c4b5201bbc315196
6
+ metadata.gz: b4326d7f86886911409df0a3c555d8dd8cbbfe687633d2ffb09374b6a067ac0469c556299ef53ee8e89b35eb2bf46d18af0cec822579fe55dc4e85030e96c130
7
+ data.tar.gz: eb6a33a750ffb3190a3e308bc03fa5a01ba6805ddfa77bdde963f998e4d91f1675b4e408d7daa1862aeb6aa7afef7cd47d30a1786c04ee5a9be4b760a23b04c5
@@ -1,10 +1,20 @@
1
1
  # frozen_string_literal: true
2
2
  module FinApps
3
3
  module Middleware
4
- class NoEncodingBasicAuthentication < ::Faraday::Request.load_middleware(:authorization)
5
- def self.header(value)
6
- sanitized = value.delete("\n")
7
- super(:Basic, sanitized)
4
+ # Adds a custom header for basic authorization.
5
+ # If the value for this header already exists, it is not overriden.
6
+ class NoEncodingBasicAuthentication < Faraday::Middleware
7
+ KEY = 'Authorization' unless defined? KEY
8
+
9
+ def initialize(app, token)
10
+ super(app)
11
+ sanitized = token.to_s.strip.delete("\n")
12
+ @header_value = "Basic #{sanitized}"
13
+ end
14
+
15
+ def call(env)
16
+ env[:request_headers][KEY] ||= @header_value
17
+ @app.call(env)
8
18
  end
9
19
  end
10
20
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module FinApps
3
- VERSION = '2.1.1'
3
+ VERSION = '2.1.2'
4
4
  end
@@ -1,11 +1,32 @@
1
1
  # frozen_string_literal: true
2
2
  RSpec.describe FinApps::Middleware::NoEncodingBasicAuthentication do
3
3
  let(:valid_credentials) { VALID_CREDENTIALS }
4
+ let(:key) { FinApps::Middleware::NoEncodingBasicAuthentication::KEY }
4
5
 
5
- describe '.header' do
6
- it 'does not encode the values' do
7
- actual_token = FinApps::Middleware::NoEncodingBasicAuthentication.header(valid_credentials[:token])
8
- expect(actual_token).to eq("Basic #{valid_credentials[:token]}")
6
+ describe '#call' do
7
+ fake_app = proc {|env| env }
8
+
9
+ context 'when credentials were provided' do
10
+ let(:middleware) do
11
+ FinApps::Middleware::NoEncodingBasicAuthentication.new(fake_app, VALID_CREDENTIALS[:token])
12
+ end
13
+ let(:expected_header) { "Basic #{valid_credentials[:token]}" }
14
+
15
+ context 'when header was not previously set' do
16
+ let(:request_env) { {request_headers: {}} }
17
+ subject(:actual_header) { middleware.call(request_env)[:request_headers][key] }
18
+
19
+ it('generates a header') { expect(actual_header).to eq(expected_header) }
20
+ end
21
+
22
+ context 'when header was previously set' do
23
+ let(:existing_header) { {FinApps::Middleware::NoEncodingBasicAuthentication::KEY => 'foo'} }
24
+ let(:request_env) { {request_headers: existing_header} }
25
+ subject(:actual_header) { middleware.call(request_env)[:request_headers][key] }
26
+
27
+ it('does not override existing header') { expect(actual_header).to eq('foo') }
28
+ it('does not generate a header') { expect(actual_header).to_not eq(expected_header) }
29
+ end
9
30
  end
10
31
  end
11
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: finapps
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-31 00:00:00.000000000 Z
11
+ date: 2016-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday