From 7794158062e5c50101d2e31d3aa30c5d9fcf4638 Mon Sep 17 00:00:00 2001 From: Pagan Gazzard Date: Mon, 22 Jun 2020 17:05:10 +0100 Subject: [PATCH] Stub the errors module without needing two export methods Change-type: patch --- lib/errors.ts | 32 +++++++++----------------------- tests/errors.spec.ts | 2 +- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/lib/errors.ts b/lib/errors.ts index fac18123..2fa56160 100644 --- a/lib/errors.ts +++ b/lib/errors.ts @@ -22,9 +22,6 @@ import { TypedError } from 'typed-error'; import { getChalk } from './utils/lazy'; import { getHelp } from './utils/messages'; -// Support stubbing of module functions. -let ErrorsModule: any; - export class ExpectedError extends TypedError {} export class NotLoggedInError extends ExpectedError {} @@ -146,9 +143,9 @@ const EXPECTED_ERROR_REGEXES = [ ]; // Support unit testing of handleError -async function getSentry() { +export const getSentry = async function () { return await import('@sentry/node'); -} +}; export async function handleError(error: Error) { // Set appropriate exitCode @@ -172,12 +169,12 @@ export async function handleError(error: Error) { // Output/report error if (isExpectedError) { - ErrorsModule.printExpectedErrorMessage(message.join('\n')); + printExpectedErrorMessage(message.join('\n')); } else { - ErrorsModule.printErrorMessage(message.join('\n')); + printErrorMessage(message.join('\n')); // Report "unexpected" errors via Sentry.io - const Sentry = await ErrorsModule.getSentry(); + const Sentry = await getSentry(); Sentry.captureException(error); try { await Sentry.close(1000); @@ -192,7 +189,7 @@ export async function handleError(error: Error) { } } -export function printErrorMessage(message: string) { +export const printErrorMessage = function (message: string) { const chalk = getChalk(); // Only first line should be red @@ -204,11 +201,11 @@ export function printErrorMessage(message: string) { }); console.error(`\n${getHelp}\n`); -} +}; -export function printExpectedErrorMessage(message: string) { +export const printExpectedErrorMessage = function (message: string) { console.error(`${message}\n`); -} +}; /** * Print a friendly error message and exit the CLI with an error code, BYPASSING @@ -229,14 +226,3 @@ export function exitWithExpectedError(message: string | Error): never { printErrorMessage(message); process.exit(1); } - -// Support stubbing of module functions. -export default ErrorsModule = { - ExpectedError, - NotLoggedInError, - getSentry, - handleError, - printErrorMessage, - printExpectedErrorMessage, - exitWithExpectedError, -}; diff --git a/tests/errors.spec.ts b/tests/errors.spec.ts index 0ae930f5..5486d106 100644 --- a/tests/errors.spec.ts +++ b/tests/errors.spec.ts @@ -23,7 +23,7 @@ import { } from 'balena-errors'; import { expect } from 'chai'; import * as sinon from 'sinon'; -import ErrorsModule from '../build/errors'; +import * as ErrorsModule from '../build/errors'; import { getHelp } from '../build/utils/messages'; function red(s: string) {