This commit is contained in:
Seth Call 2015-07-06 14:23:33 -05:00
parent 43d0ee7916
commit 08ccda245e
24 changed files with 385 additions and 137 deletions

View File

@ -29,6 +29,7 @@
function bigHelpOptions(options) {
return {positions: options.positions, offsetParent: options.offsetParent,
width:options.width,
spikeGirth: 15,
spikeLength: 20,
fill: 'white',
@ -68,7 +69,7 @@
helpBubble.jamtrackLandingPreview($preview, $preview.offsetParent())
setTimeout(function() {
helpBubble.jamtrackLandingVideo($video, $video.offsetParent())
helpBubble.jamtrackLandingVideo($video, $video.closest('.row'))
setTimeout(function() {
helpBubble.jamtrackLandingCta($ctaButton, $alternativeCta)
@ -101,18 +102,19 @@
}
helpBubble.jamtrackLandingPreview = function($element, $offsetParent) {
context.JK.prodBubble($element, 'jamtrack-landing-preview', {}, bigHelpOptions({positions:['right'], offsetParent: $offsetParent}))
console.log("SHOWING THE PREVIEW BUBBLE")
context.JK.prodBubble($element, 'jamtrack-landing-preview', {}, bigHelpOptions({positions:['right', 'top'], offsetParent: $offsetParent, width:250}))
}
helpBubble.jamtrackLandingVideo = function($element, $offsetParent) {
context.JK.prodBubble($element, 'jamtrack-landing-video', {}, bigHelpOptions({positions:['left'], offsetParent: $offsetParent}))
context.JK.prodBubble($element, 'jamtrack-landing-video', {}, bigHelpOptions({positions:['top', 'right'], offsetParent: $offsetParent}))
}
helpBubble.jamtrackLandingCta = function($element, $alternativeElement) {
if ($element.visible()) {
context.JK.prodBubble($element, 'jamtrack-landing-cta', {}, bigHelpOptions({positions:['left']}))
if (!$alternativeElement || $element.visible()) {
context.JK.prodBubble($element, 'jamtrack-landing-cta', {}, bigHelpOptions({positions:['top', 'right'], width:240}))
}
else {
else if($alternativeElement) {
context.JK.prodBubble($alternativeElement, 'jamtrack-landing-cta', {}, bigHelpOptions({positions:['right']}))
}
}

View File

@ -11,4 +11,5 @@
//= require ./react-components/stores/SessionMediaTracksStore
//= require_directory ./react-components/stores
//= require_directory ./react-components/mixins
//= require_directory ./react-components
//= require_directory ./react-components
//= require_directory ./react-components/landing

View File

@ -0,0 +1,52 @@
context = window
@IndividualJamTrackPage = React.createClass({
watchVideo: (e) ->
e.preventDefault()
window.open("/popups/youtube/player?id=askHvcCoNfw", 'What Are JamTracks?', 'scrollbars=yes,toolbar=no,status=no,height=282,width=500')
render: () ->
header = null
if @props.band
header = "#{@props.jam_track.original_artist} Backing Tracks - Complete Multitracks"
else if @props.generic?
header = "Backing Tracks + Free Amazing App = Unmatched Experience"
else
header = "#{@props.jam_track.name} Backing Track by #{@props.jam_track.original_artist}"
`<div className="one_by_two">
<div className="row header">
<h1>{header}</h1>
</div>
<div className="row">
<div className="column">
<h2>Here's Why 20,000 Musicians Love Our Backing Tracks</h2>
<p>JamKazam gives you a better backing track experience:</p>
<ul>
<li>Full multitrack recordings with isolated track for each part</li>
<li>Free JamKazam app to:
<ul>
<li>Hear just the part you want to play to learn it</li>
<li>Mute the part you want to play, and play live with other parts</li>
<li>Record and mix your live play with unmuted tracks</li>
</ul>
</li>
<li>Free Internet Service to play this track live online with others</li>
</ul>
<a className="watch-video" onClick={this.watchVideo}>Watch A Video To See How It Works</a>
</div>
<div className="column">
<h2>Preview "{this.props.jam_track.name}" Backing Track by {this.props.jam_track.original_artist}</h2>
<p>Click the play buttons below to preview the master mix and fully isolated tracks of the professional backing track recording. All are included in your backing track.</p>
<div className="previews"></div>
</div>
<br className="clearAll" />
</div>
<div className="row">
<JamTrackCta {...this.props} />
</div>
</div>`
})

View File

@ -0,0 +1,60 @@
context = window
rest = context.JK.Rest()
@JamTrackCta = React.createClass({
redeem: (e) ->
e.preventDefault()
return if @state.processing
isFree = context.JK.currentUserFreeJamTrack
rest.addJamtrackToShoppingCart({id: @props.jam_track.id}).done((response) =>
if(isFree)
if context.JK.currentUserId?
context.JK.currentUserFreeJamTrack = true # make sure the user sees no more free notices
context.location = '/client#/redeemComplete'
else
# now make a rest call to buy it
context.location = '/client#/redeemSignup'
else
context.location = '/client#/shoppingCart'
).fail((jqXHR, textStatus, errorMessage) =>
if jqXHR.status == 422
errors = JSON.parse(jqXHR.responseText)
cart_errors = errors?.errors?.cart_id
if cart_errors?.length == 1 && cart_errors[0] == 'has already been taken'
context.location = '/client#/shoppingCart'
else
context.JK.app.ajaxError(jqXHR, textStatus, errorMessage)
@setState({processing:false})
)
@setState({processing:true})
getInitialState:() ->
{processing: false}
render: () ->
bandBrowseUrl = "/client?artist=#{this.props.jam_track.original_artist}#/jamtrackBrowse"
`<div className="cta-holder">
<div className="checkout">
<a href="/client#/jamtrackBrowse" onClick={this.redeem} className="cta-free-jamtrack" alt="ClICK HERE TO PICK YOUR FIRST JAMTRACK FREE!">
<img src="/assets/web/button_cta_jamtrack_free.png" />
</a>
<span className="value-indicator">$1.99 value</span>
</div>
<br/>
<div className="browse-band">
<a href={bandBrowseUrl}>or browse all {this.props.band_track_count} AC/DC backing tracks</a>
</div>
<br/>
<div className="browse-all">
<a href="/client#/jamtrackBrowse">or browse all {this.props.all_track_count} backing tracks!</a>
</div>
</div>`
})

View File

@ -0,0 +1,11 @@
context = window
@PopupYoutubePlayer = React.createClass({
render: () ->
video_url = "//www.youtube.com/embed/#{this.props.video_id}"
`<div className="video-container">
<iframe src={video_url} frameBorder="0" allowFullScreen="allowfullscreen"></iframe>
</div>`
})

View File

@ -43,7 +43,7 @@ NotificationActions = @NotificationActions
this.listenTo(context.AppStore, this.onAppInit)
this.listenTo(context.RecordingStore, this.onRecordingChanged)
if gon.global.video_available && gon.global.video_available!="none"
if gon.global.video_available && gon.global.video_available!="none" && context.JK.WebcamViewer?
@webcamViewer = new context.JK.WebcamViewer()
@webcamViewer.init()
@webcamViewer.setVideoOff()

View File

@ -0,0 +1,51 @@
(function (context, $) {
"use strict";
context.JK = context.JK || {};
context.JK.IndividualJamTrack = function (app) {
var rest = context.JK.Rest();
var logger = context.JK.logger;
var $page = null;
var $previews = null;
var $jamTracksButton = null;
var $ctaJamTracksButton = null;
function fetchJamTrack() {
rest.getJamTrackWithArtistInfo({plan_code: gon.jam_track_plan_code})
.done(function (jam_track) {
context._.each(jam_track.tracks, function (track) {
var $element = $('<div class="jam-track-preview-holder"></div>')
$previews.append($element);
new context.JK.JamTrackPreview(app, $element, jam_track, track, {master_shows_duration: true, color:'black', master_adds_line_break: false, preload_master:true})
if(track.track_type =='Master') {
context.JK.HelpBubbleHelper.rotateJamTrackLandingBubbles($element.find('.jam-track-preview'), $page.find('.one_by_two .watch-video'), $page.find('.checkout'));
}
})
$previews.append('<br clear = "all" />')
})
.fail(function () {
app.notify({title: 'Unable to fetch JamTrack', text: "Please refresh the page or try again later."})
})
}
function initialize() {
$page = $('body')
$previews = $page.find('.previews')
$jamTracksButton = $page.find('.browse-jamtracks')
$ctaJamTracksButton = $page.find('.cta-free-jamtrack');
context.JK.Tracking.adTrack(app)
fetchJamTrack();
}
this.initialize = initialize;
}
})(window, jQuery);

View File

@ -3,7 +3,7 @@
"use strict";
context.JK = context.JK || {};
context.JK.IndividualJamTrack = function (app) {
context.JK.IndividualJamTrackv1 = function (app) {
var rest = context.JK.Rest();
var logger = context.JK.logger;

View File

@ -65,6 +65,7 @@
//= require web/recordings
//= require web/home
//= require web/tracking
//= require web/individual_jamtrack
//= require web/individual_jamtrack_v1
//= require web/individual_jamtrack_band_v1
//= require web/affiliate_program
@ -75,3 +76,9 @@
//= require JamServer
//= require_directory ../dialog
//= require everywhere/everywhere
//= require classnames
//= require reflux
//= require react
//= require react_ujs
//= require react-init
//= require react-components

View File

@ -1,4 +1,61 @@
body.web.landing_jamtrack.individual_jamtrack_v1 {
body.web.landing_jamtrack.individual_jamtrack {
.landing-content {
.header {
text-align:center;
}
p {
width:100%;
}
h1 {
font-size:24px;
}
h2 {
font-size:18px;
color:white;
text-decoration:underline;
margin-bottom:8px;
}
ul {
width: 100%;
margin:5px 0 0;
}
li {
margin-bottom:4px;
}
.row .column {
padding:0 30px;
position:absolute;
float:none;
}
.row:nth-of-type(2) {
margin-top:30px;
position:relative;
}
.row .column:nth-of-type(1) {
width: 50%;
left:0;
height:100%;
}
.row .column:nth-of-type(2) {
width: 50%;
left:50%;
position:relative;
border-width:0 0 0 1px;
border-color:white;
border-style:solid;
}
}
.watch-video {
position:absolute;
bottom:25px;
text-align:center;
display:block;
width: 50%;
left: 20%;
font-size:16px;
}
.previews {
margin-top:10px;
@ -23,13 +80,42 @@ body.web.landing_jamtrack.individual_jamtrack_v1 {
.jam-track-preview-holder {
margin-bottom: 7px;
float:left;
&[data-track-type="Master"] {
width: 100%;
}
&[data-track-type="Track"] {
width: 100%;
width: 50%;
}
}
.jam-track-preview {
font-size:12px;
}
.cta-holder {
margin-top:30px;
text-align:center;
.checkout {
display:inline-block;
position:relative;
}
.browse-band {
display:inline-block;
position:relative;
margin-top:20px;
}
.browse-all {
display:inline-block;
position:relative;
margin-top:20px;
}
.value-indicator {
position:absolute;
left: 301px;
top: 19px;
width:80px;
}
}
}

View File

@ -6,10 +6,7 @@
*= require client/content
*= require client/ftue
*= require icheck/minimal/minimal
*= require minimal/popup
*= require minimal/recording_controls
*= require minimal/media_controls
*= require minimal/minimal_main
*= require_directory .
*= require client/metronomePlaybackModeSelect
*= require_directory ../client/react-components
*/

View File

@ -0,0 +1,8 @@
body.youtube-player {
.video-container {
position:absolute;
width:100%;
height:100%;
}
}

View File

@ -34,4 +34,5 @@
*= require web/affiliate_links
*= require_directory ../landings
*= require icheck/minimal/minimal
*= require_directory ../client/react-components
*/

View File

@ -1,5 +1,7 @@
class LandingsController < ApplicationController
include LandingsHelper
respond_to :html
def watch_bands
@ -68,8 +70,12 @@ class LandingsController < ApplicationController
def individual_jamtrack
@no_landing_tag = true
@show_cta_free_jamtrack = true
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code])
band_jam_track_count = @jam_track.band_jam_track_count
jam_track_count = JamTrack.count
@title = individual_jamtrack_title(false, params[:generic], @jam_track)
@description = individual_jamtrack_desc(false, params[:generic], @jam_track)
@page_data = {jam_track: @jam_track, all_track_count: jam_track_count, band_track_count: band_jam_track_count, band: false, generic: params[:generic]}
gon.jam_track_plan_code = params[:plan_code] ? "jamtrack-" + params[:plan_code] : nil
gon.generic = params[:generic]
render 'individual_jamtrack', layout: 'web'
@ -77,11 +83,15 @@ class LandingsController < ApplicationController
def individual_jamtrack_band
@no_landing_tag = true
@show_cta_free_jamtrack = true
@jam_track = JamTrack.find_by_plan_code("jamtrack-" + params[:plan_code])
band_jam_track_count = @jam_track.band_jam_track_count
jam_track_count = JamTrack.count
@title = individual_jamtrack_title(true, params[:generic], @jam_track)
@description = individual_jamtrack_desc(true, params[:generic], @jam_track)
@page_data = {jam_track: @jam_track, all_track_count: jam_track_count, band_track_count: band_jam_track_count, band: true, generic: params[:generic]}
gon.jam_track_plan_code = params[:plan_code] ? "jamtrack-" + params[:plan_code] : nil
render 'individual_jamtrack_band', layout: 'web'
gon.generic = params[:generic]
render 'individual_jamtrack', layout: 'web'
end
def individual_jamtrack_v1

View File

@ -10,4 +10,8 @@ class PopupsController < ApplicationController
render :layout => "minimal"
end
def youtube_player
@video_id = params[:id]
render :layout => "minimal"
end
end

View File

@ -0,0 +1,28 @@
module LandingsHelper
def individual_jamtrack_title(is_band, is_generic, jam_track)
return 'Free Backing Track - Multitrack' unless jam_track
if is_band
"#{jam_track.original_artist} - Get a Free Backing Track - Multitrack"
elsif is_generic
"Backing Tracks - Full Multitracks with Unique Features"
else
"#{jam_track.name} - Free Backing Track - Multitrack"
end
end
def individual_jamtrack_desc(is_band, is_generic, jam_track)
return "" unless jam_track
if is_band
"Full multitrack recordings by #{jam_track.original_artist} deliver flexible backing tracks for any instrument or vocals"
elsif is_generic
"Full multitrack recordings plus free app deliver flexible backing tracks for any instrument or vocals with unique features"
else
"Full multitrack recording of \"#{jam_track.name}\" by #{jam_track.original_artist} delivers flexible backing track for any instrument or vocals."
end
end
end

View File

@ -1,35 +1,10 @@
- provide(:page_name, 'landing_page full landing_jamtrack individual_jamtrack')
- provide(:description, @jam_track.nil? ? nil : "Preview multi-track JamTrack recording: #{@jam_track.name} by #{@jam_track.original_artist}. Way better than a backing track.")
- provide(:title, @jam_track.nil? ? nil : "Preview JamTrack: #{@jam_track.name} by #{@jam_track.original_artist}")
- provide(:description, @description)
- provide(:title, @title)
.one_by_two
.row
h1
.row
.column
h1.hidden.individualized
| Preview&nbsp;
strong.jamtrack_name
br
| JamTrack by&nbsp;
span.jamtrack_band
h1.hidden.generic
| Preview One of Our JamTracks
p.prompt Click play buttons to preview tracks. Every JamTrack includes fully isolated tracks for each part of the song!
.previews
a.browse-jamtracks.hidden
.column
h1 See What You Can Do With JamTracks
.video-wrapper
.video-container
iframe src="//www.youtube.com/embed/askHvcCoNfw" frameborder="0" allowfullscreen="allowfullscreen"
br clear="all"
br clear="all"
= react_component 'IndividualJamTrackPage', @page_data.to_json
javascript:
$(document).on('JAMKAZAM_READY', function(e, data) {
var song = new JK.IndividualJamTrack(data.app);
song.initialize();

View File

@ -29,6 +29,6 @@ javascript:
$(document).on('JAMKAZAM_READY', function(e, data) {
var song = new JK.IndividualJamTrack(data.app);
var song = new JK.IndividualJamTrackv1(data.app);
song.initialize();
})

View File

@ -38,6 +38,6 @@
javascript:
$(document).on('JAMKAZAM_READY', function (e, data) {
var song = new JK.IndividualJamTrack(data.app);
var song = new JK.IndividualJamTrackv1(data.app);
song.initialize();
})

View File

@ -51,7 +51,6 @@
<%= link_to image_tag("web/free-jamtrack-cta.png", :alt => "ClICK HERE TO PICK YOUR FIRST JAMTRACK FREE!"), "/client#/jamtrackBrowse", class: "cta-free-jamtrack" %>
<span class="value-indicator">$1.99 value</span>
</div>
<% end %>
</div>
@ -95,11 +94,13 @@
JK.currentUserAvatarUrl = JK.resolveAvatarUrl('<%= current_user.photo_url %>');
JK.currentUserName = '<%= current_user.name %>';
JK.currentUserMusician = '<%= current_user.musician %>';
JK.currentUserFreeJamTrack = <%= APP_CONFIG.one_free_jamtrack_per_user && current_user.has_redeemable_jamtrack %>
<% else %>
JK.currentUserId = null;
JK.currentUserAvatarUrl = null;
JK.currentUserName = null;
JK.currentUserMusician = null;
JK.currentUserFreeJamTrack = <%= APP_CONFIG.one_free_jamtrack_per_user && anonymous_user.nil? ? false : anonymous_user.has_redeemable_jamtrack%>
<% end %>
JK.app = JK.JamKazam();

View File

@ -0,0 +1,2 @@
- provide(:page_name, 'youtube-player popup')
= react_component 'PopupYoutubePlayer', {video_id: @video_id}

View File

@ -142,6 +142,7 @@ SampleApp::Application.routes.draw do
scope '/popups' do
match '/recording-controls', to: 'popups#recording_controls'
match '/media-controls', to: 'popups#media_controls'
match '/youtube/player', to: 'popups#youtube_player'
end
scope '/corp' do

View File

@ -1,67 +0,0 @@
require 'spec_helper'
describe "Individual JamTrack Band", :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 }
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')
end
describe "AC/DC Back in Black" do
it "logged out" do
visit "/landing/jamtracks/band/acdc-backinblack"
find('.jamtrack_band', text: @jamtrack_acdc_backinblack.original_artist)
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:'Master Mix')
else
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]')
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
find('a.cta-free-jamtrack')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('a.browse-jamtracks')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
end
it "logged in" do
fast_signin(user, "/landing/jamtracks/band/acdc-backinblack")
find('.jamtrack_band', text: @jamtrack_acdc_backinblack.original_artist)
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:'Master Mix')
else
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]')
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
find('a.cta-free-jamtrack')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('a.browse-jamtracks')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
end
end
end

View File

@ -42,8 +42,7 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
it "logged out" do
visit "/landing/jamtracks/acdc-backinblack"
find('.jamtrack_name', '"Back in Black"')
find('.jamtrack_band', '"AC/DC"')
find('h1', "#{jamtrack_acdc_backinblack.name} Backing Track by #{jamtrack_acdc_backinblack.original_artist}")
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
@ -53,18 +52,26 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
find('a.cta-free-jamtrack')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('a.browse-jamtracks')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('.browse-band a')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('.browse-all a')['href'].should eq("/client#/jamtrackBrowse")
find('a.cta-free-jamtrack')['href'].should eq("/client#/jamtrackBrowse")
find('a.cta-free-jamtrack').trigger(:click)
find('h1', text: 'check out')
find('h3', text: 'OR SIGN UP USING YOUR EMAIL')
# now go back, and then try to click checkout again
visit "/landing/jamtracks/acdc-backinblack"
find('a.cta-free-jamtrack').trigger(:click)
find('h1', text: 'check out')
find('h3', text: 'OR SIGN UP USING YOUR EMAIL')
find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
end
it "logged in" do
fast_signin(user, "/landing/jamtracks/acdc-backinblack")
find('.jamtrack_name', '"Back in Black"')
find('.jamtrack_band', '"AC/DC"')
find('h1', "#{jamtrack_acdc_backinblack.name} Backing Track by #{jamtrack_acdc_backinblack.original_artist}")
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
@ -74,17 +81,14 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
find('a.cta-free-jamtrack')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('a.browse-jamtracks')['href'].should eq("/client?artist=#{jamtrack_acdc_backinblack.original_artist}#/jamtrackBrowse")
find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
find('a.cta-free-jamtrack').trigger(:click)
find('p', text:'Thank you for joining our community, and congratulations on getting your first JamTrack!')
end
it "generic version" do
visit "/landing/jamtracks/acdc-backinblack?generic=true"
find('h1', text: 'Preview One of Our JamTracks')
find('h1', "Backing Tracks + Free Amazing App = Unmatched Experience")
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
@ -94,13 +98,27 @@ describe "Individual JamTrack", :js => true, :type => :feature, :capybara_featur
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
find('a.cta-free-jamtrack')['href'].should eq("/client#/jamtrackBrowse")
find('a.browse-jamtracks')['href'].should eq("/client#/jamtrackBrowse")
find('a.browse-jamtracks').trigger(:click)
find('h1', text: 'jamtracks')
find('a.cta-free-jamtrack').trigger(:click)
find('h1', text: 'check out')
find('h3', text: 'OR SIGN UP USING YOUR EMAIL')
end
it "band version" do
visit "/landing/jamtracks/band/acdc-backinblack"
find('h1', "#{jamtrack_acdc_backinblack.original_artist} Backing Tracks - Complete Multitracks")
jamtrack_acdc_backinblack.jam_track_tracks.each do |track|
if track.master?
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="other"]')
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:'Master Mix')
else
find('.jam-track-preview-holder[data-id="' + track.id + '"] img.instrument-icon[data-instrument-id="' + track.instrument.id + '"]')
find('.jam-track-preview-holder[data-id="' + track.id + '"] .instrument-name', text:track.instrument.description)
end
end
find('a.cta-free-jamtrack').trigger(:click)
find('h1', text: 'check out')
find('h3', text: 'OR SIGN UP USING YOUR EMAIL')
end
end
end