@river-build/sdk
Version:
For more details, visit the following resources:
54 lines • 2.71 kB
JavaScript
/**
* @group main
*/
import { EncryptedDataSchema } from '@river-build/proto';
import { MemberMetadata_DisplayNames } from '../../memberMetadata_DisplayNames';
import { create } from '@bufbuild/protobuf';
describe('memberMetadata_DisplayNamesTests', () => {
const streamId = 'streamid1';
let displayNames;
beforeEach(() => {
displayNames = new MemberMetadata_DisplayNames(streamId);
});
test('clientCanSetDisplayName', async () => {
const displayName = 'Bob Display Name';
const encryptedData = create(EncryptedDataSchema, {
ciphertext: displayName,
});
displayNames.addEncryptedData('eventid-1', encryptedData, 'userid-1', true, undefined, undefined, undefined);
// the plaintext map is empty until we've decrypted the display name
expect(displayNames.plaintextDisplayNames).toEqual(new Map([]));
displayNames.onDecryptedContent('eventid-1', displayName);
expect(displayNames.plaintextDisplayNames).toEqual(new Map([['userid-1', displayName]]));
});
test('clientCanUseSameDisplayName', async () => {
const displayName = 'Bob Display Name';
const encryptedData = create(EncryptedDataSchema, {
ciphertext: displayName,
});
displayNames.addEncryptedData('eventid-1', encryptedData, 'userid-1', true, undefined, undefined, undefined);
displayNames.addEncryptedData('eventid-2', encryptedData, 'userid-2', true, undefined, undefined, undefined);
expect(displayNames.plaintextDisplayNames).toEqual(new Map([]));
displayNames.onDecryptedContent('eventid-1', displayName);
displayNames.onDecryptedContent('eventid-2', displayName);
// the plaintext map now contains two entries, one for each user
// using the same display name
expect(displayNames.plaintextDisplayNames).toEqual(new Map([
['userid-1', displayName],
['userid-2', displayName],
]));
});
test('encryptedFlagsAreReturnedWhenEncrypted', async () => {
const displayName = 'bob-username1';
const encryptedData = create(EncryptedDataSchema, {
ciphertext: displayName,
});
displayNames.addEncryptedData('eventid-1', encryptedData, 'userid-1', true, undefined, undefined, undefined);
const info = displayNames.info('userid-1');
expect(info.displayNameEncrypted).toEqual(true);
displayNames.onDecryptedContent('eventid-1', displayName);
const infoAfterDecrypt = displayNames.info('userid-1');
expect(infoAfterDecrypt.displayNameEncrypted).toEqual(false);
});
});
//# sourceMappingURL=memberMetadata_DisplayNames.test.js.map