NUEVA GESTIÓN DE USUARIOS Y PARTIDAS

This commit is contained in:
2026-05-09 16:23:55 +02:00
parent f64f36b78f
commit a5d24c2721
11 changed files with 606 additions and 81 deletions

View File

@@ -140,6 +140,44 @@ void main() {
expect(sala.usuarios['helena']?.estaDisponible, isTrue);
});
test('registra actividad y conserva usuarios seleccionados en partida al desconectar', () {
sala.registrarCliente(
const ClienteSala(
clientId: 'cliente-sofia',
endpointId: 'endpoint-2',
nombre: 'Sofía',
),
);
sala
..crearUsuario(Usuario(id: 'ana', nombre: 'Ana'))
..crearUsuario(Usuario(id: 'sofia', nombre: 'Sofía'))
..crearUsuario(Usuario(id: 'helena', nombre: 'Helena'))
..seleccionarUsuario(usuarioId: 'ana', clienteId: 'host')
..seleccionarUsuario(usuarioId: 'sofia', clienteId: 'cliente-sofia')
..seleccionarUsuario(usuarioId: 'helena', clienteId: 'cliente-sofia');
sala.registrarActividadCliente('cliente-sofia', ahoraMs: 1234);
expect(sala.clientes['cliente-sofia']?.conectado, isTrue);
expect(sala.clientes['cliente-sofia']?.ultimaActividadMs, 1234);
sala.iniciarPartida();
sala.desconectarCliente('cliente-sofia');
expect(sala.clientes['cliente-sofia']?.conectado, isFalse);
expect(sala.usuarios['sofia']?.clienteIdSeleccionado, 'cliente-sofia');
expect(sala.usuarios['helena']?.clienteIdSeleccionado, 'cliente-sofia');
expect(sala.usuariosDeClientesDesconectados.length, 2);
final reasignados = sala.reasignarUsuariosDeCliente(
clientIdOrigen: 'cliente-sofia',
clientIdDestino: 'host',
);
expect(reasignados, 2);
expect(sala.usuarios['sofia']?.clienteIdSeleccionado, 'host');
expect(sala.usuarios['helena']?.clienteIdSeleccionado, 'host');
});
test('serializa y restaura clientes y usuarios seleccionados', () {
sala
..crearUsuario(Usuario(id: 'ana', nombre: 'Ana'))