From 09933f3a38c60f8f480b647b51daaca1ff121a5f Mon Sep 17 00:00:00 2001 From: Gergo Magyar Date: Fri, 25 Sep 2026 19:05:26 +0000 Subject: [PATCH] test(ingestion): probe the Dart parser before enabling its providers suite (#3354) isLanguageAvailable only proves the module loaded; tree-sitter-dart can still fail on setLanguage. Probe loadParser/loadLanguage and skip on failure, the same guard dart.test.ts uses. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../callable-alternatives-providers.test.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/gitnexus/test/integration/resolvers/callable-alternatives-providers.test.ts b/gitnexus/test/integration/resolvers/callable-alternatives-providers.test.ts index 280a53a22..cfc3e473c 100644 --- a/gitnexus/test/integration/resolvers/callable-alternatives-providers.test.ts +++ b/gitnexus/test/integration/resolvers/callable-alternatives-providers.test.ts @@ -19,14 +19,28 @@ import { runPipelineFromRepo, type PipelineResult, } from './helpers.js'; -import { isLanguageAvailable } from '../../../src/core/tree-sitter/parser-loader.js'; +import { + isLanguageAvailable, + loadParser, + loadLanguage, +} from '../../../src/core/tree-sitter/parser-loader.js'; import { SupportedLanguages } from '../../../src/config/supported-languages.js'; // Kotlin, Swift and Dart grammars are optional installs; skip their suites // when the grammar did not load, as the per-language resolver suites do. const kotlinAvailable = isLanguageAvailable(SupportedLanguages.Kotlin); const swiftAvailable = isLanguageAvailable(SupportedLanguages.Swift); -const dartAvailable = isLanguageAvailable(SupportedLanguages.Dart); +// A loaded tree-sitter-dart module can still fail on setLanguage, so probe the +// parser too (same guard as dart.test.ts). +let dartAvailable = isLanguageAvailable(SupportedLanguages.Dart); +if (dartAvailable) { + try { + await loadParser(); + await loadLanguage(SupportedLanguages.Dart); + } catch { + dartAvailable = false; + } +} const runFixture = (name: string): Promise => runPipelineFromRepo(path.join(FIXTURES, name), () => {});