openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
95 lines (81 loc) • 3.94 kB
text/coffeescript
should = require "should"
request = require "supertest"
rerunUpdateTransactionTask = require '../../lib/middleware/rerunUpdateTransactionTask'
Transaction = require("../../lib/model/transactions").Transaction
Task = require("../../lib/model/tasks").Task
ObjectId = require('mongoose').Types.ObjectId;
ctx =
parentID: "53e096fea0af3105689acd6a"
transactionId: "53e34b955d0180cf6eef2d03"
taskID: "53e34b915d0180cf6eef2d01"
transactionStatus: "Successfull"
transaction1 = new Transaction
_id: "53e096fea0af3105689acd6a"
channelID: "53bbe25485e66d8e5daad4a2"
clientID: "42bbe25485e77d8e5daad4b4"
request: {
path: "/sample/api",
headers: { authorization: "Basic dGVzdDp0ZXN0", "user-agent": "curl/7.35.0", host: "localhost:5001" },
querystring: "param=hello",
body: "",
method: "GET",
timestamp: "2014-07-15T08:10:45.109Z"
}
status: "Completed"
task1 = new Task
_id: "53e34b915d0180cf6eef2d01"
created: "2014-07-15T07:49:26.238Z"
remainingTransactions: 2
totalTransactions: 3
status: "Processing"
transactions: [ {tid: "53e096fea0af3105689acd6a", tstatus: "Completed"},
{tid: "53bfbcd06a2b417f6cd14872", tstatus: "Queued"},
{tid: "aaaaaaaaaabbbbbbbbbbcccc", tstatus: "Queued"} ]
user: "root@openhim.org"
describe "rerunUpdateTransactionTask middleware", ->
before (done) ->
transaction1.save ->
task1.save ->
done()
after (done) ->
Transaction.remove {}, ->
Task.remove {}, ->
done()
describe "updateOriginalTransaction", ->
it "should update the original transaction with the child ID", (done) ->
# check data before function execution
transactionID = "53e096fea0af3105689acd6a"
Transaction.findOne {_id: transactionID }, (err, transaction) ->
transaction.should.have.property "_id", ObjectId("53e096fea0af3105689acd6a")
transaction.should.have.property "channelID", ObjectId("53bbe25485e66d8e5daad4a2")
transaction.should.have.property "clientID", ObjectId("42bbe25485e77d8e5daad4b4")
transaction.should.have.property "status", "Completed"
transaction.childIDs.length.should.be.eql 0
rerunUpdateTransactionTask.updateOriginalTransaction ctx, (err, transaction) ->
transaction.should.have.property "_id", ObjectId("53e096fea0af3105689acd6a")
transaction.should.have.property "channelID", ObjectId("53bbe25485e66d8e5daad4a2")
transaction.should.have.property "clientID", ObjectId("42bbe25485e77d8e5daad4b4")
transaction.should.have.property "status", "Completed"
transaction.childIDs.length.should.be.eql 1
transaction.childIDs[0].should.be.eql ObjectId("53e34b955d0180cf6eef2d03")
done()
describe "updateTask()", ->
it "should update the task with the rerun ID and status", (done) ->
# check data before function execution
taskID = "53e34b915d0180cf6eef2d01"
Task.findOne {_id: taskID }, (err, task) ->
task.should.have.property "_id", ObjectId("53e34b915d0180cf6eef2d01")
task.should.have.property "remainingTransactions", 2
task.transactions[0].tid.should.be.eql "53e096fea0af3105689acd6a"
task.transactions[1].tid.should.be.eql "53bfbcd06a2b417f6cd14872"
task.transactions[2].tid.should.be.eql "aaaaaaaaaabbbbbbbbbbcccc"
should.not.exist (task.transactions[0].rerunID)
should.not.exist (task.transactions[1].rerunID)
should.not.exist (task.transactions[2].rerunID)
rerunUpdateTransactionTask.updateTask ctx, (err, task) ->
task.should.have.property "_id", ObjectId("53e34b915d0180cf6eef2d01")
task.should.have.property "remainingTransactions", 2
task.transactions[0].tid.should.be.eql "53e096fea0af3105689acd6a"
task.transactions[0].rerunID.should.be.eql "53e34b955d0180cf6eef2d03"
task.transactions[0].rerunStatus.should.be.eql "Successfull"
done()