test: fix most e2e tests
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
import { SignalingTransportHandler, ResolvedSignalCredential } from './signaling-transport-handler';
|
||||
import { SIGNALING_TYPE_IDENTIFY } from '../realtime.constants';
|
||||
|
||||
describe('SignalingTransportHandler identify', () => {
|
||||
const SIGNAL_URL = 'ws://signal.example.com:3001';
|
||||
|
||||
function createHandler(resolved: ResolvedSignalCredential | null) {
|
||||
const sentMessages: Record<string, unknown>[] = [];
|
||||
const manager = {
|
||||
isSocketOpen: () => true,
|
||||
sendRawMessage: (message: Record<string, unknown>) => {
|
||||
sentMessages.push(message);
|
||||
}
|
||||
};
|
||||
const coordinator = {
|
||||
getConnectedSignalingManagers: () => [{ signalUrl: SIGNAL_URL, manager }],
|
||||
getSignalingManager: (signalUrl: string) => (signalUrl === SIGNAL_URL ? manager : null)
|
||||
} as unknown as ConstructorParameters<typeof SignalingTransportHandler>[0]['signalingCoordinator'];
|
||||
const handler = new SignalingTransportHandler<unknown>({
|
||||
signalingCoordinator: coordinator,
|
||||
logger: { warn: () => undefined, error: () => undefined, info: () => undefined } as never,
|
||||
getLocalPeerId: () => 'local-peer',
|
||||
resolveCredential: () => resolved,
|
||||
getHomeCredential: () => resolved,
|
||||
getClientInstanceId: () => 'device-a'
|
||||
});
|
||||
|
||||
return { handler, sentMessages };
|
||||
}
|
||||
|
||||
it('uses the freshly supplied display name over the stale stored credential', () => {
|
||||
const { handler, sentMessages } = createHandler({
|
||||
userId: 'user-1',
|
||||
token: 'token-1',
|
||||
displayName: 'Alice'
|
||||
});
|
||||
|
||||
handler.identify('user-1', 'Alice One', undefined, {
|
||||
description: 'New bio',
|
||||
profileUpdatedAt: 123456
|
||||
});
|
||||
|
||||
const identifyMessages = sentMessages.filter((entry) => entry['type'] === SIGNALING_TYPE_IDENTIFY);
|
||||
|
||||
expect(identifyMessages.length).toBeGreaterThan(0);
|
||||
|
||||
for (const message of identifyMessages) {
|
||||
expect(message['displayName']).toBe('Alice One');
|
||||
expect(message['profileUpdatedAt']).toBe(123456);
|
||||
expect(message['description']).toBe('New bio');
|
||||
}
|
||||
});
|
||||
|
||||
it('falls back to the stored credential display name when none is supplied', () => {
|
||||
const { handler, sentMessages } = createHandler({
|
||||
userId: 'user-1',
|
||||
token: 'token-1',
|
||||
displayName: 'Alice'
|
||||
});
|
||||
|
||||
handler.identify('user-1', ' ', undefined);
|
||||
|
||||
const identifyMessages = sentMessages.filter((entry) => entry['type'] === SIGNALING_TYPE_IDENTIFY);
|
||||
|
||||
expect(identifyMessages.length).toBeGreaterThan(0);
|
||||
|
||||
for (const message of identifyMessages) {
|
||||
expect(message['displayName']).toBe('Alice');
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -226,7 +226,7 @@ export class SignalingTransportHandler<TMessage> {
|
||||
signalUrl?: string,
|
||||
profile?: Pick<IdentifyCredentials, 'description' | 'profileUpdatedAt' | 'homeSignalServerUrl'>
|
||||
): void {
|
||||
const normalizedDisplayName = displayName.trim() || DEFAULT_DISPLAY_NAME;
|
||||
const trimmedDisplayName = displayName.trim();
|
||||
const normalizedDescription = typeof profile?.description === 'string'
|
||||
? (profile.description.trim() || undefined)
|
||||
: undefined;
|
||||
@@ -243,7 +243,7 @@ export class SignalingTransportHandler<TMessage> {
|
||||
if (signalUrl) {
|
||||
this.identifyOnSignalUrl(signalUrl, {
|
||||
fallbackOderId: oderId,
|
||||
displayName: normalizedDisplayName,
|
||||
displayName: trimmedDisplayName,
|
||||
description: normalizedDescription,
|
||||
profileUpdatedAt: normalizedProfileUpdatedAt,
|
||||
homeSignalServerUrl: normalizedHomeSignalServerUrl,
|
||||
@@ -262,7 +262,7 @@ export class SignalingTransportHandler<TMessage> {
|
||||
for (const { signalUrl: managerSignalUrl, manager } of connectedManagers) {
|
||||
const credentials = this.identifyOnSignalUrl(managerSignalUrl, {
|
||||
fallbackOderId: oderId,
|
||||
displayName: normalizedDisplayName,
|
||||
displayName: trimmedDisplayName,
|
||||
description: normalizedDescription,
|
||||
profileUpdatedAt: normalizedProfileUpdatedAt,
|
||||
homeSignalServerUrl: normalizedHomeSignalServerUrl,
|
||||
@@ -312,7 +312,7 @@ export class SignalingTransportHandler<TMessage> {
|
||||
const credentials: IdentifyCredentials = {
|
||||
oderId: resolved.userId,
|
||||
token: resolved.token,
|
||||
displayName: resolved.displayName || params.displayName,
|
||||
displayName: params.displayName || resolved.displayName || DEFAULT_DISPLAY_NAME,
|
||||
description: params.description,
|
||||
profileUpdatedAt: params.profileUpdatedAt,
|
||||
homeSignalServerUrl: params.homeSignalServerUrl ?? resolved.homeSignalServerUrl,
|
||||
|
||||
Reference in New Issue
Block a user