Files
initiative/apps/web/src/__tests__/test-providers.tsx
Lukas 2c643cc98b
All checks were successful
CI / check (push) Successful in 2m13s
CI / build-image (push) Has been skipped
Introduce adapter injection and migrate test suite
Replace direct adapter/persistence imports with context-based injection
(AdapterContext + useAdapters) so tests use in-memory implementations
instead of vi.mock. Migrate component tests from context mocking to
AllProviders with real hooks. Extract export/import logic from ActionBar
into useEncounterExportImport hook. Add bestiary-cache and
bestiary-index-adapter test suites. Raise adapter coverage thresholds
(68→80 lines, 56→62 branches).

77 test files, 891 tests, all passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 23:55:45 +02:00

46 lines
1.1 KiB
TypeScript

import type { ReactNode } from "react";
import type { Adapters } from "../contexts/adapter-context.js";
import { AdapterProvider } from "../contexts/adapter-context.js";
import {
BestiaryProvider,
BulkImportProvider,
EncounterProvider,
InitiativeRollsProvider,
PlayerCharactersProvider,
RulesEditionProvider,
SidePanelProvider,
ThemeProvider,
} from "../contexts/index.js";
import { createTestAdapters } from "./adapters/in-memory-adapters.js";
export function AllProviders({
adapters,
children,
}: {
adapters?: Adapters;
children: ReactNode;
}) {
const resolved = adapters ?? createTestAdapters();
return (
<AdapterProvider adapters={resolved}>
<ThemeProvider>
<RulesEditionProvider>
<EncounterProvider>
<BestiaryProvider>
<PlayerCharactersProvider>
<BulkImportProvider>
<SidePanelProvider>
<InitiativeRollsProvider>
{children}
</InitiativeRollsProvider>
</SidePanelProvider>
</BulkImportProvider>
</PlayerCharactersProvider>
</BestiaryProvider>
</EncounterProvider>
</RulesEditionProvider>
</ThemeProvider>
</AdapterProvider>
);
}