Created
May 22, 2014 17:02
-
-
Save ebbersjathomes/7f4102f25417b0980988 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Created by ebbersj on 5/22/14. | |
*/ | |
var createOrderLineItem = require("../../lib/service/order/createOrderLineItem"), | |
proxyquire = require("proxyquire"), | |
should = require("should"), | |
sinon = require("sinon"); | |
var testData = { | |
"order_id" : 1, | |
"product_id" : 2, | |
"qty" : 3, | |
"zip" : "02345" | |
} | |
describe("./lib/service/order/createOrderLineItem.js", function(){ | |
it("_validateData should error if order_id, product_id, qty and zip are not passed in", function(done){ | |
createOrderLineItem._vaidateData({}, function(err, result){ | |
should.exist(err); | |
err.should.have.property("message").equal("Invalid Data"); | |
err.should.have.property("errors"); | |
err.errors.length.should.equal(4); | |
done(); | |
}); | |
}), | |
it("_validate should not error when order_id, product_id qty and zip are not passed in", function(done){ | |
createOrderLineItem._vaidateData(testData, function(err, result){ | |
should.not.exist(err); | |
should.exist(result); | |
result.should.have.property("order_id").equal(testData.order_id); | |
result.should.have.property("product_id").equal(testData.product_id); | |
result.should.have.property("qty").equal(testData.qty); | |
result.should.have.property("zip").equal(testData.zip); | |
done(); | |
}); | |
}), | |
it("_pingOrder should pass order id", function(done){ | |
var orderDAO = require("../../lib/dao/order/order"), | |
stubOrderDAO = sinon.stub(orderDAO, "checkExists", function(id, db, callback){ | |
callback(null, true); | |
}); | |
var stubCreateOrderLineItem = proxyquire("../../lib/service/order/createOrderLineItem", {"../../dao/order/order" : stubOrderDAO}); | |
stubCreateOrderLineItem._pingOrder(testData,{"db" : true}, function(err, exists){ | |
orderDAO.checkExists.restore(); | |
stubOrderDAO.calledOnce.should.be.true; | |
stubOrderDAO.args[0][0].should.equal(testData.order_id); | |
stubOrderDAO.args[0][1].should.have.property("db").true; | |
done(); | |
}); | |
}), | |
it("_pingOrder should return true if true", function(done){ | |
var orderDAO = require("../../lib/dao/order/order"), | |
stubOrderDAO = sinon.stub(orderDAO, "checkExists", function(id, db, callback){ | |
callback(null, true); | |
}); | |
var stubCreateOrderLineItem = proxyquire("../../lib/service/order/createOrderLineItem", {"../../dao/order/order" : stubOrderDAO}); | |
stubCreateOrderLineItem._pingOrder(testData,{"db" : true}, function(err, exists){ | |
orderDAO.checkExists.restore(); | |
stubOrderDAO.calledOnce.should.be.true; | |
should.not.exist(err); | |
should.exist(exists); | |
exists.should.be.true; | |
done(); | |
}); | |
}), | |
it("_pingOrder should return false if false", function(done){ | |
var orderDAO = require("../../lib/dao/order/order"), | |
stubOrderDAO = sinon.stub(orderDAO, "checkExists", function(id, db, callback){ | |
callback(null, false); | |
}); | |
var stubCreateOrderLineItem = proxyquire("../../lib/service/order/createOrderLineItem", {"../../dao/order/order" : stubOrderDAO}); | |
stubCreateOrderLineItem._pingOrder(testData,{"db" : true}, function(err, exists){ | |
orderDAO.checkExists.restore(); | |
stubOrderDAO.calledOnce.should.be.true; | |
should.not.exist(err); | |
should.exist(exists); | |
exists.should.be.false; | |
done(); | |
}); | |
}), | |
it("_pingOrder should bubble up errors", function(done){ | |
var orderDAO = require("../../lib/dao/order/order"), | |
stubOrderDAO = sinon.stub(orderDAO, "checkExists", function(id, db, callback){ | |
callback({"message" : "test error message"}); | |
}); | |
var stubCreateOrderLineItem = proxyquire("../../lib/service/order/createOrderLineItem", {"../../dao/order/order" : stubOrderDAO}); | |
stubCreateOrderLineItem._pingOrder(testData,{"db" : true}, function(err, exists){ | |
orderDAO.checkExists.restore(); | |
stubOrderDAO.calledOnce.should.be.true; | |
should.exist(err); | |
err.should.have.property("message").equal("test error message"); | |
should.not.exist(exists); | |
done(); | |
}); | |
}) | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment