Files
farolero/test/servicio_nearby_user_pool_test.dart
ShanaiaBot d3fc3386f9 feat(multi-device): host puede participar como jugador
- Añadido modelo Usuario con pool de usuarios sincronizado
- El host ahora recibe palabra y rol como cualquier jugador
- UI de selección de perfil en pantallas de lobby
- Los clientes pueden ver usuarios del servidor o crear nuevos
- El juego no inicia hasta que el host selecciona perfil
2026-04-24 18:47:56 +02:00

71 lines
1.9 KiB
Dart

import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:farolero/modelos/usuario.dart';
import 'package:farolero/servicios/servicio_nearby.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
group('ServicioNearby user pool', () {
late ServicioNearby servicio;
setUp(() {
servicio = ServicioNearby();
});
tearDown(() {
servicio.dispose();
});
test('should start with empty user pool', () {
expect(servicio.usuarios, isEmpty);
});
test('should add user to pool', () {
final usuario = Usuario(id: 'user-1', nombre: 'Juan');
servicio.agregarUsuario(usuario);
expect(servicio.usuarios.length, 1);
expect(servicio.usuarios.first.nombre, 'Juan');
});
test('should remove user from pool', () {
final usuario = Usuario(id: 'user-1', nombre: 'Juan');
servicio.agregarUsuario(usuario);
expect(servicio.usuarios.length, 1);
servicio.eliminarUsuario('user-1');
expect(servicio.usuarios, isEmpty);
});
test('should synchronize users from list', () {
final usuarios = [
Usuario(id: 'user-1', nombre: 'Juan'),
Usuario(id: 'user-2', nombre: 'Maria'),
];
servicio.sincronizarUsuarios(usuarios);
expect(servicio.usuarios.length, 2);
expect(servicio.usuarios.map((u) => u.nombre).toList(), contains('Juan'));
expect(
servicio.usuarios.map((u) => u.nombre).toList(),
contains('Maria'),
);
});
test('should get usuario by id', () {
final usuario = Usuario(id: 'user-1', nombre: 'Juan');
servicio.agregarUsuario(usuario);
final found = servicio.getUsuario('user-1');
expect(found, isNotNull);
expect(found!.nombre, 'Juan');
});
test('should return null for non-existent user', () {
final found = servicio.getUsuario('non-existent');
expect(found, isNull);
});
});
}