spec/outputs/charrington_spec.rb in logstash-output-charrington-0.3.15 vs spec/outputs/charrington_spec.rb in logstash-output-charrington-0.3.16
- old
+ new
@@ -251,6 +251,39 @@
{:id=>a_kind_of(String), :anonymous_id=>"", :app_name=>"Web App", :context_campaign_content=>nil, :context_campaign_medium=>nil, :context_campaign_name=>nil, :context_campaign_source=>nil, :context_ip=>nil, :context_library_name=>nil, :context_library_version=>nil, :context_page_path=>nil, :context_page_referrer=>nil, :context_page_search=>nil, :context_page_title=>nil, :context_page_url=>nil, :context_user_agent=>nil, :event=>"schemaless", :event_text=>"schemaless", :original_timestamp=>nil, :received_at=>nil, :segment_dedupe_id=>nil, :sent_at=>a_kind_of(String), :timestamp=>nil, :user_id=>"123", :user_uid=>"456", :uuid=>nil, :uuid_ts=>a_kind_of(String)}
])
end
end
+ describe 'a new payload has timestamp-related keys set to sent_at' do
+ let(:config) do
+ <<-CONFIG
+ input {
+ generator {
+ message => '{"app_name": "Web App", "event": "schemaless", "meta": { "type": "XML" }, "published_at": "2019-07-29T20:09:18Z", "user_id": "123", "user_uid": "456" }'
+ codec => 'json'
+ count => 1
+ }
+ }
+
+ output {
+ charrington {
+ connection_string => '#{@url}'
+ driver_jar_path => '#{driver_path}'
+ schema => ''
+ transformer => 'redshift'
+ }
+ }
+ CONFIG
+ end
+
+ it 'creates a table with timestamp-related keys and inserts a record with timestamp-related keys same as sent_at' do
+ drop_table('tracks')
+ create_tracks_table
+ drop_table('schemaless')
+ run_pipeline
+ expect(query('SELECT * FROM schemaless')).to match_array([
+ {:anonymous_id=>"", :app_name=>"Web App", :event=>"schemaless", :event_text=>"schemaless", :id=>a_kind_of(String), :original_timestamp=>"2019-07-29 20:09:18", :received_at=>"2019-07-29 20:09:18", :sent_at=>"2019-07-29 20:09:18", :timestamp=>"2019-07-29 20:09:18", :type=>"XML", :user_id=>"123", :user_uid=>"456", :uuid_ts=>a_kind_of(String)}
+ ])
+ expect(query('SELECT COUNT(1) FROM schemaless').first[:count]).to eq("1")
+ end
+ end
end