Sha256: 5f63bdfb0330664b3a4801eddea594fe54560fcf3e399510fdfb825555a400cd

Contents?: true

Size: 1.49 KB

Versions: 2

Compression:

Stored size: 1.49 KB

Contents

require 'minitest/autorun'
require 'webmock/minitest'
require 'tracksale'

class TracksaleCampaignTest < Minitest::Test
  def setup
    Tracksale.configure { |c| c.key = 'foobar' }

    stub_request(:get, 'http://api.tracksale.co/v2/campaign')
      .with(headers: { 'authorization' => 'bearer foobar' })
      .to_return(body: '[{"name":"random - name",' \
                      '"code":1234,' \
                      '"detractors":1,' \
                      '"passives":2,' \
                      '"promoters":3 }]',
                 headers: { content_type: 'application/json' }, status: 200)
  end

  def test_return_right_amount_of_items
    assert_equal 1, Tracksale::Campaign.all.size
    assert !subject.nil?
    assert Tracksale::Campaign.find_by_name('random - another name').nil?
  end

  def test_find_return_a_campaign
    assert subject.is_a? Tracksale::Campaign
  end

  def test_campaign_has_a_name
    assert subject.respond_to? :name
    assert_equal 'random - name', subject.name
  end

  def test_campaign_has_a_code
    assert subject.respond_to? :code
    assert_equal 1234, subject.code
  end

  def test_campaign_scores
    campaign = subject
    assert campaign.respond_to? :score
    expected_score = { detractors: 1, passives: 2, promoters: 3 }
    assert_equal expected_score, campaign.score
  end

  def test_all_returns_campaigns
    assert Tracksale::Campaign.all.first.is_a? Tracksale::Campaign
  end

  private

  def subject
    Tracksale::Campaign.find_by_name('random - name')
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tracksale-0.0.2 test/test_tracksale_campaign.rb
tracksale-0.0.1 test/test_tracksale_campaign.rb