fix: endurece GroupSyncService y activa métricas en tests web-login

Co-authored-by: aider (openrouter/openai/gpt-5) <aider@aider.chat>
webui
brobert 3 weeks ago
parent 6082574a52
commit bd0fda2248

@ -427,7 +427,7 @@ export class GroupSyncService {
// Aprender mapping alias→número si vienen ambos // Aprender mapping alias→número si vienen ambos
if (rawId && rawJid) { if (rawId && rawJid) {
IdentityService.upsertAlias(String(rawId), String(rawJid), 'group.participants'); try { IdentityService.upsertAlias(String(rawId), String(rawJid), 'group.participants'); } catch {}
} }
if (typeof p.isAdmin === 'boolean') { if (typeof p.isAdmin === 'boolean') {
@ -443,10 +443,13 @@ export class GroupSyncService {
if (!norm) continue; if (!norm) continue;
result.push({ userId: norm, isAdmin }); result.push({ userId: norm, isAdmin });
} }
const resolved = (() => { let resolved: Array<{ userId: string; isAdmin: boolean }>;
try {
const map = IdentityService.resolveMany(result.map(r => r.userId)); const map = IdentityService.resolveMany(result.map(r => r.userId));
return result.map(r => ({ userId: map.get(r.userId) || r.userId, isAdmin: r.isAdmin })); resolved = result.map(r => ({ userId: map.get(r.userId) || r.userId, isAdmin: r.isAdmin }));
})(); } catch {
resolved = result;
}
return resolved; return resolved;
} }
// Si no viene en el formato esperado, caemos al plan B // Si no viene en el formato esperado, caemos al plan B
@ -512,7 +515,7 @@ export class GroupSyncService {
// Aprender mapping alias→número si vienen ambos // Aprender mapping alias→número si vienen ambos
if (rawId && rawJid) { if (rawId && rawJid) {
IdentityService.upsertAlias(String(rawId), String(rawJid), 'group.participants'); try { IdentityService.upsertAlias(String(rawId), String(rawJid), 'group.participants'); } catch {}
} }
if (typeof p.isAdmin === 'boolean') { if (typeof p.isAdmin === 'boolean') {
@ -529,10 +532,13 @@ export class GroupSyncService {
if (!norm) continue; if (!norm) continue;
result.push({ userId: norm, isAdmin }); result.push({ userId: norm, isAdmin });
} }
const resolved = (() => { let resolved: Array<{ userId: string; isAdmin: boolean }>;
try {
const map = IdentityService.resolveMany(result.map(r => r.userId)); const map = IdentityService.resolveMany(result.map(r => r.userId));
return result.map(r => ({ userId: map.get(r.userId) || r.userId, isAdmin: r.isAdmin })); resolved = result.map(r => ({ userId: map.get(r.userId) || r.userId, isAdmin: r.isAdmin }));
})(); } catch {
resolved = result;
}
return resolved; return resolved;
} }

@ -14,7 +14,8 @@ describe('CommandService - /t web (emisión de token de login)', () => {
...envBackup, ...envBackup,
NODE_ENV: 'test', NODE_ENV: 'test',
TZ: 'Europe/Madrid', TZ: 'Europe/Madrid',
WEB_BASE_URL: 'https://app.example.test' WEB_BASE_URL: 'https://app.example.test',
METRICS_ENABLED: 'true'
}; };
Metrics.reset?.(); Metrics.reset?.();
memdb = new Database(':memory:'); memdb = new Database(':memory:');

Loading…
Cancel
Save