fix: restore build and stabilize E2E cross-signal behavior
Revert the automated member-ordering pass that broke Angular field init (TS2729) and disable that rule until a safe reorder strategy exists. Fix modal/confirm dialog i18n defaults via template fallbacks, search all active endpoints (including offline), register foreign rooms with actor owner IDs, sync profile display names from avatar summaries, and guard dm-chat when a private call converts to a group conversation. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
import { User } from '../../shared-kernel';
|
||||
import { shouldApplyAvatarTransfer, shouldRequestAvatarData } from './user-avatar.effects';
|
||||
import {
|
||||
buildProfileUpsertFromAvatarSummary,
|
||||
buildUserAvatarSummary,
|
||||
shouldApplyAvatarTransfer,
|
||||
shouldRequestAvatarData
|
||||
} from './user-avatar.effects';
|
||||
import { UsersActions } from './users.actions';
|
||||
|
||||
function createUser(overrides: Partial<User> = {}): User {
|
||||
return {
|
||||
@@ -101,6 +107,50 @@ describe('user avatar sync helpers', () => {
|
||||
})).toBe(false);
|
||||
});
|
||||
|
||||
it('includes profile text in avatar summary broadcasts', () => {
|
||||
const summary = buildUserAvatarSummary(createUser({
|
||||
displayName: 'Alice Two',
|
||||
description: 'Updated bio',
|
||||
profileUpdatedAt: 300
|
||||
}));
|
||||
|
||||
expect(summary).toMatchObject({
|
||||
type: 'user-avatar-summary',
|
||||
displayName: 'Alice Two',
|
||||
description: 'Updated bio',
|
||||
profileUpdatedAt: 300
|
||||
});
|
||||
});
|
||||
|
||||
it('builds a profile upsert action from a newer avatar summary', () => {
|
||||
const existingUser = createUser({
|
||||
displayName: 'Alice',
|
||||
profileUpdatedAt: 100
|
||||
});
|
||||
const action = buildProfileUpsertFromAvatarSummary({
|
||||
oderId: 'oder-1',
|
||||
displayName: 'Alice Two',
|
||||
description: 'Updated bio',
|
||||
profileUpdatedAt: 200,
|
||||
avatarUpdatedAt: 0
|
||||
}, existingUser);
|
||||
|
||||
expect(action).toEqual(UsersActions.upsertRemoteUserAvatar({
|
||||
user: {
|
||||
id: 'user-1',
|
||||
oderId: 'oder-1',
|
||||
username: 'alice',
|
||||
displayName: 'Alice Two',
|
||||
description: 'Updated bio',
|
||||
profileUpdatedAt: 200,
|
||||
avatarHash: undefined,
|
||||
avatarMime: undefined,
|
||||
avatarUpdatedAt: undefined,
|
||||
avatarUrl: undefined
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
it('applies profile-only transfers when the remote profile is newer', () => {
|
||||
const existingUser = createUser({
|
||||
displayName: 'Alice',
|
||||
|
||||
Reference in New Issue
Block a user