payapi-rabbus
Version:
A micro-servicebus for RabbitMQ. Forked from https://github.com/derickbailey/rabbus.git solely to make it use payapi-whistlepunk as a dependency.
106 lines (85 loc) • 2.42 kB
JavaScript
var optionParser = require("../lib/optionParser");
describe("option parser: exchange - ", function(){
describe("when given an exchange as a string", function(){
var result;
var ex = "ex.name";
beforeEach(function(){
var options = {
exchange: ex
};
result = optionParser.parse(options);
});
it("should return an exchange.name", function(){
expect(result.exchange.name).toBe(ex);
});
});
describe("when given an exchange as an object with a name", function(){
var result;
var ex = "ex.name";
beforeEach(function(){
var options = {
exchange: {
name: ex
}
};
result = optionParser.parse(options);
});
it("should return an exchange.name", function(){
expect(result.exchange.name).toBe(ex);
});
});
describe("when not given an exchange name or object", function(){
var result;
beforeEach(function(){
var options = {};
result = optionParser.parse(options);
});
it("should return an empty exchange config", function(){
expect(result.exchange).toBe(undefined);
});
});
describe("when given default exchange settings with an empty exchange options", function(){
var result;
var defaults = {
exchange: {
durable: true,
persistent: true,
foo: "bar"
}
};
beforeEach(function(){
var options = {};
result = optionParser.parse(options, defaults);
});
it("should return an empty exchange", function(){
expect(result.exchange).toBe(undefined);
});
});
describe("when given default exchange settings with overrides", function(){
var result;
var defaults = {
exchange: {
durable: true,
persistent: true,
foo: "bar"
}
};
beforeEach(function(){
var options = {
exchange: {
name: "foo",
durable: false
}
};
result = optionParser.parse(options, defaults);
});
it("should override the defaults with the provided values", function(){
expect(result.exchange.durable).toBe(false);
expect(result.exchange.name).toBe("foo");
});
it("should retain defaults that were not overridden", function(){
expect(result.exchange.persistent).toBe(true);
expect(result.exchange.foo).toBe("bar");
});
});
});