From 99233ffe95ea894a605f8ed1921430f7d2640c73 Mon Sep 17 00:00:00 2001 From: Denis Golovin Date: Sun, 21 Jul 2019 22:27:01 -0700 Subject: [PATCH] Fix test errors --- src/extension.ts | 2 +- src/k8s/build.ts | 8 ++++---- test/extension.test.ts | 1 - test/k8s/build.test.ts | 37 +++++++++++++++++++++++++++++-------- 4 files changed, 34 insertions(+), 14 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index 2bd29a752..fca36f2d7 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -25,7 +25,7 @@ import open = require("open"); import { Build } from './k8s/build'; let clusterExplorer: k8s.ClusterExplorerV1 | undefined = undefined; -import { Odo, OdoImpl } from './odo'; +import { OdoImpl } from './odo'; export let contextGlobalState: vscode.ExtensionContext; diff --git a/src/k8s/build.ts b/src/k8s/build.ts index 1ee07e1cd..da4140268 100644 --- a/src/k8s/build.ts +++ b/src/k8s/build.ts @@ -88,7 +88,6 @@ export class Build { protected static readonly odo: Odo = OdoImpl.Instance; static async getQuickPicks(cmd: string, errorMessage: string): Promise { - const names: string[] = []; const result = await Build.odo.execute(cmd); const json: JSON = JSON.parse(result.stdout); if (json['items'].length === 0) { @@ -113,7 +112,7 @@ export class Build { } static async selectBuild(context: any, text: string): Promise { - let build: string; + let build: string = null; if (context) { build = context.impl.name; } else { @@ -133,7 +132,7 @@ export class Build { static async startBuild(context: { id: any; }): Promise { let buildName: string = context ? context.id : undefined; - let result: Promise; + let result: Promise = null; if (!buildName) buildName = await Build.selectBuldConfig("Select a BuildConfig to start a build"); if (buildName) { result = Progress.execFunctionWithProgress(`Starting build`, () => Build.odo.execute(Command.startBuild(buildName))) @@ -143,11 +142,12 @@ export class Build { return result; } - static async showLog(context: { impl: any; }): Promise { + static async showLog(context: { impl: any; }): Promise { const build = await Build.selectBuild(context, "Select a build too see the logs"); if (build) { Build.odo.executeInTerminal(Command.showLog(build, '-build')); } + return build; } static async rebuild(context: { id?: string; impl: any; }): Promise { diff --git a/test/extension.test.ts b/test/extension.test.ts index 38921b6ec..f8ecc3106 100644 --- a/test/extension.test.ts +++ b/test/extension.test.ts @@ -25,7 +25,6 @@ import packagejson = require('../package.json'); import { OpenShiftExplorer } from '../src/explorer'; import path = require('path'); import { OdoImpl, ContextType, OpenShiftObjectImpl } from '../src/odo'; -import { TestItem } from './openshift/testOSItem'; const expect = chai.expect; chai.use(sinonChai); diff --git a/test/k8s/build.test.ts b/test/k8s/build.test.ts index cb8096dc0..28c6aedac 100644 --- a/test/k8s/build.test.ts +++ b/test/k8s/build.test.ts @@ -82,6 +82,16 @@ suite('K8s/build', () => { resourceId: "bc/nodejs-comp-nodejs-app" }; + const noBcData = `{ + "apiVersion": "v1", + "items": [], + "kind": "List", + "metadata": { + "resourceVersion": "", + "selfLink": "" + } + }`; + const mockData = `{ "apiVersion": "v1", "items": [ @@ -115,7 +125,7 @@ suite('K8s/build', () => { setup(() => { execStub.resolves({ error: undefined, stdout: mockData, stderr: '' }); quickPickStub = sandbox.stub(vscode.window, 'showQuickPick'); - quickPickStub.resolves("nodejs-comp-nodejs-app"); + quickPickStub.resolves({label: "nodejs-comp-nodejs-app"}); }); test('works from context menu', async () => { @@ -132,7 +142,7 @@ suite('K8s/build', () => { expect(execStub).calledWith(Command.startBuild(context.id)); }); - test('returns null when no build selected', async () => { + test('returns null when no BuildConfig selected', async () => { quickPickStub.resolves(); const result = await Build.startBuild(null); expect(result).null; @@ -147,15 +157,26 @@ suite('K8s/build', () => { expect(err).equals(`Failed to start build with error '${errorMessage}'`); } }); + + test('throws error if there is no BuildConfigs to select', async () => { + execStub.resolves({ error: undefined, stdout: noBcData, stderr: '' }); + try { + await Build.startBuild(null); + } catch (err) { + expect(err).equals(`Failed to start build with error '${errorMessage}'`); + } + }); }); suite('Show Log', () => { setup(() => { execStub.resolves({ error: null, stdout: buildData, stderr: '' }); - sandbox.stub(Build, 'getBuildNames').resolves("nodejs-copm-nodejs-comp"); + const buidConfig = {label: "nodejs-copm-nodejs-comp"}; + sandbox.stub(Build, 'getBuildConfigNames').resolves([buidConfig]); quickPickStub = sandbox.stub(vscode.window, 'showQuickPick'); - quickPickStub.onFirstCall().resolves("nodejs-copm-nodejs-comp-8"); + quickPickStub.onFirstCall().resolves(buidConfig); + quickPickStub.onSecondCall().resolves({label: "nodejs-copm-nodejs-comp-8"}); }); test('works from context menu', async () => { @@ -169,7 +190,7 @@ suite('K8s/build', () => { }); test('returns null when no build selected', async () => { - quickPickStub.onFirstCall().resolves(); + quickPickStub.onSecondCall().resolves(); const result = await Build.showLog(null); expect(result).null; }); @@ -180,7 +201,7 @@ suite('K8s/build', () => { setup(() => { sandbox.stub(Build, 'getBuildNames').resolves("nodejs-copm-nodejs-comp"); quickPickStub = sandbox.stub(vscode.window, 'showQuickPick'); - quickPickStub.resolves("nodejs-copm-nodejs-comp-8"); + quickPickStub.resolves({label: "nodejs-copm-nodejs-comp-8"}); }); @@ -212,7 +233,7 @@ suite('K8s/build', () => { execStub.resolves({ error: null, stdout: buildData, stderr: '' }); sandbox.stub(Build, 'getBuildNames').resolves("nodejs-copm-nodejs-comp"); quickPickStub = sandbox.stub(vscode.window, 'showQuickPick'); - quickPickStub.resolves("nodejs-copm-nodejs-comp-8"); + quickPickStub.resolves({label: "nodejs-copm-nodejs-comp-8"}); }); test('works from context menu', async () => { @@ -237,7 +258,7 @@ suite('K8s/build', () => { execStub.resolves({ error: null, stdout: buildData, stderr: '' }); sandbox.stub(Build, 'getBuildNames').resolves("nodejs-copm-nodejs-comp"); quickPickStub = sandbox.stub(vscode.window, 'showQuickPick'); - quickPickStub.resolves("nodejs-copm-nodejs-comp-8"); + quickPickStub.resolves({label: "nodejs-copm-nodejs-comp-8"}); }); test('works from context menu', async () => {