Use language display name for downloading databases
This commit is contained in:
@@ -32,6 +32,7 @@ import { AppCommandManager } from "../common/commands";
|
||||
import { allowHttp } from "../config";
|
||||
import { showAndLogInformationMessage } from "../common/logging";
|
||||
import { AppOctokit } from "../common/octokit";
|
||||
import { getLanguageDisplayName } from "../common/query-language";
|
||||
|
||||
/**
|
||||
* Prompts a user to fetch a database from a remote location. Database is assumed to be an archive file.
|
||||
@@ -579,10 +580,23 @@ export async function promptForLanguage(
|
||||
return languages[0];
|
||||
}
|
||||
|
||||
return await window.showQuickPick(languages, {
|
||||
const items = languages
|
||||
.map((language) => ({
|
||||
label: getLanguageDisplayName(language),
|
||||
description: language,
|
||||
language,
|
||||
}))
|
||||
.sort((a, b) => a.label.localeCompare(b.label));
|
||||
|
||||
const selectedItem = await window.showQuickPick(items, {
|
||||
placeHolder: "Select the database language to download:",
|
||||
ignoreFocusOut: true,
|
||||
});
|
||||
if (!selectedItem) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return selectedItem.language;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -73,7 +73,12 @@ describe("database-fetcher", () => {
|
||||
|
||||
it("should convert a GitHub nwo to a database url", async () => {
|
||||
mockRequest.mockResolvedValue(successfullMockApiResponse);
|
||||
quickPickSpy.mockResolvedValue(mockedQuickPickItem("javascript"));
|
||||
quickPickSpy.mockResolvedValue(
|
||||
mockedQuickPickItem({
|
||||
label: "JavaScript",
|
||||
language: "javascript",
|
||||
}),
|
||||
);
|
||||
const githubRepo = "github/codeql";
|
||||
const result = await convertGithubNwoToDatabaseUrl(
|
||||
githubRepo,
|
||||
@@ -94,7 +99,23 @@ describe("database-fetcher", () => {
|
||||
expect(owner).toBe("github");
|
||||
expect(quickPickSpy).toHaveBeenNthCalledWith(
|
||||
1,
|
||||
["csharp", "javascript", "ql"],
|
||||
[
|
||||
expect.objectContaining({
|
||||
label: "C#",
|
||||
description: "csharp",
|
||||
language: "csharp",
|
||||
}),
|
||||
expect.objectContaining({
|
||||
label: "JavaScript",
|
||||
description: "javascript",
|
||||
language: "javascript",
|
||||
}),
|
||||
expect.objectContaining({
|
||||
label: "ql",
|
||||
description: "ql",
|
||||
language: "ql",
|
||||
}),
|
||||
],
|
||||
expect.anything(),
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user