From cb67eda4fabfb4e2299540f725d835c21866d6a3 Mon Sep 17 00:00:00 2001 From: Aryan Jassal Date: Mon, 26 Aug 2024 16:08:38 +1000 Subject: [PATCH] chore: updated tests and added new kinds of errors --- src/client/errors.ts | 6 ------ src/client/handlers/VaultsSecretsList.ts | 19 +++++++++++-------- src/vaults/errors.ts | 6 ++++++ tests/client/handlers/vaults.test.ts | 16 +++++----------- 4 files changed, 22 insertions(+), 25 deletions(-) diff --git a/src/client/errors.ts b/src/client/errors.ts index edf76e6d0..804a351d9 100644 --- a/src/client/errors.ts +++ b/src/client/errors.ts @@ -18,11 +18,6 @@ class ErrorClientAuthDenied extends ErrorClient { exitCode = sysexits.NOPERM; } -class ErrorClientFSReadFailed extends ErrorClient { - static description = 'Failed to read from filesystem'; - exitCode = sysexits.IOERR; -} - class ErrorClientService extends ErrorClient {} class ErrorClientServiceRunning extends ErrorClientService { @@ -50,7 +45,6 @@ export { ErrorClientAuthMissing, ErrorClientAuthFormat, ErrorClientAuthDenied, - ErrorClientFSReadFailed, ErrorClientService, ErrorClientServiceRunning, ErrorClientServiceNotRunning, diff --git a/src/client/handlers/VaultsSecretsList.ts b/src/client/handlers/VaultsSecretsList.ts index 2eb6af16b..4a05f040f 100644 --- a/src/client/handlers/VaultsSecretsList.ts +++ b/src/client/handlers/VaultsSecretsList.ts @@ -10,7 +10,6 @@ import path from 'path'; import { ServerHandler } from '@matrixai/rpc'; import * as vaultsUtils from '../../vaults/utils'; import * as vaultsErrors from '../../vaults/errors'; -import * as clientErrors from '../errors'; class VaultsSecretsList extends ServerHandler< { @@ -42,16 +41,20 @@ class VaultsSecretsList extends ServerHandler< void, void > { - let files; + let files: Array; try { files = await fs.promises.readdir(input.secretName); } catch (e) { - // throw new clientErrors.ErrorClientFSReadFailed(e.message, { - // cause: e, - // }); - // const er = new Error('Message of error'); - // console.error('error from handler', er); - // throw er; + if (e.code === 'ENOENT') { + throw new vaultsErrors.ErrorSecretsDirectoryUndefined(e.message, { + cause: e, + }); + } + if (e.code === 'ENOTDIR') { + throw new vaultsErrors.ErrorSecretsDirectoryUndefined(e.message, { + cause: e, + }); + } throw e; } for await (const file of files) { diff --git a/src/vaults/errors.ts b/src/vaults/errors.ts index b887846c4..c9e2974cc 100644 --- a/src/vaults/errors.ts +++ b/src/vaults/errors.ts @@ -118,6 +118,11 @@ class ErrorSecretsIsDirectory extends ErrorSecrets { exitCode = sysexits.USAGE; } +class ErrorSecretsDirectoryUndefined extends ErrorSecrets { + static description = 'Directory does not exist'; + exitCode = sysexits.USAGE; +} + export { ErrorVaults, ErrorVaultManagerRunning, @@ -144,4 +149,5 @@ export { ErrorSecretsSecretUndefined, ErrorSecretsSecretDefined, ErrorSecretsIsDirectory, + ErrorSecretsDirectoryUndefined, }; diff --git a/tests/client/handlers/vaults.test.ts b/tests/client/handlers/vaults.test.ts index dd8219dc3..b847ee018 100644 --- a/tests/client/handlers/vaults.test.ts +++ b/tests/client/handlers/vaults.test.ts @@ -15,7 +15,6 @@ import Logger, { formatting, LogLevel, StreamHandler } from '@matrixai/logger'; import { DB } from '@matrixai/db'; import { RPCClient } from '@matrixai/rpc'; import { WebSocketClient } from '@matrixai/ws'; -import { ErrorEncryptedFSError } from 'encryptedfs/dist/errors'; import TaskManager from '@/tasks/TaskManager'; import ACL from '@/acl/ACL'; import KeyRing from '@/keys/KeyRing'; @@ -1591,21 +1590,16 @@ describe('vaultsSecretsNewDir and vaultsSecretsList', () => { const noFiles = await rpcClient.methods.vaultsSecretsList({ nameOrId: vaultsIdEncoded, - secretName: 'alsdfjpaosdifhpaos', + secretName: 'doesntExist', }); - console.log('before expect') - await expect((async () => { + await expect(async () => { try { - for await (const f of noFiles) { - console.log(`file: ${f}`); - }; + for await (const _ of noFiles); } catch (e) { - console.error('error from test', e); - throw e; + throw e.cause; } - })()).rejects.toThrow(Error); - console.log('after expect') + }).rejects.toThrow(vaultsErrors.ErrorSecretsDirectoryUndefined); const secrets = await rpcClient.methods.vaultsSecretsList({ nameOrId: vaultsIdEncoded,