|
2 | 2 |
|
3 | 3 | import * as assert from 'assert'; |
4 | 4 | import { getJavaConfiguration, getBuildFilePatterns, getInclusionPatternsFromNegatedExclusion, getExclusionGlob, convertToGlob } from '../../src/utils'; |
| 5 | +import { IJavaRuntime } from 'jdk-utils'; |
5 | 6 | import { WorkspaceConfiguration } from 'vscode'; |
6 | | -import { listJdks } from '../../src/jdkUtils'; |
| 7 | +import { listJdks, sortJdksBySource } from '../../src/jdkUtils'; |
7 | 8 | import { platform } from 'os'; |
8 | 9 |
|
9 | 10 | let exclusion: string[]; |
@@ -119,6 +120,28 @@ suite('Utils Test', () => { |
119 | 120 | assert.equal(result, "{**/node_modules/test/**/**/pom.xml}"); |
120 | 121 | }); |
121 | 122 |
|
| 123 | + test('sortJdksBySource() - ranks JDK_HOME before lower-priority sources', () => { |
| 124 | + const jdks: IJavaRuntime[] = [ |
| 125 | + { homedir: "java-home", isJavaHomeEnv: true }, |
| 126 | + { homedir: "path", isInPathEnv: true }, |
| 127 | + { homedir: "sdkman", isFromSDKMAN: true }, |
| 128 | + { homedir: "common" }, |
| 129 | + { homedir: "gradle", isFromGradle: true }, |
| 130 | + { homedir: "jdk-home", isJdkHomeEnv: true }, |
| 131 | + ]; |
| 132 | + |
| 133 | + sortJdksBySource(jdks); |
| 134 | + |
| 135 | + assert.deepEqual(jdks.map(jdk => jdk.homedir), [ |
| 136 | + "jdk-home", |
| 137 | + "java-home", |
| 138 | + "path", |
| 139 | + "sdkman", |
| 140 | + "common", |
| 141 | + "gradle", |
| 142 | + ]); |
| 143 | + }); |
| 144 | + |
122 | 145 | test('listJdks() - no /usr as Java home on macOS', async function () { |
123 | 146 | // Skip this test if it's not macOS. |
124 | 147 | if (platform() !== "darwin") { |
|
0 commit comments