fh-wfm-result
Advanced tools
Comparing version 0.2.3-alpha.504.1 to 0.2.3-alpha.504.2
@@ -12,3 +12,2 @@ module.exports = function(grunt) { | ||
src: ['lib/**/*-spec.js'], | ||
// src: ['lib/client/result-client/sync-events-store-spec.js'], | ||
options: { | ||
@@ -15,0 +14,0 @@ reporter: 'Spec', |
@@ -19,2 +19,3 @@ var _ = require('lodash'); | ||
var resultSubscribers; | ||
var syncSubscribers; | ||
@@ -45,4 +46,6 @@ module.exports = { | ||
var syncSubscribers = new MediatorTopicUtility(mediator); | ||
if (syncSubscribers) { | ||
return syncSubscribers; | ||
} | ||
syncSubscribers = new MediatorTopicUtility(mediator); | ||
syncSubscribers.prefix(CONSTANTS.SYNC_TOPIC_PREFIX).entity(config.datasetId); | ||
@@ -62,3 +65,7 @@ | ||
} | ||
if (syncSubscribers) { | ||
syncSubscribers.unsubscribeAll(); | ||
syncSubscribers = null; | ||
} | ||
} | ||
}; | ||
}; |
var CONSTANTS = require('../../constants'); | ||
var SyncEvents = require('../result-client/sync-events-store'); | ||
var debug = require('debug')('result:mediator-subscribers:list'); | ||
var debug = require('../../utils/logger')(__filename); | ||
@@ -37,2 +37,2 @@ /** | ||
}; | ||
}; | ||
}; |
var CONSTANTS = require('../../constants'); | ||
var SyncEvents = require('../result-client/sync-events-store'); | ||
var debug = require('debug')('result:mediator-subscribers:read'); | ||
var debug = require('../../utils/logger')(__filename); | ||
@@ -38,3 +38,3 @@ /** | ||
.then(function(result) { | ||
SyncEvents.updateSyncStatus(result); | ||
result.syncStatus = SyncEvents.getSyncStatus(result.id); | ||
debug('read result ', result); | ||
@@ -47,2 +47,2 @@ self.mediator.publish(resultReadDoneTopic, result); | ||
}; | ||
}; |
var SyncEvents = require('../result-client/sync-events-store'); | ||
/** | ||
* Initialsing a subscriber for sync update applied. | ||
* Initialsing a subscriber for sync events. | ||
*/ | ||
module.exports = function syncUpdateAppliedSubscriber() { | ||
module.exports = function syncEventSubscriber() { | ||
@@ -12,5 +12,7 @@ /** | ||
* @param {object} parameters | ||
* @param {String} parameters.uid - uid of related result object | ||
* @param {object} parameters.message - sync event message | ||
* https://access.redhat.com/documentation/en-us/red_hat_mobile_application_platform_hosted/3/html/client_api/fh-sync#sync-example-1 | ||
*/ | ||
return function handleListResultsTopic(parameters) { | ||
console.log('>>>>>', parameters); | ||
return function handleSyncEventTopics(parameters) { | ||
if (parameters && parameters.uid && parameters.message) { | ||
@@ -20,2 +22,4 @@ SyncEvents.addEvent(parameters); | ||
}; | ||
}; | ||
}; | ||
@@ -151,7 +151,7 @@ var q = require('q'); | ||
function forceSync() { | ||
var donePromise = mediator.promise(resultSyncSubscribers.getTopic(CONSTANTS.TOPICS.FORCE_SYNC, CONSTANTS.DONE_PREFIX)); | ||
var donePromise = mediator.promise(resultSyncSubscribers.getTopic(CONSTANTS.SYNC_TOPICS.FORCE_SYNC, CONSTANTS.DONE_PREFIX)); | ||
var errorPromise = mediator.promise(resultSyncSubscribers.getTopic(CONSTANTS.TOPICS.FORCE_SYNC, CONSTANTS.ERROR_PREFIX)); | ||
var errorPromise = mediator.promise(resultSyncSubscribers.getTopic(CONSTANTS.SYNC_TOPICS.FORCE_SYNC, CONSTANTS.ERROR_PREFIX)); | ||
mediator.publish(resultSyncSubscribers.getTopic(CONSTANTS.TOPICS.FORCE_SYNC)); | ||
mediator.publish(resultSyncSubscribers.getTopic(CONSTANTS.SYNC_TOPICS.FORCE_SYNC)); | ||
@@ -174,3 +174,3 @@ return getTopicPromises(donePromise, errorPromise); | ||
function waitForSync() { | ||
return mediator.promise(resultSyncSubscribers.getTopic(CONSTANTS.TOPICS.SYNC_COMPLETE)); | ||
return mediator.promise(resultSyncSubscribers.getTopic(CONSTANTS.SYNC_TOPICS.SYNC_COMPLETE)); | ||
} | ||
@@ -226,2 +226,2 @@ | ||
return manager; | ||
}; | ||
}; |
var chai = require('chai'); | ||
var expect = chai.expect; | ||
var arrayOfMockResults = require('../../../test/fixtures/mockResults'); | ||
var mockSyncEvents = require('../../../test/fixtures/mockSyncEvents'); | ||
describe('Sync event store', function() { | ||
var arrayOfMockResults = [ | ||
{ | ||
id: "id_01", | ||
name: "This is a mock Work Order" | ||
}, | ||
{ | ||
id: "id_02", | ||
name: "This is a mock Work Order" | ||
}, | ||
{ | ||
id: "id_03", | ||
name: "This is a mock Work Order" | ||
} | ||
]; | ||
var mockAppliedEvent = | ||
{ | ||
code: "remote_update_applied", | ||
dataset_id: "result", | ||
message: { | ||
action: "update", | ||
cuid: "DCC7E7CCB680440AA14492A7ADBCD52E", | ||
hash: "1a69ed93636e2fd29a145a96096053176d1581eb", | ||
msg: "''", | ||
type: "applied", | ||
uid: "id_01" | ||
}, | ||
uid: "id_01" | ||
}; | ||
var mockFailedEvent = { | ||
code: "remote_update_failed", | ||
dataset_id: "result", | ||
message: { | ||
action: "update", | ||
cuid: "DCC7E7CCB680440AA14492A7ADBCD52E", | ||
hash: "1a69ed93636e2fd29a145a96096053176d1581eb", | ||
msg: "'Failed for reasons'", | ||
type: "failed", | ||
uid: "id_02" | ||
}, | ||
uid: "id_02" | ||
}; | ||
var mockAppliedEvent = mockSyncEvents.mockAppliedEvent; | ||
var mockFailedEvent = mockSyncEvents.mockFailedEvent; | ||
@@ -65,4 +27,4 @@ var SyncEvents; | ||
}); | ||
it("Should set sync status for result object", function() { | ||
SyncEvents.updateSyncStatus(arrayOfMockResults[0]); | ||
expect(arrayOfMockResults[0].syncStatus).to.exist; | ||
@@ -72,3 +34,2 @@ expect(arrayOfMockResults[0].syncStatus.entityId).to.equal(mockAppliedEvent.uid); | ||
SyncEvents.updateSyncStatus(arrayOfMockResults[2]); | ||
expect(arrayOfMockResults[2].syncStatus).to.not.exist; | ||
@@ -75,0 +36,0 @@ }); |
@@ -12,3 +12,3 @@ var data = {}; | ||
action: event.message.action, | ||
message: event.message.msg, | ||
message: event.message.msg || event.message, | ||
type: event.message.type, | ||
@@ -21,7 +21,7 @@ ts: Date.now() | ||
/** | ||
* Updates the current sync status of passed in object. | ||
* @param {object} result - result object to be updated. | ||
* Returns the current sync status for result matching passed in ID. | ||
* @param {string} id - result id we want to get sync status for. | ||
*/ | ||
function updateSyncStatus(result) { | ||
result.syncStatus = data[result.id]; | ||
function getSyncStatus(id) { | ||
return data[id]; | ||
} | ||
@@ -35,3 +35,3 @@ | ||
arrayOfResults.forEach(function(result) { | ||
updateSyncStatus(result); | ||
result.syncStatus = getSyncStatus(result.id); | ||
}); | ||
@@ -43,3 +43,3 @@ } | ||
addEvent: addEvent, | ||
updateSyncStatus: updateSyncStatus, | ||
getSyncStatus: getSyncStatus, | ||
mapResultsToEvents: mapResultsToEvents | ||
@@ -46,0 +46,0 @@ }; |
@@ -15,10 +15,11 @@ module.exports = { | ||
START: "start", | ||
STOP: "stop", | ||
FORCE_SYNC: "force_sync", | ||
SYNC_COMPLETE: "sync_complete" | ||
STOP: "stop" | ||
}, | ||
SYNC_TOPICS:{ | ||
COLLISION_DETECTED: "collision_detected", | ||
REMOTE_UPDATE_APPLIED: "remote_update_applied", | ||
REMOTE_UPDATE_FAILED: "remote_update_failed" | ||
REMOTE_UPDATE_FAILED: "remote_update_failed", | ||
SYNC_COMPLETE: "sync_complete", | ||
FORCE_SYNC: "force_sync" | ||
} | ||
}; | ||
}; |
{ | ||
"name": "fh-wfm-result", | ||
"version": "0.2.3-alpha.504.1", | ||
"version": "0.2.3-alpha.504.2", | ||
"description": "A result module for WFM, for working with the results of pushing a workorder through a workflow", | ||
@@ -5,0 +5,0 @@ "repository": { |
56005
33
1093