diff --git a/src/plugins/login/azureLoginPlugin.test.ts b/src/plugins/login/azureLoginPlugin.test.ts index 6deb1aa2..89c8a132 100644 --- a/src/plugins/login/azureLoginPlugin.test.ts +++ b/src/plugins/login/azureLoginPlugin.test.ts @@ -83,19 +83,17 @@ describe("Login Plugin", () => { expect(sls.variables["subscriptionId"]).toEqual("azureSubId"); }); - it("logs an error from authentication and exits process", async () => { + it("logs an error from authentication and crashes with it", async () => { unsetServicePrincipalEnvVariables(); - process.exit = jest.fn() as any; - const errorMessage = "This is my error message"; + const error = new Error("This is my error message") AzureLoginService.interactiveLogin = jest.fn(() => { - throw new Error(errorMessage); + throw error; }); const sls = MockFactory.createTestServerless(); - await invokeLoginHook(false, sls); + await expect(invokeLoginHook(false, sls)).rejects.toThrow(error); expect(AzureLoginService.interactiveLogin).toBeCalled() expect(AzureLoginService.servicePrincipalLogin).not.toBeCalled(); - expect(sls.cli.log).lastCalledWith(`Error: ${errorMessage}`); - expect(process.exit).toBeCalledWith(0); + expect(sls.cli.log).lastCalledWith("Error logging into azure"); }); it("Uses the user specified subscription ID", async () => { diff --git a/src/plugins/login/azureLoginPlugin.ts b/src/plugins/login/azureLoginPlugin.ts index 14e12a1e..5091624d 100644 --- a/src/plugins/login/azureLoginPlugin.ts +++ b/src/plugins/login/azureLoginPlugin.ts @@ -33,8 +33,7 @@ export class AzureLoginPlugin extends AzureBasePlugin { } catch (e) { this.log("Error logging into azure"); - this.log(`${e}`); - process.exit(0); + throw e; // Let Serverless Framework communicate the error } } }