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