Merge branch 'develop'

This commit is contained in:
Fabio José 2019-05-24 09:21:15 -03:00
commit a39e895ece
4 changed files with 32 additions and 3 deletions

View File

@ -120,6 +120,11 @@ var config = {
url : "https://myserver.com"
};
/*
* To use HTTP Binary:
* Cloudevent.bindings["http-binary0.2"](config);
*/
// The binding instance
var binding = Cloudevent.bindings["http-structured0.1"](config);

View File

@ -32,6 +32,9 @@
"time": {
"$ref": "#/definitions/time"
},
"schemaurl": {
"$ref": "#/definitions/schemaurl"
},
"type": {
"$ref": "#/definitions/type"
},
@ -58,6 +61,10 @@
"format": "date-time",
"type": "string"
},
"schemaurl": {
"type": "string",
"format": "uri"
},
"type": {
"type": "string",
"minLength": 1

View File

@ -16,8 +16,9 @@ const reserved = {
const schema = require("../../ext/spec_0_2.json");
// Default options
const ajv = new Ajv();
const ajv = new Ajv({
extendRefs: true // validate all keywords in the schemas with $ref (the default behaviour in versions before 5.0.0)
});
const validate = ajv.compile(schema);
@ -36,7 +37,7 @@ Spec02.prototype.check = function(){
var valid = validate(this.payload);
if(!valid) {
throw {message: "invalid payload"};
throw {message: "invalid payload", errors: validate.errors};
}
};

View File

@ -40,6 +40,14 @@ describe("CloudEvents Spec 0.2 - JavaScript SDK", () => {
expect(cloudevent.format()).to.have.property("specversion");
});
it("should throw an error when mandatory attribute is absent", () => {
delete cloudevent.spec.payload.source;
expect(cloudevent.format.bind(cloudevent))
.to
.throw("invalid payload");
cloudevent.spec.payload.source = source;
});
it("requires 'source'", () => {
expect(cloudevent.format()).to.have.property("source");
});
@ -60,6 +68,14 @@ describe("CloudEvents Spec 0.2 - JavaScript SDK", () => {
expect(cloudevent.format()).to.have.property("schemaurl");
});
it("should throw an error when 'schemaurl' is not an URI", () => {
cloudevent.spec.payload.schemaurl = "KKKKKK";
expect(cloudevent.format.bind(cloudevent))
.to
.throw("invalid payload");
cloudevent.spec.payload.schemaurl = schemaurl;
});
it("contains 'contenttype'", () => {
cloudevent.contenttype(contenttype);
expect(cloudevent.format()).to.have.property("contenttype");