Set storage path after the user selects language

And add tests for getFirstStoragePath method
This commit is contained in:
Elena Tanasoiu
2023-04-11 13:06:59 +00:00
parent 16a828938f
commit 62bebc02bd
2 changed files with 52 additions and 4 deletions

View File

@@ -36,9 +36,7 @@ export class SkeletonQueryWizard {
private readonly extLogger: OutputChannelLogger,
private readonly databaseManager: DatabaseManager,
private readonly token: CancellationToken,
) {
this.storagePath = this.workoutStoragePath();
}
) {}
private get folderName() {
return `codeql-custom-queries-${this.language}`;
@@ -51,6 +49,8 @@ export class SkeletonQueryWizard {
return;
}
this.storagePath = this.getFirstStoragePath();
const skeletonPackAlreadyExists = isFolderAlreadyInWorkspace(
this.folderName,
);
@@ -91,7 +91,7 @@ export class SkeletonQueryWizard {
}
}
private workoutStoragePath() {
public getFirstStoragePath() {
const workspaceFolders = workspace.workspaceFolders;
if (!workspaceFolders || workspaceFolders.length === 0) {

View File

@@ -245,4 +245,52 @@ describe("SkeletonQueryWizard", () => {
});
});
});
describe("getFirstStoragePath", () => {
it("should return the first workspace folder", async () => {
jest.spyOn(workspace, "workspaceFolders", "get").mockReturnValue([
{
name: "codeql-custom-queries-cpp",
uri: { path: "codespaces-codeql" },
},
] as WorkspaceFolder[]);
wizard = new SkeletonQueryWizard(
mockCli,
jest.fn(),
credentials,
extLogger,
mockDatabaseManager,
token,
);
expect(wizard.getFirstStoragePath()).toEqual("codespaces-codeql");
});
describe("if user is in vscode-codeql-starter workspace", () => {
it("should set storage path to parent folder", async () => {
jest.spyOn(workspace, "workspaceFolders", "get").mockReturnValue([
{
name: "codeql-custom-queries-cpp",
uri: { path: "vscode-codeql-starter/codeql-custom-queries-cpp" },
},
{
name: "codeql-custom-queries-csharp",
uri: { path: "vscode-codeql-starter/codeql-custom-queries-csharp" },
},
] as WorkspaceFolder[]);
wizard = new SkeletonQueryWizard(
mockCli,
jest.fn(),
credentials,
extLogger,
mockDatabaseManager,
token,
);
expect(wizard.getFirstStoragePath()).toEqual("vscode-codeql-starter");
});
});
});
});