mirror of
https://github.com/discourse/discourse.git
synced 2025-02-20 22:38:09 +08:00
FIX: Correctly load the invites model when using full page logins (#29713)
This commit is contained in:
parent
00196b8652
commit
920fa4c248
@ -1,4 +1,5 @@
|
||||
import { service } from "@ember/service";
|
||||
import { ajax } from "discourse/lib/ajax";
|
||||
import PreloadStore from "discourse/lib/preload-store";
|
||||
import DiscourseRoute from "discourse/routes/discourse";
|
||||
import { deepMerge } from "discourse-common/lib/object";
|
||||
@ -17,7 +18,9 @@ export default class InvitesShow extends DiscourseRoute {
|
||||
deepMerge(params, json)
|
||||
);
|
||||
} else {
|
||||
return {};
|
||||
return ajax(`/invites/${params.token}`).then((json) =>
|
||||
deepMerge(params, json)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -547,11 +547,12 @@ class InvitesController < ApplicationController
|
||||
info[:username] = current_user.username
|
||||
end
|
||||
|
||||
store_preloaded("invite_info", MultiJson.dump(info))
|
||||
|
||||
secure_session["invite-key"] = invite.invite_key
|
||||
|
||||
render layout: "application"
|
||||
respond_to do |format|
|
||||
format.html { store_preloaded("invite_info", MultiJson.dump(info)) }
|
||||
format.json { render_json_dump(info) }
|
||||
end
|
||||
end
|
||||
|
||||
def show_irredeemable_invite(invite)
|
||||
|
@ -259,6 +259,26 @@ shared_examples "signup scenarios" do |signup_page_object, login_page_object|
|
||||
expect(page).to have_css(".header-dropdown-toggle.current-user")
|
||||
end
|
||||
end
|
||||
|
||||
it "correctly loads the invites page" do
|
||||
inviter = Fabricate(:user)
|
||||
invite = Fabricate(:invite, email: "johndoe@example.com", invited_by: inviter)
|
||||
visit "/invites/#{invite.invite_key}?t=#{invite.email_token}"
|
||||
|
||||
expect(page).to have_css(".invited-by .user-info[data-username='#{inviter.username}']")
|
||||
find(".invitation-cta__sign-in").click
|
||||
|
||||
if page.has_css?(".d-modal.login-modal", wait: 0)
|
||||
if page.has_css?("html.mobile-view", wait: 0)
|
||||
expect(page).to have_css(".d-modal:not(.is-animating)")
|
||||
end
|
||||
find(".d-modal .modal-close").click
|
||||
else
|
||||
page.go_back
|
||||
end
|
||||
|
||||
expect(page).to have_css(".invited-by .user-info[data-username='#{inviter.username}']")
|
||||
end
|
||||
end
|
||||
|
||||
describe "Signup", type: :system do
|
||||
|
Loading…
x
Reference in New Issue
Block a user