end
test "request shell access" do
+ ActionMailer::Base.deliveries = []
visit page_with_token('spectator', '/manage_account')
assert_text 'You do not have access to any virtual machines'
click_link 'Send request for shell access'
- assert_text 'A request for shell access was sent.'
- assert_no_text 'You do not have access to any virtual machines.'
- assert_no_selector 'a', text: 'Send request for shell access'
+
+ # Button text changes to "sending...", then back to normal. In the
+ # test suite we can't depend on confirming the "sending..." state
+ # before it goes back to normal, though.
+ ## assert_selector 'a', text: 'Sending request...'
+ assert_selector 'a', text: 'Send request for shell access'
+ assert_text 'A request for shell access was sent'
# verify that the email was sent
user = api_fixture('users')['spectator']
- found_email = false
- ActionMailer::Base.deliveries.andand.each do |email|
- full_name = (user['first_name'] || "") + " " + (user['last_name'] || "")
- expected = "Shell account request from #{full_name} (#{user['email']}, #{user['uuid']})"
+ full_name = "#{user['first_name']} #{user['last_name']}"
+ expected = "Shell account request from #{full_name} (#{user['email']}, #{user['uuid']})"
+ found_email = 0
+ ActionMailer::Base.deliveries.each do |email|
if email.subject.include?(expected)
- found_email = true
- break
+ found_email += 1
end
end
- assert_equal true, found_email, "Expected email after requesting shell access"
+ assert_equal 1, found_email, "Expected email after requesting shell access"
- # revisit the page and verify that the Request button is no longer shown
+ # Revisit the page and verify the request sent message along with
+ # the request button.
within('.navbar-fixed-top') do
find('a', text: 'spectator').click
within('.dropdown-menu') do