spec/lib/logstasher/log_subscriber_spec.rb in rv-logstasher-1.3.2 vs spec/lib/logstasher/log_subscriber_spec.rb in rv-logstasher-1.4.0
- old
+ new
@@ -33,15 +33,16 @@
end
describe '#process_action' do
let(:timestamp) { ::Time.new.utc.iso8601(3) }
let(:duration) { 12.4 }
+ let(:params) { {'foo' => 'bar'} }
let(:json_params) { JSON.dump(payload[:params]) }
let(:payload) {{
:controller => 'users',
:action => 'show',
- :params => { 'foo' => 'bar' },
+ :params => params,
:format => 'text/plain',
:method => 'method',
:path => '/users/1',
:status => 200
}}
@@ -101,9 +102,35 @@
expect(logger).to receive(:<<) do |json|
expect(JSON.parse(json)['params']).to eq payload[:params]
end
subject.process_action(event)
+ end
+
+ it 'can be configured to filter out certain parameters' do
+ allow(::LogStasher).to receive(:filter_parameters).and_return(['foo'])
+
+ expect(logger).to receive(:<<) do |json|
+ expect(JSON.parse(json)['params']).to eq('{"foo":"[FILTERED]"}')
+ end
+
+ subject.process_action(event)
+ end
+
+ context 'with passwords in parameters' do
+ let(:params) do
+ {'password' => '1337passWORD', 'password_confirmation' => '1337passWORD'}
+ end
+
+ it 'filters them out by default' do
+ expect(logger).to receive(:<<) do |json|
+ expect(JSON.parse(json)['params']).to eq(
+ '{"password":"[FILTERED]","password_confirmation":"[FILTERED]"}'
+ )
+ end
+
+ subject.process_action(event)
+ end
end
it 'includes redirect location in the log' do
redirect_event = double(:payload => {:location => 'new/location'})
subject.redirect_to(redirect_event)