Skip to content

Commit

Permalink
google protobuf examples
Browse files Browse the repository at this point in the history
  • Loading branch information
tegefaulkes committed Oct 28, 2021
1 parent f6f4459 commit d75333b
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/client/clientPB.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ export * as permissions from '../proto/js/Permissions_pb';
export * as secrets from '../proto/js/Secrets_pb';
export * as sessions from '../proto/js/Sessions_pb';
export * as vaults from '../proto/js/Vaults_pb';
export * from '../proto/js/Client_pb';
40 changes: 40 additions & 0 deletions tests/client/clientService.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,9 @@ import { Vault, VaultName } from '@/vaults/types';
import { vaultOps } from '@/vaults';
import { makeVaultId, makeVaultIdPretty } from '@/vaults/utils';
import { utils as idUtils } from '@matrixai/id';
import { Any } from 'google-protobuf/google/protobuf/any_pb';
import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb';
import { Struct } from 'google-protobuf/google/protobuf/struct_pb';

/**
* This test file has been optimised to use only one instance of PolykeyAgent where posible.
Expand Down Expand Up @@ -2382,3 +2385,40 @@ describe('Client service', () => {
});
});
});

describe('google/protobuf message examples', () => {
test('testing Any message type', async () => {
const anyMessage = new Any();
const echoMessage = new messages.common.EchoMessage();
anyMessage.pack(echoMessage.serializeBinary(), 'common.EchoMessage');
const test2 = anyMessage.unpack(
messages.common.EchoMessage.deserializeBinary,
'common.EchoMessage',
);
expect(test2).toBeInstanceOf(messages.common.EchoMessage); // Is a EchoMessage
const test3 = anyMessage.unpack(
messages.common.StatusMessage.deserializeBinary,
'common.StatusMessage',
);
expect(test3).toBe(null); // Is null
});
test('testing TimeStamp message', async () => {
const timeStampMessage = new Timestamp();
const date = new Date(1000000);
timeStampMessage.fromDate(date);

expect(timeStampMessage.getNanos()).toEqual(0);
expect(timeStampMessage.getSeconds()).toEqual(date.getTime() / 1000);
expect(timeStampMessage.toDate()).toEqual(date);
});
test('testing structs usage', async () => {
const testObject = {
1: 1,
two: 2,
three: 'Three',
};
const structMessage = Struct.fromJavaScript(testObject);

expect(structMessage.toJavaScript()).toStrictEqual(testObject);
});
});

0 comments on commit d75333b

Please sign in to comment.