const { test, describe } = require('node:test') const assert = require('node:assert/strict') const { RoomManager } = require('../../src/game/RoomManager') const { Room } = require('../../src/game/Room') describe('RoomManager', () => { test('getOrCreate crée une nouvelle Room si elle n\'existe pas', () => { const manager = new RoomManager() const room = manager.getOrCreate('abc') assert.ok(room instanceof Room) assert.equal(room.id, 'abc') }) test('getOrCreate retourne la même instance pour un id déjà créé', () => { const manager = new RoomManager() const room1 = manager.getOrCreate('abc') const room2 = manager.getOrCreate('abc') assert.equal(room1, room2) }) test('get retourne null pour un id inconnu', () => { const manager = new RoomManager() assert.equal(manager.get('unknown'), null) }) test('get retourne la room existante après getOrCreate', () => { const manager = new RoomManager() manager.getOrCreate('xyz') assert.ok(manager.get('xyz') instanceof Room) }) test('delete retire la room de la map', () => { const manager = new RoomManager() manager.getOrCreate('to-delete') manager.delete('to-delete') assert.equal(manager.get('to-delete'), null) }) test('delete sur un id inconnu ne lève pas d\'erreur', () => { const manager = new RoomManager() assert.doesNotThrow(() => manager.delete('never-existed')) }) })