linter fixes
This commit is contained in:
parent
310e131a6e
commit
9bcdc9ba33
@ -1,6 +1,6 @@
|
||||
import Axios from "axios";
|
||||
import { PUSHER_URL } from "../Enum/EnvironmentVariable";
|
||||
import type { CharacterTexture } from "./LocalUser";
|
||||
import Axios from 'axios';
|
||||
import { PUSHER_URL } from '../Enum/EnvironmentVariable';
|
||||
import type { CharacterTexture } from './LocalUser';
|
||||
|
||||
export class MapDetail {
|
||||
constructor(public readonly mapUrl: string, public readonly textures: CharacterTexture[] | undefined) {}
|
||||
@ -15,19 +15,19 @@ export class Room {
|
||||
private _search: URLSearchParams;
|
||||
|
||||
constructor(id: string) {
|
||||
const url = new URL(id, "https://example.com");
|
||||
const url = new URL(id, 'https://example.com');
|
||||
|
||||
this.id = url.pathname;
|
||||
|
||||
if (this.id.startsWith("/")) {
|
||||
if (this.id.startsWith('/')) {
|
||||
this.id = this.id.substr(1);
|
||||
}
|
||||
if (this.id.startsWith("_/")) {
|
||||
if (this.id.startsWith('_/')) {
|
||||
this.isPublic = true;
|
||||
} else if (this.id.startsWith("@/")) {
|
||||
} else if (this.id.startsWith('@/')) {
|
||||
this.isPublic = false;
|
||||
} else {
|
||||
throw new Error("Invalid room ID");
|
||||
throw new Error('Invalid room ID');
|
||||
}
|
||||
|
||||
this._search = new URLSearchParams(url.search);
|
||||
@ -38,16 +38,16 @@ export class Room {
|
||||
baseUrl: string,
|
||||
currentInstance: string
|
||||
): { roomId: string; hash: string | null } {
|
||||
let roomId = "";
|
||||
let roomId = '';
|
||||
let hash = null;
|
||||
if (!identifier.startsWith("/_/") && !identifier.startsWith("/@/")) {
|
||||
if (!identifier.startsWith('/_/') && !identifier.startsWith('/@/')) {
|
||||
//relative file link
|
||||
//Relative identifier can be deep enough to rewrite the base domain, so we cannot use the variable 'baseUrl' as the actual base url for the URL objects.
|
||||
//We instead use 'workadventure' as a dummy base value.
|
||||
const baseUrlObject = new URL(baseUrl);
|
||||
const absoluteExitSceneUrl = new URL(
|
||||
identifier,
|
||||
"http://workadventure/_/" + currentInstance + "/" + baseUrlObject.hostname + baseUrlObject.pathname
|
||||
'http://workadventure/_/' + currentInstance + '/' + baseUrlObject.hostname + baseUrlObject.pathname
|
||||
);
|
||||
roomId = absoluteExitSceneUrl.pathname; //in case of a relative url, we need to create a public roomId
|
||||
roomId = roomId.substring(1); //remove the leading slash
|
||||
@ -58,7 +58,7 @@ export class Room {
|
||||
}
|
||||
} else {
|
||||
//absolute room Id
|
||||
const parts = identifier.split("#");
|
||||
const parts = identifier.split('#');
|
||||
roomId = parts[0];
|
||||
roomId = roomId.substring(1); //remove the leading slash
|
||||
if (parts.length > 1) {
|
||||
@ -78,7 +78,7 @@ export class Room {
|
||||
if (this.isPublic) {
|
||||
const match = /_\/[^/]+\/(.+)/.exec(this.id);
|
||||
if (!match) throw new Error('Could not extract url from "' + this.id + '"');
|
||||
this.mapUrl = window.location.protocol + "//" + match[1];
|
||||
this.mapUrl = window.location.protocol + '//' + match[1];
|
||||
resolve(new MapDetail(this.mapUrl, this.textures));
|
||||
return;
|
||||
} else {
|
||||
@ -89,7 +89,7 @@ export class Room {
|
||||
params: urlParts,
|
||||
})
|
||||
.then(({ data }) => {
|
||||
console.log("Map ", this.id, " resolves to URL ", data.mapUrl);
|
||||
console.log('Map ', this.id, ' resolves to URL ', data.mapUrl);
|
||||
resolve(data);
|
||||
return;
|
||||
})
|
||||
@ -118,7 +118,7 @@ export class Room {
|
||||
} else {
|
||||
const match = /@\/([^/]+)\/([^/]+)\/.+/.exec(this.id);
|
||||
if (!match) throw new Error('Could not extract instance from "' + this.id + '"');
|
||||
this.instance = match[1] + "/" + match[2];
|
||||
this.instance = match[1] + '/' + match[2];
|
||||
return this.instance;
|
||||
}
|
||||
}
|
||||
@ -127,7 +127,7 @@ export class Room {
|
||||
const regex = /@\/([^/]+)\/([^/]+)(?:\/([^/]*))?/gm;
|
||||
const match = regex.exec(url);
|
||||
if (!match) {
|
||||
throw new Error("Invalid URL " + url);
|
||||
throw new Error('Invalid URL ' + url);
|
||||
}
|
||||
const results: { organizationSlug: string; worldSlug: string; roomSlug?: string } = {
|
||||
organizationSlug: match[1],
|
||||
@ -140,8 +140,8 @@ export class Room {
|
||||
}
|
||||
|
||||
public isDisconnected(): boolean {
|
||||
const alone = this._search.get("alone");
|
||||
if (alone && alone !== "0" && alone.toLowerCase() !== "false") {
|
||||
const alone = this._search.get('alone');
|
||||
if (alone && alone !== '0' && alone.toLowerCase() !== 'false') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -1,10 +1,10 @@
|
||||
import type { ITiledMapObject } from "../Map/ITiledMap";
|
||||
import type { GameScene } from "../Game/GameScene";
|
||||
import type { ITiledMapObject } from '../Map/ITiledMap';
|
||||
import type { GameScene } from '../Game/GameScene';
|
||||
|
||||
export class TextUtils {
|
||||
public static createTextFromITiledMapObject(scene: GameScene, object: ITiledMapObject): void {
|
||||
if (object.text === undefined) {
|
||||
throw new Error("This object has not textual representation.");
|
||||
throw new Error('This object has not textual representation.');
|
||||
}
|
||||
const options: {
|
||||
fontStyle?: string;
|
||||
@ -18,18 +18,18 @@ export class TextUtils {
|
||||
};
|
||||
} = {};
|
||||
if (object.text.italic) {
|
||||
options.fontStyle = "italic";
|
||||
options.fontStyle = 'italic';
|
||||
}
|
||||
// Note: there is no support for "strikeout" and "underline"
|
||||
let fontSize: number = 16;
|
||||
if (object.text.pixelsize) {
|
||||
fontSize = object.text.pixelsize;
|
||||
}
|
||||
options.fontSize = fontSize + "px";
|
||||
options.fontSize = fontSize + 'px';
|
||||
if (object.text.fontfamily) {
|
||||
options.fontFamily = '"' + object.text.fontfamily + '"';
|
||||
}
|
||||
let color = "#000000";
|
||||
let color = '#000000';
|
||||
if (object.text.color !== undefined) {
|
||||
color = object.text.color;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { registeredCallbacks } from "./Api/iframe/registeredCallbacks";
|
||||
import { registeredCallbacks } from './Api/iframe/registeredCallbacks';
|
||||
import {
|
||||
IframeResponseEvent,
|
||||
IframeResponseEventMap,
|
||||
@ -6,19 +6,19 @@ import {
|
||||
isIframeErrorAnswerEvent,
|
||||
isIframeResponseEventWrapper,
|
||||
TypedMessageEvent,
|
||||
} from "./Api/Events/IframeEvent";
|
||||
import chat from "./Api/iframe/chat";
|
||||
import type { IframeCallback } from "./Api/iframe/IframeApiContribution";
|
||||
import nav from "./Api/iframe/nav";
|
||||
import controls from "./Api/iframe/controls";
|
||||
import ui from "./Api/iframe/ui";
|
||||
import sound from "./Api/iframe/sound";
|
||||
import room from "./Api/iframe/room";
|
||||
import player from "./Api/iframe/player";
|
||||
import type { ButtonDescriptor } from "./Api/iframe/Ui/ButtonDescriptor";
|
||||
import type { Popup } from "./Api/iframe/Ui/Popup";
|
||||
import type { Sound } from "./Api/iframe/Sound/Sound";
|
||||
import { answerPromises, sendToWorkadventure } from "./Api/iframe/IframeApiContribution";
|
||||
} from './Api/Events/IframeEvent';
|
||||
import chat from './Api/iframe/chat';
|
||||
import type { IframeCallback } from './Api/iframe/IframeApiContribution';
|
||||
import nav from './Api/iframe/nav';
|
||||
import controls from './Api/iframe/controls';
|
||||
import ui from './Api/iframe/ui';
|
||||
import sound from './Api/iframe/sound';
|
||||
import room from './Api/iframe/room';
|
||||
import player from './Api/iframe/player';
|
||||
import type { ButtonDescriptor } from './Api/iframe/Ui/ButtonDescriptor';
|
||||
import type { Popup } from './Api/iframe/Ui/Popup';
|
||||
import type { Sound } from './Api/iframe/Sound/Sound';
|
||||
import { answerPromises, sendToWorkadventure } from './Api/iframe/IframeApiContribution';
|
||||
|
||||
const wa = {
|
||||
ui,
|
||||
@ -36,7 +36,7 @@ const wa = {
|
||||
* @deprecated Use WA.chat.sendChatMessage instead
|
||||
*/
|
||||
sendChatMessage(message: string, author: string): void {
|
||||
console.warn("Method WA.sendChatMessage is deprecated. Please use WA.chat.sendChatMessage instead");
|
||||
console.warn('Method WA.sendChatMessage is deprecated. Please use WA.chat.sendChatMessage instead');
|
||||
chat.sendChatMessage(message, author);
|
||||
},
|
||||
|
||||
@ -45,7 +45,7 @@ const wa = {
|
||||
*/
|
||||
disablePlayerControls(): void {
|
||||
console.warn(
|
||||
"Method WA.disablePlayerControls is deprecated. Please use WA.controls.disablePlayerControls instead"
|
||||
'Method WA.disablePlayerControls is deprecated. Please use WA.controls.disablePlayerControls instead'
|
||||
);
|
||||
controls.disablePlayerControls();
|
||||
},
|
||||
@ -55,7 +55,7 @@ const wa = {
|
||||
*/
|
||||
restorePlayerControls(): void {
|
||||
console.warn(
|
||||
"Method WA.restorePlayerControls is deprecated. Please use WA.controls.restorePlayerControls instead"
|
||||
'Method WA.restorePlayerControls is deprecated. Please use WA.controls.restorePlayerControls instead'
|
||||
);
|
||||
controls.restorePlayerControls();
|
||||
},
|
||||
@ -64,7 +64,7 @@ const wa = {
|
||||
* @deprecated Use WA.ui.displayBubble instead
|
||||
*/
|
||||
displayBubble(): void {
|
||||
console.warn("Method WA.displayBubble is deprecated. Please use WA.ui.displayBubble instead");
|
||||
console.warn('Method WA.displayBubble is deprecated. Please use WA.ui.displayBubble instead');
|
||||
ui.displayBubble();
|
||||
},
|
||||
|
||||
@ -72,7 +72,7 @@ const wa = {
|
||||
* @deprecated Use WA.ui.removeBubble instead
|
||||
*/
|
||||
removeBubble(): void {
|
||||
console.warn("Method WA.removeBubble is deprecated. Please use WA.ui.removeBubble instead");
|
||||
console.warn('Method WA.removeBubble is deprecated. Please use WA.ui.removeBubble instead');
|
||||
ui.removeBubble();
|
||||
},
|
||||
|
||||
@ -80,7 +80,7 @@ const wa = {
|
||||
* @deprecated Use WA.nav.openTab instead
|
||||
*/
|
||||
openTab(url: string): void {
|
||||
console.warn("Method WA.openTab is deprecated. Please use WA.nav.openTab instead");
|
||||
console.warn('Method WA.openTab is deprecated. Please use WA.nav.openTab instead');
|
||||
nav.openTab(url);
|
||||
},
|
||||
|
||||
@ -88,7 +88,7 @@ const wa = {
|
||||
* @deprecated Use WA.sound.loadSound instead
|
||||
*/
|
||||
loadSound(url: string): Sound {
|
||||
console.warn("Method WA.loadSound is deprecated. Please use WA.sound.loadSound instead");
|
||||
console.warn('Method WA.loadSound is deprecated. Please use WA.sound.loadSound instead');
|
||||
return sound.loadSound(url);
|
||||
},
|
||||
|
||||
@ -96,7 +96,7 @@ const wa = {
|
||||
* @deprecated Use WA.nav.goToPage instead
|
||||
*/
|
||||
goToPage(url: string): void {
|
||||
console.warn("Method WA.goToPage is deprecated. Please use WA.nav.goToPage instead");
|
||||
console.warn('Method WA.goToPage is deprecated. Please use WA.nav.goToPage instead');
|
||||
nav.goToPage(url);
|
||||
},
|
||||
|
||||
@ -104,15 +104,15 @@ const wa = {
|
||||
* @deprecated Use WA.nav.goToRoom instead
|
||||
*/
|
||||
goToRoom(url: string): void {
|
||||
console.warn("Method WA.goToRoom is deprecated. Please use WA.nav.goToRoom instead");
|
||||
console.warn('Method WA.goToRoom is deprecated. Please use WA.nav.goToRoom instead');
|
||||
nav.goToRoom(url);
|
||||
},
|
||||
|
||||
/**
|
||||
* @deprecated Use WA.nav.openCoWebSite instead
|
||||
*/
|
||||
openCoWebSite(url: string, allowApi: boolean = false, allowPolicy: string = ""): void {
|
||||
console.warn("Method WA.openCoWebSite is deprecated. Please use WA.nav.openCoWebSite instead");
|
||||
openCoWebSite(url: string, allowApi: boolean = false, allowPolicy: string = ''): void {
|
||||
console.warn('Method WA.openCoWebSite is deprecated. Please use WA.nav.openCoWebSite instead');
|
||||
nav.openCoWebSite(url, allowApi, allowPolicy);
|
||||
},
|
||||
|
||||
@ -120,7 +120,7 @@ const wa = {
|
||||
* @deprecated Use WA.nav.closeCoWebSite instead
|
||||
*/
|
||||
closeCoWebSite(): void {
|
||||
console.warn("Method WA.closeCoWebSite is deprecated. Please use WA.nav.closeCoWebSite instead");
|
||||
console.warn('Method WA.closeCoWebSite is deprecated. Please use WA.nav.closeCoWebSite instead');
|
||||
nav.closeCoWebSite();
|
||||
},
|
||||
|
||||
@ -128,28 +128,28 @@ const wa = {
|
||||
* @deprecated Use WA.controls.restorePlayerControls instead
|
||||
*/
|
||||
openPopup(targetObject: string, message: string, buttons: ButtonDescriptor[]): Popup {
|
||||
console.warn("Method WA.openPopup is deprecated. Please use WA.ui.openPopup instead");
|
||||
console.warn('Method WA.openPopup is deprecated. Please use WA.ui.openPopup instead');
|
||||
return ui.openPopup(targetObject, message, buttons);
|
||||
},
|
||||
/**
|
||||
* @deprecated Use WA.chat.onChatMessage instead
|
||||
*/
|
||||
onChatMessage(callback: (message: string) => void): void {
|
||||
console.warn("Method WA.onChatMessage is deprecated. Please use WA.chat.onChatMessage instead");
|
||||
console.warn('Method WA.onChatMessage is deprecated. Please use WA.chat.onChatMessage instead');
|
||||
chat.onChatMessage(callback);
|
||||
},
|
||||
/**
|
||||
* @deprecated Use WA.room.onEnterZone instead
|
||||
*/
|
||||
onEnterZone(name: string, callback: () => void): void {
|
||||
console.warn("Method WA.onEnterZone is deprecated. Please use WA.room.onEnterZone instead");
|
||||
console.warn('Method WA.onEnterZone is deprecated. Please use WA.room.onEnterZone instead');
|
||||
room.onEnterZone(name, callback);
|
||||
},
|
||||
/**
|
||||
* @deprecated Use WA.room.onLeaveZone instead
|
||||
*/
|
||||
onLeaveZone(name: string, callback: () => void): void {
|
||||
console.warn("Method WA.onLeaveZone is deprecated. Please use WA.room.onLeaveZone instead");
|
||||
console.warn('Method WA.onLeaveZone is deprecated. Please use WA.room.onLeaveZone instead');
|
||||
room.onLeaveZone(name, callback);
|
||||
},
|
||||
};
|
||||
@ -166,7 +166,7 @@ declare global {
|
||||
window.WA = wa;
|
||||
|
||||
window.addEventListener(
|
||||
"message",
|
||||
'message',
|
||||
<T extends keyof IframeResponseEventMap>(message: TypedMessageEvent<IframeResponseEvent<T>>) => {
|
||||
if (message.source !== window.parent) {
|
||||
return; // Skip message in this event listener
|
||||
@ -181,7 +181,7 @@ window.addEventListener(
|
||||
|
||||
const resolver = answerPromises.get(queryId);
|
||||
if (resolver === undefined) {
|
||||
throw new Error("In Iframe API, got an answer for a question that we have no track of.");
|
||||
throw new Error('In Iframe API, got an answer for a question that we have no track of.');
|
||||
}
|
||||
resolver.resolve(payloadData);
|
||||
|
||||
@ -192,7 +192,7 @@ window.addEventListener(
|
||||
|
||||
const resolver = answerPromises.get(queryId);
|
||||
if (resolver === undefined) {
|
||||
throw new Error("In Iframe API, got an error answer for a question that we have no track of.");
|
||||
throw new Error('In Iframe API, got an error answer for a question that we have no track of.');
|
||||
}
|
||||
resolver.reject(payloadError);
|
||||
|
||||
|
@ -1,89 +1,89 @@
|
||||
import "jasmine";
|
||||
import { Room } from "../../../src/Connexion/Room";
|
||||
import 'jasmine';
|
||||
import { Room } from '../../../src/Connexion/Room';
|
||||
|
||||
describe("Room getIdFromIdentifier()", () => {
|
||||
it("should work with an absolute room id and no hash as parameter", () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier("/_/global/maps.workadventu.re/test2.json", "", "");
|
||||
expect(roomId).toEqual("_/global/maps.workadventu.re/test2.json");
|
||||
describe('Room getIdFromIdentifier()', () => {
|
||||
it('should work with an absolute room id and no hash as parameter', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier('/_/global/maps.workadventu.re/test2.json', '', '');
|
||||
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
||||
expect(hash).toEqual(null);
|
||||
});
|
||||
it("should work with an absolute room id and a hash as parameters", () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier("/_/global/maps.workadventu.re/test2.json#start", "", "");
|
||||
expect(roomId).toEqual("_/global/maps.workadventu.re/test2.json");
|
||||
expect(hash).toEqual("start");
|
||||
it('should work with an absolute room id and a hash as parameters', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier('/_/global/maps.workadventu.re/test2.json#start', '', '');
|
||||
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
||||
expect(hash).toEqual('start');
|
||||
});
|
||||
it("should work with an absolute room id, regardless of baseUrl or instance", () => {
|
||||
it('should work with an absolute room id, regardless of baseUrl or instance', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier(
|
||||
"/_/global/maps.workadventu.re/test2.json",
|
||||
"https://another.domain/_/global/test.json",
|
||||
"lol"
|
||||
'/_/global/maps.workadventu.re/test2.json',
|
||||
'https://another.domain/_/global/test.json',
|
||||
'lol'
|
||||
);
|
||||
expect(roomId).toEqual("_/global/maps.workadventu.re/test2.json");
|
||||
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
||||
expect(hash).toEqual(null);
|
||||
});
|
||||
|
||||
it("should work with a relative file link and no hash as parameters", () => {
|
||||
it('should work with a relative file link and no hash as parameters', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier(
|
||||
"./test2.json",
|
||||
"https://maps.workadventu.re/test.json",
|
||||
"global"
|
||||
'./test2.json',
|
||||
'https://maps.workadventu.re/test.json',
|
||||
'global'
|
||||
);
|
||||
expect(roomId).toEqual("_/global/maps.workadventu.re/test2.json");
|
||||
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
||||
expect(hash).toEqual(null);
|
||||
});
|
||||
it("should work with a relative file link with no dot", () => {
|
||||
it('should work with a relative file link with no dot', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier(
|
||||
"test2.json",
|
||||
"https://maps.workadventu.re/test.json",
|
||||
"global"
|
||||
'test2.json',
|
||||
'https://maps.workadventu.re/test.json',
|
||||
'global'
|
||||
);
|
||||
expect(roomId).toEqual("_/global/maps.workadventu.re/test2.json");
|
||||
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
||||
expect(hash).toEqual(null);
|
||||
});
|
||||
it("should work with a relative file link two levels deep", () => {
|
||||
it('should work with a relative file link two levels deep', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier(
|
||||
"../floor1/Floor1.json",
|
||||
"https://maps.workadventu.re/floor0/Floor0.json",
|
||||
"global"
|
||||
'../floor1/Floor1.json',
|
||||
'https://maps.workadventu.re/floor0/Floor0.json',
|
||||
'global'
|
||||
);
|
||||
expect(roomId).toEqual("_/global/maps.workadventu.re/floor1/Floor1.json");
|
||||
expect(roomId).toEqual('_/global/maps.workadventu.re/floor1/Floor1.json');
|
||||
expect(hash).toEqual(null);
|
||||
});
|
||||
it("should work with a relative file link that rewrite the map domain", () => {
|
||||
it('should work with a relative file link that rewrite the map domain', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier(
|
||||
"../../maps.workadventure.localhost/Floor1/floor1.json",
|
||||
"https://maps.workadventu.re/floor0/Floor0.json",
|
||||
"global"
|
||||
'../../maps.workadventure.localhost/Floor1/floor1.json',
|
||||
'https://maps.workadventu.re/floor0/Floor0.json',
|
||||
'global'
|
||||
);
|
||||
expect(roomId).toEqual("_/global/maps.workadventure.localhost/Floor1/floor1.json");
|
||||
expect(roomId).toEqual('_/global/maps.workadventure.localhost/Floor1/floor1.json');
|
||||
expect(hash).toEqual(null);
|
||||
});
|
||||
it("should work with a relative file link that rewrite the map instance", () => {
|
||||
it('should work with a relative file link that rewrite the map instance', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier(
|
||||
"../../../notglobal/maps.workadventu.re/Floor1/floor1.json",
|
||||
"https://maps.workadventu.re/floor0/Floor0.json",
|
||||
"global"
|
||||
'../../../notglobal/maps.workadventu.re/Floor1/floor1.json',
|
||||
'https://maps.workadventu.re/floor0/Floor0.json',
|
||||
'global'
|
||||
);
|
||||
expect(roomId).toEqual("_/notglobal/maps.workadventu.re/Floor1/floor1.json");
|
||||
expect(roomId).toEqual('_/notglobal/maps.workadventu.re/Floor1/floor1.json');
|
||||
expect(hash).toEqual(null);
|
||||
});
|
||||
it("should work with a relative file link that change the map type", () => {
|
||||
it('should work with a relative file link that change the map type', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier(
|
||||
"../../../../@/tcm/is/great",
|
||||
"https://maps.workadventu.re/floor0/Floor0.json",
|
||||
"global"
|
||||
'../../../../@/tcm/is/great',
|
||||
'https://maps.workadventu.re/floor0/Floor0.json',
|
||||
'global'
|
||||
);
|
||||
expect(roomId).toEqual("@/tcm/is/great");
|
||||
expect(roomId).toEqual('@/tcm/is/great');
|
||||
expect(hash).toEqual(null);
|
||||
});
|
||||
|
||||
it("should work with a relative file link and a hash as parameters", () => {
|
||||
it('should work with a relative file link and a hash as parameters', () => {
|
||||
const { roomId, hash } = Room.getIdFromIdentifier(
|
||||
"./test2.json#start",
|
||||
"https://maps.workadventu.re/test.json",
|
||||
"global"
|
||||
'./test2.json#start',
|
||||
'https://maps.workadventu.re/test.json',
|
||||
'global'
|
||||
);
|
||||
expect(roomId).toEqual("_/global/maps.workadventu.re/test2.json");
|
||||
expect(hash).toEqual("start");
|
||||
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
||||
expect(hash).toEqual('start');
|
||||
});
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user