diff --git a/lib/alchemy/admin/preview_url.rb b/lib/alchemy/admin/preview_url.rb index 3bcde8a71e..1e3abcb146 100644 --- a/lib/alchemy/admin/preview_url.rb +++ b/lib/alchemy/admin/preview_url.rb @@ -45,8 +45,10 @@ def url_for(page) if @preview_config && uri uri_class.build( host: uri.host, + port: uri.port, path: page.url_path, userinfo: userinfo, + query: { alchemy_preview_mode: true }.to_param, ).to_s else routes.admin_page_path(page) diff --git a/spec/libraries/admin/preview_url_spec.rb b/spec/libraries/admin/preview_url_spec.rb index 8c2b9e91f7..24fa0c2cb4 100644 --- a/spec/libraries/admin/preview_url_spec.rb +++ b/spec/libraries/admin/preview_url_spec.rb @@ -39,7 +39,7 @@ end it "returns the configured preview url" do - is_expected.to eq "http://www.example.com/#{page.urlname}" + is_expected.to eq "http://www.example.com/#{page.urlname}?alchemy_preview_mode=true" end end @@ -51,7 +51,7 @@ end it "returns the configured preview url with https" do - is_expected.to eq "https://www.example.com/#{page.urlname}" + is_expected.to eq "https://www.example.com/#{page.urlname}?alchemy_preview_mode=true" end end @@ -67,7 +67,19 @@ end it "returns the configured preview url with userinfo" do - is_expected.to eq "https://foo:baz@www.example.com/#{page.urlname}" + is_expected.to eq "https://foo:baz@www.example.com/#{page.urlname}?alchemy_preview_mode=true" + end + end + + context "with a port configured" do + before do + stub_alchemy_config(:preview, { + "host" => "https://www.example.com:8080", + }) + end + + it "returns the configured preview url with userinfo" do + is_expected.to eq "https://www.example.com:8080/#{page.urlname}?alchemy_preview_mode=true" end end @@ -86,7 +98,7 @@ end it "returns the configured preview url for that site" do - is_expected.to eq "http://new.example.com/#{page.urlname}" + is_expected.to eq "http://new.example.com/#{page.urlname}?alchemy_preview_mode=true" end end @@ -102,7 +114,7 @@ end it "returns the default configured preview url" do - is_expected.to eq "http://www.example.com/#{page.urlname}" + is_expected.to eq "http://www.example.com/#{page.urlname}?alchemy_preview_mode=true" end end @@ -132,7 +144,7 @@ end it "returns the preview url without urlname" do - is_expected.to eq "https://www.example.com/" + is_expected.to eq "https://www.example.com/?alchemy_preview_mode=true" end end end