38 lines
1.0 KiB
Ruby
38 lines
1.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Account activation", type: :system do
|
|
fab!(:password) { "myverysecurepassword" }
|
|
fab!(:user) { Fabricate(:user, password: password, active: false) }
|
|
|
|
it "can resend activation email and activate account" do
|
|
Jobs.run_immediately!
|
|
|
|
visit "/"
|
|
find(".login-button").click
|
|
find("#login-account-name").fill_in with: user.email
|
|
find("#login-account-password").fill_in with: password
|
|
find("#login-button").click
|
|
|
|
not_activated_modal = find(".not-activated-modal")
|
|
|
|
expect(ActionMailer::Base.deliveries.count).to eq(0)
|
|
|
|
not_activated_modal.find("button.resend").click
|
|
|
|
wait_for(timeout: 5) { ActionMailer::Base.deliveries.count === 1 }
|
|
|
|
mail = ActionMailer::Base.deliveries.last
|
|
expect(mail.to).to contain_exactly(user.email)
|
|
|
|
activate_link = mail.body.to_s[%r{/u/activate-account/\S+}, 0]
|
|
|
|
visit activate_link
|
|
|
|
expect(user.reload.active).to eq(false)
|
|
|
|
find(".activate-account-button").click
|
|
|
|
wait_for(timeout: 5) { user.reload.active }
|
|
end
|
|
end
|