草稿
[WIP][bugfix][ide-plugins] #69 修复 SDK 路径解析与终端版本不一致 #61
guomengwei创建于 7月16日
[WIP][bugfix][ide-plugins] #69 修复 SDK 路径解析与终端版本不一致 #61
草稿
共 24 个文件变更+557-117
| @@ -47,3 +47,25 @@ export async function resetWorkspaceConfig(key: string): Promise<void> { | |||
| 47 | // update(key, undefined) can throw if the contributing extension is absent in the test host | 47 | // update(key, undefined) can throw if the contributing extension is absent in the test host |
| 48 | } | 48 | } |
| 49 | } | 49 | } |
| 50 | + | ||
| 51 | +/** Temporarily removes environment and PATH fallback sources for missing-SDK tests. */ | ||
| 52 | +export async function withCjmpSdkFallbacksDisabled<T>(operation: () => Promise<T>): Promise<T> { | ||
| 53 | + const originalSdkHome = process.env.CJMP_SDK_HOME; | ||
| 54 | + const originalPath = process.env.PATH; | ||
| 55 | + delete process.env.CJMP_SDK_HOME; | ||
| 56 | + process.env.PATH = ''; | ||
| 57 | + try { | ||
| 58 | + return await operation(); | ||
| 59 | + } finally { | ||
| 60 | + if (originalSdkHome === undefined) { | ||
| 61 | + delete process.env.CJMP_SDK_HOME; | ||
| 62 | + } else { | ||
| 63 | + process.env.CJMP_SDK_HOME = originalSdkHome; | ||
| 64 | + } | ||
| 65 | + if (originalPath === undefined) { | ||
| 66 | + delete process.env.PATH; | ||
| 67 | + } else { | ||
| 68 | + process.env.PATH = originalPath; | ||
| 69 | + } | ||
| 70 | + } | ||
| 71 | +} | ||