@@ -103,6 +103,13 @@ export type TestBuilderOptions = {
103103 * preservePluginConfiguration can be used to disable this behavior for other test cases.
104104 */
105105 preservePluginConfiguration ?: boolean ;
106+
107+ /**
108+ * Skip creating default plugin configuration files (pgm_conf.json, proc_grps.json).
109+ * Used to test scenarios where no configuration exists.
110+ * Corresponds to the fourslash directive: // @noDefaultConfig
111+ */
112+ noDefaultConfig ?: boolean ;
106113} ;
107114
108115type LinkingRequest = {
@@ -291,7 +298,7 @@ export class TestBuilder extends AbstractTestBuilder {
291298 /**
292299 * Configures the plugin configuration provider based on the test files.
293300 * If a file for either the program or process group configuration is found, use it.
294- * If not, provide a default configuration.
301+ * If not, provide a default configuration (unless noDefaultConfig is set) .
295302 * Ensures we have a proper config after writing all files to the fs & before parsing,
296303 * so that we can build $computedLibs correctly
297304 */
@@ -313,6 +320,12 @@ export class TestBuilder extends AbstractTestBuilder {
313320 ? UriUtils . dirname ( UriUtils . dirname ( UriUtils . toUri ( pgmConfUri ) ) )
314321 : config . getWorkspacePath ( ) ;
315322
323+ // Skip default config creation if noDefaultConfig is set
324+ if ( this . options . noDefaultConfig ) {
325+ await defaultTestWorkspace ( ) . config . init ( workspaceUri ) ;
326+ return ;
327+ }
328+
316329 if ( ! pgmConfUri ) {
317330 await defaultTestWorkspace ( ) . config . writeProgramConfigFile (
318331 PluginConfiguration . DEFAULT_PROGRAM_FILE_CONTENT ,
0 commit comments