canvas-lms/spec/selenium/admin/account_admin_courses_spec.rb

108 lines
3.6 KiB
Ruby

require File.expand_path(File.dirname(__FILE__) + '/../common')
describe "account admin courses tab" do
include_context "in-process server selenium tests"
def add_course(course_name, has_student = false)
Account.default.courses.create(:name => course_name).offer!
course = Course.where(name: course_name).first
if (has_student)
user = User.create(:name => "student 1")
course.enroll_user(user, "StudentEnrollment", {:enrollment_state => "active"})
end
# we need to refresh the page so the course shows up
refresh_page
expect(f("#course_#{course.id}")).to be_displayed
expect(f("#course_#{course.id}")).to include_text course_name
if (has_student)
expect(f("#course_#{course.id}")).to include_text "1 Student"
end
course
end
context "add course basic" do
describe "shared course specs" do
let(:account) { Account.default }
let(:url) { "/accounts/#{Account.default.id}" }
before (:each) do
course_with_admin_logged_in
end
it "should add a new course" do
skip('sub account course creation, failing at wait_for_dom_ready') if account != Account.default
course_name = 'course 1'
course_code = '12345'
get url
f(".add_course_link").click
wait_for_ajaximations
f("#add_course_form #course_name").send_keys(course_name)
f("#course_course_code").send_keys(course_code)
submit_form("#add_course_form")
refresh_page # we need to refresh the page so the course shows up
course = Course.where(name: course_name).first
expect(course).to be_present
expect(course.course_code).to eq course_code
expect(f("#course_#{course.id}")).to be_displayed
expect(f("#course_#{course.id}")).to include_text(course_name)
end
end
end
context "add courses" do
before (:each) do
course_with_admin_logged_in
get "/accounts/#{Account.default.id}"
end
it "should search a course and verify it goes to the course" do
name = "course 1"
course = add_course name, true
name = name.split(" ")
f("#course_name").send_keys(name[0])
f("#course_name").send_keys(" "+name[1])
ff(".ui-menu-item .ui-corner-all").count > 0
keep_trying_until { expect(fj(".ui-menu-item .ui-corner-all:visible").text).to include_text(course.name) }
expect_new_page_load { fj("#new_course button").click }
expect(f("#crumb_course_#{course.id}")).to be_displayed
end
it "should search a bogus course and it should not show up" do
add_course "course 1"
name = "courses 4"
name = name.split(" ")
f("#course_name").send_keys(name[0])
f("#course_name").send_keys(" "+name[1])
expect(ff(".ui-menu-item .ui-corner-all").count).to eq 0
end
it "should hide enrollmentless courses" do
name = "course 1"
name2 = "course 2"
course = add_course name
course2 = add_course name2, true
f("#enroll_filter_checkbox").click
f(".filter_button").click
wait_for_ajax_requests
expect(f("#course_#{course.id}")).to be_nil
expect(f("#course_#{course2.id}")).to be_displayed
end
it "should hide and then show enrollmentless courses" do
name = "course 1"
course = add_course name
f("#enroll_filter_checkbox").click
f(".filter_button").click
wait_for_ajax_requests
expect(f("#course_#{course.id}")).to be_nil
f("#enroll_filter_checkbox").click
f(".filter_button").click
wait_for_ajax_requests
expect(f("#course_#{course.id}")).to be_displayed
end
end
end