spec: _adds_ term dropdown spec

Change-Id: I8de35ab3499777cf148e66cc69c1d3daa4493f0c
Reviewed-on: https://gerrit.instructure.com/87021
Tested-by: Jenkins
Reviewed-by: Gentry Beckmann <gbeckmann@instructure.com>
Product-Review: Gentry Beckmann <gbeckmann@instructure.com>
QA-Review: Gentry Beckmann <gbeckmann@instructure.com>
This commit is contained in:
KC Naegle 2016-08-05 13:17:24 -06:00 committed by Gentry Beckmann
parent cfab9316bc
commit fb07f513ed
3 changed files with 60 additions and 0 deletions

View File

@ -12,6 +12,13 @@ module Factories
account.grading_period_groups.create!(title: TITLE)
end
def create_for_account_with_term(account, term_name, group_title = TITLE)
custom_term = account.enrollment_terms.create!(name: term_name)
group = account.grading_period_groups.create!(title: group_title)
group.enrollment_terms << custom_term
group
end
def legacy_create_for_course(course)
# This relationship will eventually go away.
# Please use this helper so that old associations can be easily

View File

@ -48,6 +48,38 @@ describe "multiple grading periods account page" do
edit_first_grading_period("Edited Title")
expect(period_present?("Edited Title")).to be true
end
context "page functionality" do
group_name_1 = "Group 1"
group_name_2 = "Group 2"
term_name_1 = "First Term"
term_name_2 = "Second Term"
period_name_1 = "A Grading Period"
period_name_2 = "Another Grading Period"
before(:each) do
group1 = group_helper.create_for_account_with_term(Account.default, term_name_1, group_name_1)
group2 = group_helper.create_for_account_with_term(Account.default, term_name_2, group_name_2)
period_helper.create_for_group(group1, title: period_name_1)
period_helper.create_for_group(group2, title: period_name_2)
visit_account_grading_standards(Account.default.id)
end
it "term dropdown filters grading period sets", test_id: 2528643, priority: "1" do
select_term_filter(term_name_1)
expect(find_set(group_name_1)).to be_displayed
expect(set_present?(group_name_2)).to be false
select_term_filter(term_name_2)
expect(find_set(group_name_2)).to be_displayed
expect(set_present?(group_name_1)).to be false
select_term_filter("All Terms")
expect(find_set(group_name_1)).to be_displayed
expect(find_set(group_name_2)).to be_displayed
end
end
end
end

View File

@ -8,6 +8,7 @@ module MultipleGradingPeriods
# Main page components
let(:grading_periods_tab) { f("#grading-periods-tab") }
let(:add_set_of_grading_periods_button) { f('button[aria-label="Add Set of Grading Periods"]') }
let(:term_dropdown) { f('select[aria-label="Enrollment Term"]')}
# Set components
let(:set_name_input) { f('#set-name')}
@ -20,6 +21,8 @@ module MultipleGradingPeriods
let(:edit_grading_period_set_button) { f('.edit_grading_period_set_button')}
let(:edit_set_save_button) { f('button[aria-label="Save Grading Period Set"]') }
let(:first_collapsed_set) { f('.GradingPeriodSet--collapsed') }
let(:all_collapsed_set_titles_css) { '.GradingPeriodSet--collapsed .GradingPeriodSet__title' }
# Period components
let(:period_title_input) { f('#title') }
@ -91,5 +94,23 @@ module MultipleGradingPeriods
replace_content(period_title_input, title)
save_period_button.click
end
def select_term_filter(term)
term_dropdown.click
options = ff('select[aria-label="Enrollment Term"] option')
options.each do |option|
if option.text == term then option.click end
end
end
def all_collapsed_set_titles
ff(all_collapsed_set_titles_css)
end
def find_set(set_name)
all_collapsed_set_titles.each do |title|
if title.text == set_name then return title end
end
end
end
end