Created
August 14, 2013 02:23
-
-
Save stevenharman/6227508 to your computer and use it in GitHub Desktop.
Extract Devises "raw" tokens from outgoing email, since the tokens stored in the DB have been digested. (As for Devise 3.1)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Features | |
module MailHelpers | |
def last_email | |
ActionMailer::Base.deliveries[0] | |
end | |
# Can be used like: | |
# extract_token_from_email(:reset_password) | |
def extract_token_from_email(token_name) | |
mail_body = last_email.body.to_s | |
mail_body[/#{token_name.to_s}_token=([^"]+)/, 1] | |
end | |
end | |
end |
Thanks @stevenharman - I've encountered the same problem and your gist really helped. I made some tiny tweaks to the regex and used text_part
instead to make it work for me though (see fork).
Thank you! Helped me write my test!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Per @josevalim, this seems to be the most reasonable way to do it. http://blog.plataformatec.com.br/2013/08/devise-3-1-now-with-more-secure-defaults/#comment-1000254578