Sha256: 21bc9d6a6f1b0daa0d12dcb714169855acbebd4ebbc6f5a99db4499c04cc342a

Contents?: true

Size: 1.91 KB

Versions: 30

Compression:

Stored size: 1.91 KB

Contents

require 'spec_helper'
require 'mailgun'

vcr_opts = { :cassette_name => "campaigns" }

describe 'For the campaigns endpoint', vcr: vcr_opts do
  before(:all) do
    skip 'pending removal'
    @mg_obj = Mailgun::Client.new(APIKEY, APIHOST, APIVERSION, SSL)
    @domain = TESTDOMAIN
    @campaign_id = "integration_test_campaign"
  end

  it 'creates a campaign' do
    result = @mg_obj.post("#{@domain}/campaigns", {:name => 'My Campaign',
                                                   :id => @campaign_id})

    result.to_h!
    expect(result.body["message"]).to eq("Campaign created")
    expect(result.body["campaign"]["id"]).to eq(@campaign_id)
    expect(result.body["campaign"]["name"]).to eq('My Campaign')
  end

  it 'get a campaign.' do
    result = @mg_obj.get("#{@domain}/campaigns/#{@campaign_id}")

    result.to_h!
    expect(result.body["id"]).to eq(@campaign_id)
    expect(result.body["name"]).to eq('My Campaign')
  end

  it 'gets a list of all campaigns.' do
    result = @mg_obj.get("#{@domain}/campaigns", {:limit => 50})

    result.to_h!
    expect(result.body["total_count"]).to be > 0
  end

  it 'update a campaign.' do
    result = @mg_obj.put("#{@domain}/campaigns/#{@campaign_id}", {:name => 'My Updated Campaign',
                                                                  :id => @campaign_id})

    result.to_h!
    expect(result.body["message"]).to eq("Campaign updated")
    expect(result.body["campaign"]["id"]).to eq(@campaign_id)
    expect(result.body["campaign"]["name"]).to eq('My Updated Campaign')
  end

  it 'get campaign events.' do
    expect{@mg_obj.get("#{@domain}/campaigns/#{@campaign_id}/events", {:groupby => "clicked"})}.not_to raise_error
  end

  it 'get campaign stats.' do
    expect{@mg_obj.get("#{@domain}/campaigns/#{@campaign_id}/stats", {:groupby => "domain"})}.not_to raise_error
  end

  it 'removes a campaign' do
    @mg_obj.delete("#{@domain}/campaigns/#{@campaign_id}")
  end
end

Version data entries

30 entries across 30 versions & 2 rubygems

Version Path
mailgun-ruby-1.3.2 spec/integration/campaign_spec.rb
mailgun-ruby-1.3.1 spec/integration/campaign_spec.rb
mailgun-ruby-1.3.0 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.16 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.15 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.14 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.13 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.12 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.11 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.10 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.9 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.8 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.7 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.6 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.5 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.4 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.3 spec/integration/campaign_spec.rb
mailgun-ruby-1.2.0 spec/integration/campaign_spec.rb
mailgun-ruby-1.1.11 spec/integration/campaign_spec.rb
mailgun-ruby-1.1.10 spec/integration/campaign_spec.rb