# encoding: utf-8 require File.dirname(__FILE__) + '/../../spec_helper' module SendGrid4r::REST::Webhooks describe Event do describe 'integration test', :it do before do Dotenv.load @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY']) end context 'without block call' do it '#get_settings_event_notification' do actual = @client.get_settings_event_notification expect(actual).to be_a(Event::EventNotification) end it '#patch_settings_event_notification' do # get original settings actual = @client.get_settings_event_notification # patch the value actual.enabled = false actual.url = 'http://www.google.com/?=test@test.com' actual.group_resubscribe = true actual.delivered = true actual.group_unsubscribe = true actual.spam_report = true actual.bounce = true actual.deferred = true actual.unsubscribe = true actual.processed = true actual.open = true actual.click = true actual.dropped = true edit = @client.patch_settings_event_notification(params: actual) expect(edit.enabled).to eq(false) expect(edit.url).to eq('http://www.google.com/?=test@test.com') expect(edit.group_resubscribe).to eq(true) expect(edit.delivered).to eq(true) expect(edit.group_unsubscribe).to eq(true) expect(edit.spam_report).to eq(true) expect(edit.bounce).to eq(true) expect(edit.deferred).to eq(true) expect(edit.unsubscribe).to eq(true) expect(edit.processed).to eq(true) expect(edit.open).to eq(true) expect(edit.click).to eq(true) expect(edit.dropped).to eq(true) end it '#test_settings_event_notification' do @client.test_settings_event_notification(url: ENV['EVENT_URL']) end end end describe 'unit test', :ut do let(:client) do SendGrid4r::Client.new(api_key: '') end let(:event_notification) do '{'\ '"enabled": true,'\ '"url": "url",'\ '"group_resubscribe": true,'\ '"delivered": true,'\ '"group_unsubscribe": true,'\ '"spam_report": true,'\ '"bounce": true,'\ '"deferred": true,'\ '"unsubscribe": true,'\ '"processed": true,'\ '"open": true,'\ '"click": true,'\ '"dropped": true'\ '}' end it '#get_settings_event_notification' do allow(client).to receive(:execute).and_return(event_notification) actual = client.get_settings_event_notification expect(actual).to be_a(Event::EventNotification) end it '#patch_settings_event_notification' do allow(client).to receive(:execute).and_return(event_notification) actual = client.patch_settings_event_notification(params: nil) expect(actual).to be_a(Event::EventNotification) end it 'creates event_notification instance' do actual = Event.create_event_notification(JSON.parse(event_notification)) expect(actual.enabled).to eq(true) expect(actual.url).to eq('url') expect(actual.group_resubscribe).to eq(true) expect(actual.delivered).to eq(true) expect(actual.group_unsubscribe).to eq(true) expect(actual.spam_report).to eq(true) expect(actual.bounce).to eq(true) expect(actual.deferred).to eq(true) expect(actual.unsubscribe).to eq(true) expect(actual.processed).to eq(true) expect(actual.open).to eq(true) expect(actual.click).to eq(true) expect(actual.dropped).to eq(true) end end end end