47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import {
|
|
areRoomSignalSourcesEqual,
|
|
buildRoomSignalSelector,
|
|
buildRoomSignalSource,
|
|
getSourceUrlFromSignalingUrl
|
|
} from './room-signal-source.logic';
|
|
|
|
describe('room-signal-source helpers', () => {
|
|
it('converts signaling urls back to normalized source urls', () => {
|
|
expect(getSourceUrlFromSignalingUrl('wss://signal.toju.app')).toBe('https://signal.toju.app');
|
|
expect(getSourceUrlFromSignalingUrl('ws://46.59.68.77:3001')).toBe('http://46.59.68.77:3001');
|
|
});
|
|
|
|
it('prefers the resolved endpoint when normalizing a room source', () => {
|
|
expect(buildRoomSignalSource({
|
|
sourceId: 'stale-id',
|
|
sourceName: 'Stale Source',
|
|
sourceUrl: 'https://old.example.com',
|
|
signalingUrl: 'wss://signal.toju.app'
|
|
}, {
|
|
id: 'primary-id',
|
|
name: 'Primary Signal',
|
|
url: 'https://signal.toju.app/'
|
|
})).toEqual({
|
|
sourceId: 'primary-id',
|
|
sourceName: 'Primary Signal',
|
|
sourceUrl: 'https://signal.toju.app'
|
|
});
|
|
});
|
|
|
|
it('builds selectors from signaling urls when no source url is persisted yet', () => {
|
|
expect(buildRoomSignalSelector({
|
|
signalingUrl: 'wss://signal-sweden.toju.app',
|
|
fallbackName: 'Toju Signal Sweden'
|
|
})).toEqual({
|
|
sourceUrl: 'https://signal-sweden.toju.app'
|
|
});
|
|
});
|
|
|
|
it('treats equivalent persisted and signaling-derived sources as equal', () => {
|
|
expect(areRoomSignalSourcesEqual(
|
|
{ sourceUrl: 'https://signal.toju.app/' },
|
|
{ signalingUrl: 'wss://signal.toju.app' }
|
|
)).toBe(true);
|
|
});
|
|
});
|