From c0f6c17badc4625bfa9d906a4d9beec4c6d56a4e Mon Sep 17 00:00:00 2001 From: Brian Botha Date: Tue, 8 Mar 2022 16:36:53 +1100 Subject: [PATCH] wip - #259 fix for test --- src/client/service/vaultsPermissionGet.ts | 13 ++++++---- tests/client/rpcVaults.test.ts | 30 +++++++++-------------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/client/service/vaultsPermissionGet.ts b/src/client/service/vaultsPermissionGet.ts index 7d16daec4b..cb901e27b9 100644 --- a/src/client/service/vaultsPermissionGet.ts +++ b/src/client/service/vaultsPermissionGet.ts @@ -4,11 +4,13 @@ import type { VaultName } from '../../vaults/types'; import type * as grpc from '@grpc/grpc-js'; import type { VaultActions } from '../../vaults/types'; import type ACL from '../../acl/ACL'; -import type { NodeId } from 'nodes/types'; +import type { NodeId, NodeIdEncoded } from 'nodes/types'; +import { IdInternal } from '@matrixai/id'; import { utils as grpcUtils } from '../../grpc'; import * as nodesPB from '../../proto/js/polykey/v1/nodes/nodes_pb'; import * as vaultsPB from '../../proto/js/polykey/v1/vaults/vaults_pb'; import * as validationUtils from '../../validation/utils'; +import * as nodesUtils from '../../nodes/utils'; function vaultsPermissionGet({ authenticate, @@ -34,7 +36,7 @@ function vaultsPermissionGet({ // Getting permissions const rawPermissions = await acl.getVaultPerm(vaultId); - const permissionList: Record = {}; + const permissionList: Record = {}; // Getting the relevant information. for (const nodeId in rawPermissions) { permissionList[nodeId] = rawPermissions[nodeId].vaults[vaultId]; @@ -45,10 +47,11 @@ function vaultsPermissionGet({ const nodeMessage = new nodesPB.Node(); // Constructing the message. - for (const nodeId in permissionList) { - nodeMessage.setNodeId(nodeId); + for (const nodeIdString in permissionList) { + const nodeId = IdInternal.fromString(nodeIdString); + nodeMessage.setNodeId(nodesUtils.encodeNodeId(nodeId)); vaultPermissionsMessage.setNode(nodeMessage); - const actions = Object.keys(permissionList[nodeId]); + const actions = Object.keys(permissionList[nodeIdString]); vaultPermissionsMessage.setVaultPermissionsList(actions); await genWritable.next(vaultPermissionsMessage); } diff --git a/tests/client/rpcVaults.test.ts b/tests/client/rpcVaults.test.ts index 12368e09fd..5696df15f1 100644 --- a/tests/client/rpcVaults.test.ts +++ b/tests/client/rpcVaults.test.ts @@ -367,7 +367,6 @@ describe('Vaults client service', () => { logger: logger.getChild('Remote Keynode 2'), nodePath: path.join(dataDir, 'remoteKeynode2'), }); - const targetNodeId1 = remoteKeynode1.keyManager.getNodeId(); const targetNodeId2 = remoteKeynode2.keyManager.getNodeId(); const pkAgentNodeId = pkAgent.keyManager.getNodeId(); @@ -389,14 +388,11 @@ describe('Vaults client service', () => { port: remoteKeynode2.revProxy.getIngressPort(), }); - await remoteKeynode1.nodeManager.setNode( - pkAgent.keyManager.getNodeId(), - { - host: pkAgent.revProxy.getIngressHost(), - port: pkAgent.revProxy.getIngressPort(), - }, - ); - await remoteKeynode2.nodeManager.setNode(targetNodeId2, { + await remoteKeynode1.nodeManager.setNode(pkAgentNodeId, { + host: pkAgent.revProxy.getIngressHost(), + port: pkAgent.revProxy.getIngressPort(), + }); + await remoteKeynode2.nodeManager.setNode(pkAgentNodeId, { host: pkAgent.revProxy.getIngressHost(), port: pkAgent.revProxy.getIngressPort(), }); @@ -444,10 +440,9 @@ describe('Vaults client service', () => { ); const list: Record[] = []; for await (const permission of permissionsStream) { - expect(permission.getVaultPermissionsList()).toEqual([ - 'pull', - 'clone', - ]); + const permissionsList = permission.getVaultPermissionsList(); + expect(permissionsList).toContain('pull'); + expect(permissionsList).toContain('clone'); list.push(permission.toObject()); } expect(list).toHaveLength(2); @@ -458,13 +453,12 @@ describe('Vaults client service', () => { callCredentials, ); for await (const permission of permissionStream2) { - expect(permission.getVaultPermissionsList()).toEqual([ - 'pull', - 'clone', - ]); + const permissionsList = permission.getVaultPermissionsList(); + expect(permissionsList).toContain('pull'); + expect(permissionsList).toContain('clone'); const node = permission.getNode(); const nodeId = node?.getNodeId(); - expect(nodeId).toEqual(targetNodeId1); + expect(nodeId).toEqual(nodesUtils.encodeNodeId(targetNodeId1)); } } finally { await remoteKeynode1?.stop();