diff --git a/lib/rspec_api_documentation/headers.rb b/lib/rspec_api_documentation/headers.rb index 70f9acb8..d3041cde 100644 --- a/lib/rspec_api_documentation/headers.rb +++ b/lib/rspec_api_documentation/headers.rb @@ -7,8 +7,7 @@ def env_to_headers(env) env.each do |key, value| # HTTP_ACCEPT_CHARSET => Accept-Charset if key =~ /^(HTTP_|CONTENT_TYPE)/ - header = key.gsub(/^HTTP_/, '').titleize.split.join("-") - header.concat('-Id') if key.scan(/_ID\Z/).any? + header = key.gsub(/^HTTP_/, '').split('_').map{|s| s.titleize}.join("-") headers[header] = value end end diff --git a/spec/headers_spec.rb b/spec/headers_spec.rb new file mode 100644 index 00000000..509bfd9c --- /dev/null +++ b/spec/headers_spec.rb @@ -0,0 +1,26 @@ +require 'spec_helper' + +class FakeHeaderable + include RspecApiDocumentation::Headers + + def public_env_to_headers(env) + env_to_headers(env) + end +end + +describe RspecApiDocumentation::Headers do + let(:example) { FakeHeaderable.new } + + describe '#env_to_headers' do + subject { example.public_env_to_headers(env) } + + context 'When the env contains "CONTENT_TYPE"' do + let(:env) { { "CONTENT_TYPE" => 'multipart/form-data' } } + + it 'converts the header to "Content-Type"' do + expect(subject['Content-Type']).to eq 'multipart/form-data' + end + end + end + +end