finapps 2.1.1 → 2.1.2

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
  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