From 42096dcedf01d335dfc5b7c03efdf4e98e3269db Mon Sep 17 00:00:00 2001 From: Vincent Germain Date: Tue, 16 Aug 2022 17:33:14 +0200 Subject: [PATCH 1/2] chore(errors): handle another case for the failed precondition --- .../src/scw/errors/standard/precondition-failed-error.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/clients/src/scw/errors/standard/precondition-failed-error.ts b/packages/clients/src/scw/errors/standard/precondition-failed-error.ts index b822c9538..66adf835a 100644 --- a/packages/clients/src/scw/errors/standard/precondition-failed-error.ts +++ b/packages/clients/src/scw/errors/standard/precondition-failed-error.ts @@ -22,6 +22,9 @@ const buildMessage = (precondition: string, helpMessage: string): string => { case 'attribute_must_be_set': message = 'attribute must be set' break + case 'resource_not_usable': + message = 'resource is not usable' + break default: message = '' } From deee86e41f9a42ddf629a439e162432471ceb2e6 Mon Sep 17 00:00:00 2001 From: Vincent Germain Date: Wed, 17 Aug 2022 10:44:27 +0200 Subject: [PATCH 2/2] feat: get rid of the switch --- .../scw/errors/standard/__tests__/index.ts | 10 ++++++---- .../standard/precondition-failed-error.ts | 20 ++----------------- 2 files changed, 8 insertions(+), 22 deletions(-) diff --git a/packages/clients/src/scw/errors/standard/__tests__/index.ts b/packages/clients/src/scw/errors/standard/__tests__/index.ts index 22259658f..1fb38200d 100644 --- a/packages/clients/src/scw/errors/standard/__tests__/index.ts +++ b/packages/clients/src/scw/errors/standard/__tests__/index.ts @@ -279,7 +279,7 @@ describe('PreconditionFailedError', () => { precondition: 'unknown_precondition', type: 'precondition_failed', }).toString(), - ).toBe('PreconditionFailedError: precondition failed: unknown precondition') + ).toBe('PreconditionFailedError: precondition failed: unknown_precondition') }) it(`parses a valid input for precondition precondition_failed`, () => { @@ -291,7 +291,7 @@ describe('PreconditionFailedError', () => { type: 'precondition_failed', }).toString(), ).toBe( - 'PreconditionFailedError: precondition failed: resource is still in use, All servers must be removed from the private network before deleting it.', + 'PreconditionFailedError: precondition failed: resource_still_in_use, All servers must be removed from the private network before deleting it.', ) }) @@ -303,7 +303,7 @@ describe('PreconditionFailedError', () => { type: 'precondition_failed', }).toString(), ).toBe( - 'PreconditionFailedError: precondition failed: attribute must be set', + 'PreconditionFailedError: precondition failed: attribute_must_be_set', ) }) @@ -314,7 +314,9 @@ describe('PreconditionFailedError', () => { precondition: 'wrong_precondition_key', type: 'precondition_failed', }).toString(), - ).toBe('PreconditionFailedError: precondition failed: ') + ).toBe( + 'PreconditionFailedError: precondition failed: wrong_precondition_key', + ) }) it(`doesn't parse invalid input`, () => { diff --git a/packages/clients/src/scw/errors/standard/precondition-failed-error.ts b/packages/clients/src/scw/errors/standard/precondition-failed-error.ts index 66adf835a..cbf6e18bf 100644 --- a/packages/clients/src/scw/errors/standard/precondition-failed-error.ts +++ b/packages/clients/src/scw/errors/standard/precondition-failed-error.ts @@ -11,28 +11,12 @@ import { ScalewayError } from '../scw-error' * @internal */ const buildMessage = (precondition: string, helpMessage: string): string => { - let message: string - switch (precondition) { - case 'unknown_precondition': - message = 'unknown precondition' - break - case 'resource_still_in_use': - message = 'resource is still in use' - break - case 'attribute_must_be_set': - message = 'attribute must be set' - break - case 'resource_not_usable': - message = 'resource is not usable' - break - default: - message = '' - } + let message = `precondition failed: ${precondition}` if (typeof helpMessage === 'string' && helpMessage.length > 0) { message = message.concat(', ', helpMessage) } - return `precondition failed: ${message}` + return message } /**