test: warning=failure guard + fix ambiguous switch selector

- setupTests.js: console.error/warn now throw. Warning = failure.
- Combat.characterization: two role=switch (player HP + NPC HP), scope
  to player-HP label. getByRole('switch') was ambiguous.

Full suite: 77/77 pass, 0 warnings.
This commit is contained in:
david raistrick
2026-07-03 16:05:04 -04:00
parent 31d19c5912
commit d1cc3a8b9a
2 changed files with 4 additions and 6 deletions
+1 -5
View File
@@ -1,5 +1,6 @@
// jest setup: RTL jest-dom + mock DB reset per test.
import '@testing-library/jest-dom';
import { resetMockDb } from './__mocks__/firebase/_mock-db';
// RTL v14: tell React this is an act environment. Without it every
// async update warns "current testing environment is not configured to
@@ -21,11 +22,6 @@ console.warn = (...args) => {
originalWarn(...args);
throw new Error(`console.warn in test: ${args.map(String).join(' ').slice(0, 500)}`);
};
import { resetMockDb } from './__mocks__/firebase/_mock-db';
// Tell React this is an act environment. Without it, every act() call
// emits 'current testing environment is not configured to support act'.
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
// polyfill crypto.randomUUID for jsdom (used by generateId in App.js).
if (!global.crypto) global.crypto = {};
+3 -1
View File
@@ -123,7 +123,9 @@ describe('Combat -> Firebase', () => {
test('toggleHidePlayerHp: updateDoc patch on activeDisplay/status', async () => {
await setupWithMonsters();
await startCombatViaUI();
const switchBtn = screen.getByRole('switch');
// Two switches now (Hide player HP + Hide NPC/monster HP). Scope to player one.
const playerHpLabel = screen.getByText('Hide player HP');
const switchBtn = playerHpLabel.parentElement.querySelector('[role="switch"]');
fireEvent.click(switchBtn);
await waitFor(() => {
const adCalls = findCallActiveDisplay('updateDoc');