2020-11-18 18:15:57 +01:00
|
|
|
import "jasmine";
|
2021-06-23 12:42:24 +02:00
|
|
|
import { Room } from "../../../src/Connexion/Room";
|
2020-11-18 18:15:57 +01:00
|
|
|
|
|
|
|
describe("Room getIdFromIdentifier()", () => {
|
|
|
|
it("should work with an absolute room id and no hash as parameter", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('/_/global/maps.workadventu.re/test2.json', '', '');
|
2020-11-18 18:15:57 +01:00
|
|
|
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
2021-06-23 12:42:24 +02:00
|
|
|
expect(hash).toEqual(null);
|
2020-11-18 18:15:57 +01:00
|
|
|
});
|
|
|
|
it("should work with an absolute room id and a hash as parameters", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('/_/global/maps.workadventu.re/test2.json#start', '', '');
|
2020-11-18 18:15:57 +01:00
|
|
|
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", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('/_/global/maps.workadventu.re/test2.json', 'https://another.domain/_/global/test.json', 'lol');
|
2020-11-18 18:15:57 +01:00
|
|
|
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
2021-06-23 12:42:24 +02:00
|
|
|
expect(hash).toEqual(null);
|
2020-11-18 18:15:57 +01:00
|
|
|
});
|
2021-06-23 12:42:24 +02:00
|
|
|
|
|
|
|
|
2020-11-18 18:15:57 +01:00
|
|
|
it("should work with a relative file link and no hash as parameters", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('./test2.json', 'https://maps.workadventu.re/test.json', 'global');
|
2020-11-18 18:15:57 +01:00
|
|
|
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
2021-06-23 12:42:24 +02:00
|
|
|
expect(hash).toEqual(null);
|
2020-11-18 18:15:57 +01:00
|
|
|
});
|
|
|
|
it("should work with a relative file link with no dot", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('test2.json', 'https://maps.workadventu.re/test.json', 'global');
|
2020-11-18 18:15:57 +01:00
|
|
|
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
2021-06-23 12:42:24 +02:00
|
|
|
expect(hash).toEqual(null);
|
2020-11-18 18:15:57 +01:00
|
|
|
});
|
|
|
|
it("should work with a relative file link two levels deep", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('../floor1/Floor1.json', 'https://maps.workadventu.re/floor0/Floor0.json', 'global');
|
2020-11-18 18:15:57 +01:00
|
|
|
expect(roomId).toEqual('_/global/maps.workadventu.re/floor1/Floor1.json');
|
2021-06-23 12:42:24 +02:00
|
|
|
expect(hash).toEqual(null);
|
2020-11-18 18:15:57 +01:00
|
|
|
});
|
2021-01-05 17:08:33 +01:00
|
|
|
it("should work with a relative file link that rewrite the map domain", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('../../maps.workadventure.localhost/Floor1/floor1.json', 'https://maps.workadventu.re/floor0/Floor0.json', 'global');
|
2021-01-05 17:08:33 +01:00
|
|
|
expect(roomId).toEqual('_/global/maps.workadventure.localhost/Floor1/floor1.json');
|
2021-06-23 12:42:24 +02:00
|
|
|
expect(hash).toEqual(null);
|
2021-01-05 17:08:33 +01:00
|
|
|
});
|
|
|
|
it("should work with a relative file link that rewrite the map instance", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('../../../notglobal/maps.workadventu.re/Floor1/floor1.json', 'https://maps.workadventu.re/floor0/Floor0.json', 'global');
|
2021-01-05 17:08:33 +01:00
|
|
|
expect(roomId).toEqual('_/notglobal/maps.workadventu.re/Floor1/floor1.json');
|
2021-06-23 12:42:24 +02:00
|
|
|
expect(hash).toEqual(null);
|
2021-01-05 17:08:33 +01:00
|
|
|
});
|
|
|
|
it("should work with a relative file link that change the map type", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('../../../../@/tcm/is/great', 'https://maps.workadventu.re/floor0/Floor0.json', 'global');
|
2021-01-05 17:08:33 +01:00
|
|
|
expect(roomId).toEqual('@/tcm/is/great');
|
2021-06-23 12:42:24 +02:00
|
|
|
expect(hash).toEqual(null);
|
2021-01-05 17:08:33 +01:00
|
|
|
});
|
2021-06-23 12:42:24 +02:00
|
|
|
|
2020-11-18 18:15:57 +01:00
|
|
|
it("should work with a relative file link and a hash as parameters", () => {
|
2021-06-23 12:42:24 +02:00
|
|
|
const { roomId, hash } = Room.getIdFromIdentifier('./test2.json#start', 'https://maps.workadventu.re/test.json', 'global');
|
2020-11-18 18:15:57 +01:00
|
|
|
expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json');
|
|
|
|
expect(hash).toEqual("start");
|
|
|
|
});
|
|
|
|
});
|