179 lines
7.8 KiB
Ruby
179 lines
7.8 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe "Individual JamTrack", :js => true, :type => :feature, :capybara_feature => true do
|
|
|
|
subject { page }
|
|
|
|
before(:all) do
|
|
ShoppingCart.delete_all
|
|
JamTrackRight.delete_all
|
|
JamTrack.delete_all
|
|
JamTrackTrack.delete_all
|
|
JamTrackLicensor.delete_all
|
|
end
|
|
|
|
let(:user) { FactoryGirl.create(:user) }
|
|
let(:jamtrack_acdc_backinblack) { @jamtrack_acdc_backinblack }
|
|
let(:jamtrack_not_free) {@jamtrack_not_free}
|
|
|
|
let(:billing_info) {
|
|
{
|
|
first_name: 'Seth',
|
|
last_name: 'Call',
|
|
address1: '10704 Buckthorn Drive',
|
|
city: 'Austin',
|
|
state: 'Texas',
|
|
country: 'US',
|
|
zip: '78759',
|
|
number: '4111111111111111',
|
|
month: '08',
|
|
year: '2017',
|
|
verification_value: '012'
|
|
}
|
|
}
|
|
|
|
|
|
before(:all) do
|
|
@jamtrack_acdc_backinblack = FactoryGirl.create(:jam_track, name: 'Back in Black', original_artist: 'AC/DC', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-acdc-backinblack')
|
|
@jamtrack_not_free = FactoryGirl.create(:jam_track, price: 2.99, name: 'Not Free', original_artist: 'AC/DC', sales_region: 'United States', make_track: true, plan_code: 'jamtrack-not-free', allow_free: false)
|
|
end
|
|
|
|
|
|
describe "AC/DC Back in Black" do
|
|
|
|
it "logged out" do
|
|
visit "/landing/jamtracks/#{@jamtrack_acdc_backinblack.slug}"
|
|
|
|
find('h1.jam-track-name', text: jamtrack_acdc_backinblack.name.upcase)
|
|
find('h2.original-artist', text: "by " + jamtrack_acdc_backinblack.original_artist.upcase)
|
|
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
|
|
if track.master?
|
|
find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
|
|
find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:'Master Mix')
|
|
else
|
|
find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]')
|
|
find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
|
|
end
|
|
end
|
|
find('a.browse-all')['href'].should include("/client?search=#/jamtrack/search")
|
|
find('button.cta-button', text: 'GET IT FREE!').trigger(:click)
|
|
|
|
# should fail because we haven't filled out email/password/terms
|
|
find('.register-area .errors', text: "Email can't be blank")
|
|
|
|
fill_in "email", with: 'testuser_123@jamkazam.com'
|
|
fill_in "password", with: 'jam123'
|
|
find('.terms-checkbox').trigger(:click)
|
|
find('button.cta-button', text: 'GET IT FREE!').trigger(:click)
|
|
|
|
# this should show on the /client#/jamtrack page
|
|
find('.no-free-jamtrack')
|
|
# make sure we can find the webplayer link
|
|
find('.purchased-jam-tracks .play-jamtrack')
|
|
|
|
# now go back, and then try to click checkout again
|
|
visit "/landing/jamtracks/#{@jamtrack_acdc_backinblack.slug}"
|
|
find('button.cta-button', text: 'Add To Cart')
|
|
find('.price-advisory', text:"$2.99")
|
|
find('button.cta-button').trigger(:click)
|
|
find('h1', text: 'shopping cart')
|
|
|
|
user = User.find_by_email!("testuser_123@jamkazam.com")
|
|
user.origin_utm_source.should eql "organic"
|
|
user.origin_utm_campaign.should eql "127.0.0.1"
|
|
user.origin_utm_medium.should eql "organic"
|
|
user.origin_referrer.should_not be_nil
|
|
end
|
|
|
|
it "logged out on non-free JamTrack" do
|
|
visit "/landing/jamtracks/#{jamtrack_not_free.slug}"
|
|
|
|
find('h1.jam-track-name', text: jamtrack_not_free.name.upcase)
|
|
find('h2.original-artist', text: "by " + jamtrack_not_free.original_artist.upcase)
|
|
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
|
|
if track.master?
|
|
find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
|
|
find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:'Master Mix')
|
|
else
|
|
find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]')
|
|
find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
|
|
end
|
|
end
|
|
find('a.browse-all')['href'].should include("/client?search=#/jamtrack/search")
|
|
find('.price-advisory', text: '$2.99')
|
|
find('button.cta-button', text: 'Add To Cart').trigger(:click)
|
|
|
|
# should fail because we haven't filled out email/password/terms
|
|
find('.register-area .errors', text: "Email can't be blank")
|
|
|
|
fill_in "email", with: 'testuser_nonfree@jamkazam.com'
|
|
fill_in "password", with: 'jam123'
|
|
find('.terms-checkbox').trigger(:click)
|
|
find('button.cta-button', text: 'Add To Cart').trigger(:click)
|
|
|
|
# should be in the shopping cart page
|
|
find('h1', text: 'shopping cart')
|
|
|
|
user = User.find_by_email!("testuser_nonfree@jamkazam.com")
|
|
user.origin_utm_source.should eql "organic"
|
|
user.origin_utm_campaign.should eql "127.0.0.1"
|
|
user.origin_utm_medium.should eql "organic"
|
|
user.origin_referrer.should_not be_nil
|
|
end
|
|
|
|
it "logged out with origin info" do
|
|
visit "/landing/jamtracks/#{@jamtrack_acdc_backinblack.slug}?utm_source=abc&utm_medium=ads&utm_campaign=campaign1"
|
|
|
|
find('h1.jam-track-name', text: jamtrack_acdc_backinblack.name.upcase)
|
|
find('h2.original-artist', text: "by " + jamtrack_acdc_backinblack.original_artist.upcase)
|
|
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
|
|
if track.master?
|
|
find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
|
|
find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:'Master Mix')
|
|
else
|
|
find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]')
|
|
find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
|
|
end
|
|
end
|
|
find('a.browse-all')['href'].should include("/client?search=#/jamtrack/search")
|
|
find('button.cta-button', text: 'GET IT FREE!').trigger(:click)
|
|
|
|
# should fail because we haven't filled out email/password/terms
|
|
find('.register-area .errors', text: "Email can't be blank")
|
|
|
|
fill_in "email", with: 'testuser_123_o@jamkazam.com'
|
|
fill_in "password", with: 'jam123'
|
|
find('.terms-checkbox').trigger(:click)
|
|
find('button.cta-button', text: 'GET IT FREE!').trigger(:click)
|
|
|
|
# this should show on the /client#/jamtrack page
|
|
find('.no-free-jamtrack')
|
|
|
|
user = User.find_by_email!("testuser_123_o@jamkazam.com")
|
|
user.origin_utm_source.should eql "abc"
|
|
user.origin_utm_campaign.should eql "campaign1"
|
|
user.origin_utm_medium.should eql "ads"
|
|
user.origin_referrer.should be_nil
|
|
end
|
|
|
|
it "logged in" do
|
|
fast_signin(user, "/landing/jamtracks/#{@jamtrack_acdc_backinblack.slug}")
|
|
|
|
find('h1.jam-track-name', text: jamtrack_acdc_backinblack.name.upcase)
|
|
find('h2.original-artist', text: "by " + jamtrack_acdc_backinblack.original_artist.upcase)
|
|
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
|
|
if track.master?
|
|
find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
|
|
find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:'Master Mix')
|
|
else
|
|
find('.tracks.previews[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]')
|
|
find('.tracks.previews[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
|
|
end
|
|
end
|
|
find('button.cta-button').trigger(:click)
|
|
find('.browse-jamtracks', text: 'search jamtracks')
|
|
|
|
end
|
|
end
|
|
end
|