spec: Add POM for logout page and auth_spec.rb

closes: USERS-198

See Jira for details.

Change-Id: If49e59ffc04a00dbea1d00f613322626f6b0ef4b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/220943
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Steve Shepherd <sshepherd@instructure.com>
This commit is contained in:
sshepherd 2019-12-16 12:03:09 -07:00 committed by Steve Shepherd
parent 2c3ddfe00c
commit a25011a5b6
2 changed files with 45 additions and 3 deletions

View File

@ -15,18 +15,20 @@
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
require_relative 'common'
require_relative '../common'
require_relative './pages/logout_page'
describe "auth" do
include_context "in-process server selenium tests"
include LogoutPage
describe "logout" do
it "should present confirmation on GET /logout" do
user_with_pseudonym active_user: true
login_as
get "/logout"
f('#Button--logout-confirm').click
visit_logout_page
confirm_logout
keep_trying_until {
expect(driver.current_url).to match %r{/login/canvas}

View File

@ -0,0 +1,40 @@
#
# Copyright (C) 2017 - present Instructure, Inc.
#
# This file is part of Canvas.
#
# Canvas is free software: you can redistribute it and/or modify it under
# the terms of the GNU Affero General Public License as published by the Free
# Software Foundation, version 3 of the License.
#
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
# details.
#
# You should have received a copy of the GNU Affero General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
require_relative '../../common'
module LogoutPage
#------------------------- Selectors --------------------------
def logout_confirm_btn_selector
'#Button--logout-confirm'
end
#------------------------- Elements ---------------------------
def logout_confirm_btn
f(logout_confirm_btn_selector)
end
#----------------------- Actions/Methods ----------------------
def visit_logout_page
get "/logout"
end
def confirm_logout
logout_confirm_btn.click
end
end