mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
71 lines
2.6 KiB
Ruby
71 lines
2.6 KiB
Ruby
require 'spec_helper'
|
|
require 'ahoy'
|
|
|
|
describe Campaign do
|
|
describe 'validations' do
|
|
it 'has a valid factory' do
|
|
expect(build(:campaign)).to be_valid
|
|
end
|
|
|
|
it 'is not valid without a name' do
|
|
should validate_presence_of(:name)
|
|
end
|
|
end
|
|
|
|
describe '#url_parameters' do
|
|
it 'returns the parameters in the correct format' do
|
|
campaign = create(:campaign, utm_source: 'google+', utm_medium: 'advertisement',
|
|
utm_term: 'opensource', utm_content: 'content', utm_campaign: '20percent')
|
|
campaign.conference = create(:conference)
|
|
|
|
result = '?utm_source=google+&utm_medium=advertisement&utm_term=opensource&utm_content=content&utm_campaign=20percent'
|
|
expect(campaign.url_parameters).to eq(result)
|
|
end
|
|
|
|
it 'returns only utm_campaign parameter if there are no parameters' do
|
|
campaign = create(:campaign)
|
|
campaign.conference = create(:conference)
|
|
expect(campaign.url_parameters).to eq('?utm_campaign=testcampaign')
|
|
end
|
|
end
|
|
|
|
describe '#visits' do
|
|
it 'returns one if there is one visit' do
|
|
campaign = create(:campaign, utm_source: 'google+', utm_medium: 'advertisement',
|
|
utm_term: 'opensource', utm_content: 'content', utm_campaign: '20percent')
|
|
campaign.conference = build(:conference)
|
|
|
|
create(:visit, utm_source: 'google+', utm_medium: 'advertisement',
|
|
utm_term: 'opensource', utm_content: 'content', utm_campaign: '20percent', started_at: Time.now)
|
|
expect(campaign.visits_count).to eq(1)
|
|
end
|
|
|
|
it 'returns zero if there are no visits' do
|
|
campaign = create(:campaign, utm_source: 'google+', utm_medium: 'advertisement',
|
|
utm_term: 'opensource', utm_content: 'content', utm_campaign: '20percent')
|
|
campaign.conference = create(:conference)
|
|
|
|
expect(campaign.visits_count).to eq(0)
|
|
end
|
|
end
|
|
|
|
describe '#registrations' do
|
|
it 'returns zero if there are no registration' do
|
|
campaign = build(:campaign, utm_source: 'google+', utm_medium: 'advertisement',
|
|
utm_term: 'opensource', utm_content: 'content', utm_campaign: '20percent')
|
|
campaign.conference = build(:conference)
|
|
|
|
expect(campaign.registrations_count).to eq(0)
|
|
end
|
|
end
|
|
|
|
describe '#submissions' do
|
|
it 'returns zero if there are no submissions' do
|
|
campaign = build(:campaign, utm_source: 'google+', utm_medium: 'advertisement',
|
|
utm_term: 'opensource', utm_content: 'content', utm_campaign: '20percent')
|
|
campaign.conference = build(:conference)
|
|
|
|
expect(campaign.submissions_count).to eq(0)
|
|
end
|
|
end
|
|
end
|