diff --git a/js/modules/types/message.js b/js/modules/types/message.js index e62f05af6..46843c3a5 100644 --- a/js/modules/types/message.js +++ b/js/modules/types/message.js @@ -32,8 +32,7 @@ exports.isValid = () => true; // Schema -// Inherits existing schema from attachments: -exports.inheritSchemaVersion = (message) => { +exports.initializeSchemaVersion = (message) => { const isInitialized = SchemaVersion.isValid(message.schemaVersion) && message.schemaVersion >= 1; if (isInitialized) { @@ -72,7 +71,7 @@ exports.inheritSchemaVersion = (message) => { // type UpgradeStep = Message -> Promise Message // SchemaVersion -> UpgradeStep -> UpgradeStep -exports.withSchemaVersion = (schemaVersion, upgrade) => { +exports._withSchemaVersion = (schemaVersion, upgrade) => { if (!SchemaVersion.isValid(schemaVersion)) { throw new TypeError('`schemaVersion` is invalid'); } @@ -82,7 +81,7 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => { return async (message) => { if (!exports.isValid(message)) { - console.log('Message.withSchemaVersion: Invalid input message:', message); + console.log('Message._withSchemaVersion: Invalid input message:', message); return message; } @@ -95,7 +94,7 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => { const hasExpectedVersion = message.schemaVersion === expectedVersion; if (!hasExpectedVersion) { console.log( - 'WARNING: Message.withSchemaVersion: Unexpected version:', + 'WARNING: Message._withSchemaVersion: Unexpected version:', `Expected message to have version ${expectedVersion},`, `but got ${message.schemaVersion}.`, message @@ -108,7 +107,7 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => { upgradedMessage = await upgrade(message); } catch (error) { console.log( - 'Message.withSchemaVersion: error:', + 'Message._withSchemaVersion: error:', // TODO: Use `Errors.toLogFormat`: error && error.stack ? error.stack : error ); @@ -117,7 +116,7 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => { if (!exports.isValid(upgradedMessage)) { console.log( - 'Message.withSchemaVersion: Invalid upgraded message:', + 'Message._withSchemaVersion: Invalid upgraded message:', upgradedMessage ); return message; @@ -133,8 +132,10 @@ exports.withSchemaVersion = (schemaVersion, upgrade) => { // Public API -// mapAttachments :: (Attachment -> Promise Attachment) -> Message -> Promise Message -exports.mapAttachments = upgradeAttachment => async message => +// _mapAttachments :: (Attachment -> Promise Attachment) -> +// Message -> +// Promise Message +exports._mapAttachments = upgradeAttachment => async message => Object.assign( {}, message, @@ -143,13 +144,13 @@ exports.mapAttachments = upgradeAttachment => async message => } ); -const toVersion1 = exports.withSchemaVersion( +const toVersion1 = exports._withSchemaVersion( 1, - exports.mapAttachments(Attachment.autoOrientJPEG) + exports._mapAttachments(Attachment.autoOrientJPEG) ); -const toVersion2 = exports.withSchemaVersion( +const toVersion2 = exports._withSchemaVersion( 2, - exports.mapAttachments(Attachment.replaceUnicodeOrderOverrides) + exports._mapAttachments(Attachment.replaceUnicodeOrderOverrides) ); // UpgradeStep diff --git a/test/modules/types/message_test.js b/test/modules/types/message_test.js index 3f57d70e7..e36538f88 100644 --- a/test/modules/types/message_test.js +++ b/test/modules/types/message_test.js @@ -4,7 +4,7 @@ const Message = require('../../../js/modules/types/message'); describe('Message', () => { - describe('inheritSchemaVersion', () => { + describe('initializeSchemaVersion', () => { it('should ignore messages with previously inherited schema', () => { const input = { body: 'Imagine there is no heaven…', @@ -15,7 +15,7 @@ describe('Message', () => { schemaVersion: 2, }; - const actual = Message.inheritSchemaVersion(input); + const actual = Message.initializeSchemaVersion(input); assert.deepEqual(actual, expected); }); @@ -31,7 +31,7 @@ describe('Message', () => { schemaVersion: 0, }; - const actual = Message.inheritSchemaVersion(input); + const actual = Message.initializeSchemaVersion(input); assert.deepEqual(actual, expected); }); }); @@ -55,7 +55,7 @@ describe('Message', () => { schemaVersion: 7, }; - const actual = Message.inheritSchemaVersion(input); + const actual = Message.initializeSchemaVersion(input); assert.deepEqual(actual, expected); }); }); @@ -116,9 +116,9 @@ describe('Message', () => { const v3 = async message => Object.assign({}, message, { hasUpgradedToVersion3: true }); - const toVersion1 = Message.withSchemaVersion(1, v1); - const toVersion2 = Message.withSchemaVersion(2, v2); - const toVersion3 = Message.withSchemaVersion(3, v3); + const toVersion1 = Message._withSchemaVersion(1, v1); + const toVersion2 = Message._withSchemaVersion(2, v2); + const toVersion3 = Message._withSchemaVersion(3, v3); const upgradeSchema = async message => toVersion3(await toVersion2(await toVersion1(message))); @@ -156,9 +156,9 @@ describe('Message', () => { const v3 = async attachment => Object.assign({}, attachment, { hasUpgradedToVersion3: true }); - const toVersion1 = Message.withSchemaVersion(1, v1); - const toVersion2 = Message.withSchemaVersion(2, v2); - const toVersion3 = Message.withSchemaVersion(3, v3); + const toVersion1 = Message._withSchemaVersion(1, v1); + const toVersion2 = Message._withSchemaVersion(2, v2); + const toVersion3 = Message._withSchemaVersion(3, v3); // NOTE: We upgrade to 3 before 2, i.e. the pipeline should abort: const upgradeSchema = async attachment => @@ -170,18 +170,18 @@ describe('Message', () => { }); }); - describe('withSchemaVersion', () => { + describe('_withSchemaVersion', () => { it('should require a version number', () => { const toVersionX = () => {}; assert.throws( - () => Message.withSchemaVersion(toVersionX, 2), + () => Message._withSchemaVersion(toVersionX, 2), '`schemaVersion` is invalid' ); }); it('should require an upgrade function', () => { assert.throws( - () => Message.withSchemaVersion(2, 3), + () => Message._withSchemaVersion(2, 3), '`upgrade` must be a function' ); }); @@ -189,7 +189,7 @@ describe('Message', () => { it('should skip upgrading if message has already been upgraded', async () => { const upgrade = async message => Object.assign({}, message, { foo: true }); - const upgradeWithVersion = Message.withSchemaVersion(3, upgrade); + const upgradeWithVersion = Message._withSchemaVersion(3, upgrade); const input = { id: 'guid-guid-guid-guid', @@ -207,7 +207,7 @@ describe('Message', () => { const upgrade = async () => { throw new Error('boom!'); }; - const upgradeWithVersion = Message.withSchemaVersion(3, upgrade); + const upgradeWithVersion = Message._withSchemaVersion(3, upgrade); const input = { id: 'guid-guid-guid-guid', @@ -223,7 +223,7 @@ describe('Message', () => { it('should return original message if upgrade function returns null', async () => { const upgrade = async () => null; - const upgradeWithVersion = Message.withSchemaVersion(3, upgrade); + const upgradeWithVersion = Message._withSchemaVersion(3, upgrade); const input = { id: 'guid-guid-guid-guid',