Skip to content

Commit a8ebdae

Browse files
author
David Revelo
committed
Fix confirmation email link
1 parent da8e8f9 commit a8ebdae

3 files changed

Lines changed: 15 additions & 11 deletions

File tree

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
module GraphqlDevise
22
module MailerHelper
3-
def confirmation_query(token:, config:, redirect_url:)
3+
def confirmation_query(resource_name)
4+
name = "#{resource_name.camelize(:lower)}ConfirmAccount"
45
raw = <<-GRAPHQL
5-
confirmAccount($token:ID!,$clientConfig:String,redirect:String!){
6-
userConfirmAccount(token:$token,clientConfig:$clientConfig,redirect:$redirect
7-
){
8-
success,errors
6+
query($token:String!,$redirect:String!){
7+
#{name}(confirmationToken:$token,redirectUrl:$redirect){
8+
email
99
}
10-
}&variables={token:"#{token}",clientConfig:"#{config}",redirect:"#{redirect_url}"}
10+
}
1111
GRAPHQL
12-
ERB::Util.url_encode(raw.gsub("\n", '').gsub(' ', ''))
12+
raw.delete("\n").delete(' ')
1313
end
1414
end
1515
end

app/views/devise/mailer/confirmation_instructions.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
<p><%= t '.confirm_link_msg' %> </p>
44

5-
<p><%= link_to t('.confirm_account_link'), api_v1_graphql_auth_url, query: confirmation_query(token: @token, config: message['client-config'].to_s, redirect_url: message['redirect-url']).html_safe %></p>
5+
<p><%= link_to t('.confirm_account_link'), url_for(controller: 'graphql_devise/graphql', action: :auth, query: confirmation_query(@resource.class.to_s).html_safe, variables: {token: @token, redirect: message['redirect-url']}) %></p>

spec/requests/mutations/sign_up_spec.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,13 @@
4545
}
4646
)
4747

48-
email = ActionMailer::Base.deliveries.last
49-
query = ERB::Util.url_encode("confirmAccount($token:ID!,$clientConfig:String,redirect:String!){userConfirmAccount(token:$token,clientConfig:$clientConfig,redirect:$redirect){success,errors}}&variables={token:\"#{user.confirmation_token}\",clientConfig:\"default\",redirect:\"#{redirect}\"}").html_safe
50-
expect(email.body.encoded).to match(/query="#{query}"/)
48+
email = Nokogiri::HTML(ActionMailer::Base.deliveries.last.body.encoded)
49+
link = email.css('a').first
50+
51+
expect do
52+
get link['href']
53+
user.reload
54+
end.to change { user.active_for_authentication? }.to(true)
5155
end
5256
end
5357

0 commit comments

Comments
 (0)