Fixing "Query string parameters prevent WA from loading"

Due to a regression, query string parameters added to the URL (like:

http://play.workadventure.localhost/_/global/maps.workadventure.localhost/starter/map.json?utm_source=sendinblue&utm_campaign=WA+-+2021+Christmap+map+launch&utm_medium=email#foo

) were causing a crash in WA.

This commit fixes the issue (and adds a E2E test)
This commit is contained in:
David Négrier 2021-11-30 14:23:39 +01:00
parent 21e400a4a1
commit 06483fd586
2 changed files with 4 additions and 2 deletions

View File

@ -163,12 +163,13 @@ class ConnectionManager {
console.error(err); console.error(err);
} }
} else { } else {
const query = urlParams.toString();
roomPath = roomPath =
window.location.protocol + window.location.protocol +
"//" + "//" +
window.location.host + window.location.host +
window.location.pathname + window.location.pathname +
urlParams.toString() + //use urlParams because the token param must be deleted (query ? "?" + query : "") + //use urlParams because the token param must be deleted
window.location.hash; window.location.hash;
} }

View File

@ -4,8 +4,9 @@ const fs = require('fs')
import { Selector } from 'testcafe'; import { Selector } from 'testcafe';
import {userAlice} from "./utils/roles"; import {userAlice} from "./utils/roles";
// Note: we are also testing that we can connect if the URL contains a random query string
fixture `Variables` fixture `Variables`
.page `http://play.workadventure.localhost/_/global/maps.workadventure.localhost/tests/Variables/Cache/variables_tmp.json`; .page `http://play.workadventure.localhost/_/global/maps.workadventure.localhost/tests/Variables/Cache/variables_tmp.json?somerandomparam=1`;
test("Test that variables cache in the back don't prevent setting a variable in case the map changes", async (t: TestController) => { test("Test that variables cache in the back don't prevent setting a variable in case the map changes", async (t: TestController) => {
// Let's start by visiting a map that DOES not have the variable. // Let's start by visiting a map that DOES not have the variable.