discourse/spec/system/user_activation_spec.rb

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