From be9559dfba8baf09b083c849926afb439a0361e8 Mon Sep 17 00:00:00 2001 From: Neeraj Mandal Date: Fri, 19 Jul 2019 14:24:10 -0700 Subject: [PATCH] New branch created for new PR --- src/plugins/login/azureLoginPlugin.test.ts | 12 +++++++++++- src/plugins/login/azureLoginPlugin.ts | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/plugins/login/azureLoginPlugin.test.ts b/src/plugins/login/azureLoginPlugin.test.ts index 18383181..eb3e6d9b 100644 --- a/src/plugins/login/azureLoginPlugin.test.ts +++ b/src/plugins/login/azureLoginPlugin.test.ts @@ -100,7 +100,7 @@ describe("Login Plugin", () => { expect(AzureLoginService.interactiveLogin).toBeCalled() expect(sls.variables["subscriptionId"]).toEqual("test-subs-id"); expect(sls.cli.log).toBeCalledWith("Using subscription ID: test-subs-id"); - }) + }); it("Uses the default subscription ID" , async () => { const sls = MockFactory.createTestServerless(); @@ -110,4 +110,14 @@ describe("Login Plugin", () => { expect(sls.variables["subscriptionId"]).toEqual("azureSubId"); expect(sls.cli.log).toBeCalledWith("Using subscription ID: azureSubId"); }); + + it("Uses the subscription ID specified in serverless yaml", async () => { + const sls = MockFactory.createTestServerless(); + const opt = MockFactory.createTestServerlessOptions(); + sls.service.provider["subscriptionId"] = "test-subs-id"; + await invokeLoginHook(false, sls, opt); + expect(AzureLoginService.interactiveLogin).toBeCalled() + expect(sls.variables["subscriptionId"]).toEqual("test-subs-id"); + expect(sls.cli.log).toBeCalledWith("Using subscription ID: test-subs-id"); + }); }); diff --git a/src/plugins/login/azureLoginPlugin.ts b/src/plugins/login/azureLoginPlugin.ts index 77311ae0..017eb7ce 100644 --- a/src/plugins/login/azureLoginPlugin.ts +++ b/src/plugins/login/azureLoginPlugin.ts @@ -33,7 +33,7 @@ export class AzureLoginPlugin extends AzureBasePlugin { this.serverless.variables["azureCredentials"] = authResult.credentials; // Use environment variable for sub ID or use the first subscription in the list (service principal can // have access to more than one subscription) - this.serverless.variables["subscriptionId"] = this.options.subscriptionId || process.env.azureSubId || authResult.subscriptions[0].id; + this.serverless.variables["subscriptionId"] = this.options.subscriptionId || process.env.azureSubId || this.serverless.service.provider["subscriptionId"] || authResult.subscriptions[0].id; this.serverless.cli.log(`Using subscription ID: ${this.serverless.variables["subscriptionId"]}`); } catch (e) {