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>
46 lines
1.1 KiB
TypeScript
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>
|
|
);
|
|
}
|