UNPKG

@baseplate-dev/sync

Version:

Library for syncing Baseplate descriptions

52 lines 2.22 kB
import { createTestLogger } from '#src/tests/logger.test-utils.js'; import { TemplateExtractorConfigLookup, TemplateExtractorContext, TemplateExtractorFileContainer, } from '../index.js'; /** * Creates a mock TemplateExtractorContext for testing plugins */ export async function createMockContext(options = {}) { const { outputDirectory = '/test-output', packageMap = new Map(), plugins = new Map(), logger = createTestLogger(), } = options; const configLookup = new TemplateExtractorConfigLookup(packageMap); const fileContainer = new TemplateExtractorFileContainer([ ...packageMap.values(), ]); // Initialize the config lookup await configLookup.initialize(); return new TemplateExtractorContext({ configLookup, outputDirectory, plugins: plugins, fileContainer, logger, }); } /** * Helper to add extractor config to a mock context * This bypasses the normal initialization flow and directly adds to the cache */ export function addMockExtractorConfig(context, generatorName, config) { // Access the private cache directly for testing // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-assignment const configLookup = context.configLookup; // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any const cache = configLookup.extractorConfigCache; const [packageName, generatorBaseName] = generatorName.includes('#') ? generatorName.split('#') : ['test-package', generatorName]; cache.set(generatorName, { config: { name: config.name, templates: config.templates ?? {}, extractors: config.extractors ?? {}, }, generatorDirectory: config.generatorDirectory ?? `/test-generators/${generatorBaseName}`, packageName: config.packageName ?? packageName, packagePath: config.packagePath ?? `/test-packages/${packageName}`, }); } /** * Helper to create mock template path roots metadata */ export function createMockPathsMetadata(pathRoots) { return JSON.stringify(pathRoots); } //# sourceMappingURL=mock-context.js.map