You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.8 KiB

describeAscoltatore("JSON", function() {
it("should transfer nulls as false", function(done) {
var that = this;
this.instance.subscribe("/hello", function(topic, payload) {
expect(payload).to.be.eql(false);
done();
}, function() {
that.instance.publish("/hello", null);
});
});
it("should transfer undefined as false", function(done) {
var that = this;
this.instance.subscribe("/hello", function(topic, payload) {
expect(payload).to.be.eql(false);
done();
}, function() {
that.instance.publish("/hello", undefined);
});
});
it("should transfer numbers", function(done) {
var that = this;
this.instance.subscribe("/hello", function(topic, payload) {
expect(payload).to.be.eql(42);
done();
}, function() {
that.instance.publish("/hello", 42);
});
});
it("should publish messages on the parent encoding them as JSON", function(done) {
var that = this;
this.wrapped.subscribe("/hello", function(topic, payload) {
expect(payload).to.be.equal('{"key":"world"}');
done();
}, function() {
that.instance.publish("/hello", {
key: "world"
});
});
});
it("should publish correctly a false", function(done) {
var that = this;
that.instance.sub("hello/*", function(topic, value) {
expect(value).to.be.eql(false);
done();
}, function() {
that.instance.pub("hello/123", false);
});
});
it("should not throw if a bad JSON arrives", function(done) {
var that = this;
this.instance.subscribe("/hello", function(topic, payload) {
done(new Error("this should never happen"));
}, function() {
that.wrapped.publish("/hello", "not a json", function() {
done();
});
});
});
});