diff --git a/src/client/handlers/VaultsSecretsList.ts b/src/client/handlers/VaultsSecretsList.ts index edf3b03e2..2eb6af16b 100644 --- a/src/client/handlers/VaultsSecretsList.ts +++ b/src/client/handlers/VaultsSecretsList.ts @@ -42,22 +42,23 @@ class VaultsSecretsList extends ServerHandler< void, void > { - let files: Array; + let files; try { - // @ts-ignore: While the types don't fully match, it matches enough for our usage. - files = await fs.promises.readdir(input.path); + files = await fs.promises.readdir(input.secretName); } catch (e) { - throw new clientErrors.ErrorClientFSReadFailed( - `No matches exist for path: ${input.secretPath}`, - { cause: e }, - ); + // throw new clientErrors.ErrorClientFSReadFailed(e.message, { + // cause: e, + // }); + // const er = new Error('Message of error'); + // console.error('error from handler', er); + // throw er; + throw e; } - files = files.map((file) => path.join(input.secretPath, file)); - for await (const file of files) { - const stat = await fs.promises.stat(file); + const filePath = path.join(input.secretName, file.toString()); + const stat = await fs.promises.stat(filePath); const type = stat.isFile() ? 'FILE' : 'DIRECTORY'; - yield { path: file, type: type }; + yield { path: filePath, type: type }; } }); }); diff --git a/src/client/types.ts b/src/client/types.ts index 5d6e6ad75..0b125b18d 100644 --- a/src/client/types.ts +++ b/src/client/types.ts @@ -301,7 +301,7 @@ type VaultsLatestVersionMessage = { // Secrets type SecretPathMessage = { - secretPath: string; + secretName: string; }; type SecretIdentifierMessage = VaultIdentifierMessage & SecretPathMessage; diff --git a/tests/client/handlers/vaults.test.ts b/tests/client/handlers/vaults.test.ts index df452131c..dd8219dc3 100644 --- a/tests/client/handlers/vaults.test.ts +++ b/tests/client/handlers/vaults.test.ts @@ -15,6 +15,7 @@ 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'; @@ -69,7 +70,6 @@ import * as nodesUtils from '@/nodes/utils'; import * as vaultsUtils from '@/vaults/utils'; import * as vaultsErrors from '@/vaults/errors'; import * as networkUtils from '@/network/utils'; -import * as clientErrors from '@/client/errors'; import * as testsUtils from '../../utils'; describe('vaultsClone', () => { @@ -1589,21 +1589,27 @@ describe('vaultsSecretsNewDir and vaultsSecretsList', () => { }); expect(addResponse.success).toBeTruthy(); - await expect(async () => { - const files = await rpcClient.methods.vaultsSecretsList({ - nameOrId: vaultsIdEncoded, - path: 'doesntExist', - }); + const noFiles = await rpcClient.methods.vaultsSecretsList({ + nameOrId: vaultsIdEncoded, + secretName: 'alsdfjpaosdifhpaos', + }); + + console.log('before expect') + await expect((async () => { try { - for await (const _ of files); // Consume values + for await (const f of noFiles) { + console.log(`file: ${f}`); + }; } catch (e) { - throw e.cause; + console.error('error from test', e); + throw e; } - }).rejects.toThrow(clientErrors.ErrorClientFSReadFailed); + })()).rejects.toThrow(Error); + console.log('after expect') const secrets = await rpcClient.methods.vaultsSecretsList({ nameOrId: vaultsIdEncoded, - path: 'secretDir', + secretName: 'secretDir', }); // Extract secret file paths