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'); 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, regardless of baseUrl or instance', () => { const { roomId, hash } = Room.getIdFromIdentifier( '/_/global/maps.workadventu.re/test2.json', 'https://another.domain/_/global/test.json', 'lol' ); 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', () => { const { roomId, hash } = Room.getIdFromIdentifier( './test2.json', 'https://maps.workadventu.re/test.json', 'global' ); expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json'); expect(hash).toEqual(null); }); 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' ); expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json'); expect(hash).toEqual(null); }); 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' ); 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', () => { const { roomId, hash } = Room.getIdFromIdentifier( '../../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(hash).toEqual(null); }); 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' ); 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', () => { const { roomId, hash } = Room.getIdFromIdentifier( '../../../../@/tcm/is/great', 'https://maps.workadventu.re/floor0/Floor0.json', 'global' ); expect(roomId).toEqual('@/tcm/is/great'); expect(hash).toEqual(null); }); 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' ); expect(roomId).toEqual('_/global/maps.workadventu.re/test2.json'); expect(hash).toEqual('start'); }); });