From d9da9501b375cdb615c8c420ddacfeb70950e1a9 Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Wed, 7 Oct 2020 20:37:29 +0100 Subject: [PATCH 1/2] Fix project order --- extension/src/tasks/taskUtil.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extension/src/tasks/taskUtil.ts b/extension/src/tasks/taskUtil.ts index 7d040411a..6ce06643d 100644 --- a/extension/src/tasks/taskUtil.ts +++ b/extension/src/tasks/taskUtil.ts @@ -249,7 +249,7 @@ function getVSCodeTasksFromGradleProject( let projects: Array = [gradleProject]; const vsCodeTasks: vscode.Task[] = []; while (projects.length) { - const project = projects.pop(); + const project = projects.shift(); const gradleTasks: GradleTask[] | void = project!.getTasksList(); for (const gradleTask of gradleTasks) { vsCodeTasks.push( From 9593cc4acdd420708523c345829acb1a8e85cd4f Mon Sep 17 00:00:00 2001 From: Richard Willis Date: Wed, 7 Oct 2020 20:46:11 +0100 Subject: [PATCH 2/2] Add tests for project order --- extension/src/tasks/taskUtil.ts | 2 +- extension/src/test/unit/taskUtil.test.ts | 35 +++++++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/extension/src/tasks/taskUtil.ts b/extension/src/tasks/taskUtil.ts index 6ce06643d..5c370588a 100644 --- a/extension/src/tasks/taskUtil.ts +++ b/extension/src/tasks/taskUtil.ts @@ -240,7 +240,7 @@ function createVSCodeTaskFromGradleTask( ); } -function getVSCodeTasksFromGradleProject( +export function getVSCodeTasksFromGradleProject( taskTerminalsStore: TaskTerminalsStore, rootProject: RootProject, gradleProject: GradleProject, diff --git a/extension/src/test/unit/taskUtil.test.ts b/extension/src/test/unit/taskUtil.test.ts index cd8a54987..cf3ab8209 100644 --- a/extension/src/test/unit/taskUtil.test.ts +++ b/extension/src/test/unit/taskUtil.test.ts @@ -7,7 +7,10 @@ import * as vscode from 'vscode'; import { GradleBuild, GradleProject, GradleTask } from '../../proto/gradle_pb'; import { RootProject } from '../../rootProject/RootProject'; import { TaskTerminalsStore } from '../../stores'; -import { loadTasksForProjectRoots } from '../../tasks/taskUtil'; +import { + getVSCodeTasksFromGradleProject, + loadTasksForProjectRoots, +} from '../../tasks/taskUtil'; import { buildMockClient, getSuiteName } from '../testUtil'; const mockWorkspaceFolder: vscode.WorkspaceFolder = { @@ -131,4 +134,34 @@ describe(getSuiteName('taskUtil'), () => { ); assert.strictEqual(tasks.length, 255101); }); + + it('should not change the order of tasks when building vscode tasks from gradle tasks', () => { + const subProject1 = new GradleProject(); + const task1 = new GradleTask(); + task1.setBuildfile('A'); + subProject1.setTasksList([task1]); + + const subProject2 = new GradleProject(); + const task2 = new GradleTask(); + task2.setBuildfile('B'); + subProject2.setTasksList([task2]); + + const subProject3 = new GradleProject(); + const task3 = new GradleTask(); + task3.setBuildfile('C'); + subProject3.setTasksList([task3]); + + const gradleProject = new GradleProject(); + gradleProject.setProjectsList([subProject1, subProject2, subProject3]); + const tasks = getVSCodeTasksFromGradleProject( + mockTaskTerminalsStore, + mockRootProject, + gradleProject, + mockClient + ); + + assert.strictEqual(tasks[0].definition.buildFile, 'A'); + assert.strictEqual(tasks[1].definition.buildFile, 'B'); + assert.strictEqual(tasks[2].definition.buildFile, 'C'); + }); });