jam-cloud/admin/spec/features/feeds_spec.rb

88 lines
2.8 KiB
Ruby

require 'spec_helper'
describe 'Feeds' do
subject { page }
before(:each) do
MusicSession.delete_all
Recording.delete_all
Diagnostic.delete_all
User.delete_all
end
let(:admin) { FactoryGirl.create(:admin) }
let(:user) { FactoryGirl.create(:user) }
let(:music_session) { FactoryGirl.create(:music_session, :creator => user) }
let(:recording) { FactoryGirl.create(:recording_with_track, :owner => user) }
let(:diagnostic) { FactoryGirl.create(:diagnostic, :user => user) }
context 'empty dashboard' do
before(:each) do
visit admin_feed_path
end
it { should have_selector('h2', text: 'Feed') }
it 'has no feeds' do
should_not have_selector('h3', text: 'Music Sessions - All')
should_not have_selector('h3', text: 'Recordings - All')
should_not have_selector('h3', text: 'Diagnostics - All')
end
end
context 'admin enters a user name' do
before(:each) do
user.touch
visit admin_feed_path
end
it 'auto-completes with email + full name', :js => true do
within('form.feed') do
fill_in 'feed_user', with: user.email[0..3]
end
page.execute_script %Q{ $('form.feed input#feed_user').trigger('focus') }
page.execute_script %Q{ $('form.feed input#feed_user').trigger('keydown') }
find('a.ui-corner-all', text: user.to_label).trigger(:click)
should have_selector('form.feed #feed_user', user.to_label)
should have_selector('form.feed #feed_user_id[value="' + user.id + '"]', visible:false)
end
end
context 'with existing activities' do
before(:each) do
music_session.touch
recording.touch
diagnostic.touch
visit admin_feed_path
end
it 'shows session, recording, diagnostic' do
should have_selector("tr#jam_ruby_music_session_#{music_session.id}")
should have_selector("tr#jam_ruby_recording_#{recording.id}")
should have_selector("tr#jam_ruby_diagnostic_#{diagnostic.id}")
end
it 'shows activities for one user', :js => true do
within('form.feed') do
fill_in 'feed_user', with: user.email[0..3]
end
page.execute_script %Q{ $('form.feed input#feed_user').trigger('focus') }
page.execute_script %Q{ $('form.feed input#feed_user').trigger('keydown') }
find('a.ui-corner-all', text: user.to_label).trigger(:click)
should have_selector('form.feed #feed_user', user.to_label)
should have_selector('form.feed #feed_user_id[value="' + user.id + '"]', visible:false)
page.execute_script %Q{ $('form.feed').trigger('submit') }
should have_selector("tr#jam_ruby_music_session_#{music_session.id}")
should have_selector("tr#jam_ruby_recording_#{recording.id}")
should have_selector("tr#jam_ruby_diagnostic_#{diagnostic.id}")
end
end
end