Fixes how to do tests with Promise

Signed-off-by: Fabio José <fabiojose@gmail.com>
This commit is contained in:
Fabio José 2019-08-06 11:20:59 -03:00
parent 3cdd7b9280
commit f599f7ab61
1 changed files with 61 additions and 4 deletions

View File

@ -1,7 +1,7 @@
var expect = require("chai").expect;
var Unmarshaller = require("../../../lib/bindings/http/unmarshaller_0_3.js");
var Cloudevent = require("../../../index.js");
var {Spec03} = require("../../../v03/index.js");
var v03 = require("../../../v03/index.js");
const type = "com.github.pull.create";
const source = "urn:event:from:myapi/resourse/123";
@ -115,7 +115,7 @@ describe("HTTP Transport Binding Unmarshaller for CloudEvents v0.3", () => {
it("Should accept event that follow the spec 0.3", () => {
// setup
var payload =
new Cloudevent(Spec03)
new Cloudevent(v03.Spec)
.type(type)
.source(source)
.contenttype(ceContentType)
@ -131,9 +131,13 @@ describe("HTTP Transport Binding Unmarshaller for CloudEvents v0.3", () => {
var un = new Unmarshaller();
// act and assert
un.unmarshall(payload, headers)
return un.unmarshall(payload, headers)
.then(actual =>
expect(actual).to.be.an("object"));
expect(actual).to.be.an("object"))
.catch((err) => {
console.log(err);
throw err;
});
});
});
@ -208,7 +212,60 @@ describe("HTTP Transport Binding Unmarshaller for CloudEvents v0.3", () => {
// act and assert
un.unmarshall(payload, attributes)
.then(actual => expect(actual).to.be.an("object"));
});
it("Throw error when 'ce-datacontentencoding' is not allowed", () => {
// setup
var payload = "eyJtdWNoIjoid293In0=";
var attributes = {
"ce-type" : "type",
"ce-specversion" : "0.3",
"ce-source" : "source",
"ce-id" : "id",
"ce-time" : "2019-06-16T11:42:00Z",
"ce-schemaurl" : "http://schema.registry/v1",
"Content-Type" : "application/json",
"ce-datacontentencoding" : "binary"
};
var un = new Unmarshaller();
// act and assert
return un.unmarshall(payload, attributes)
.then(actual => {throw {message: "failed"}})
.catch(err => {
expect(err.message).to.equal("unsupported datacontentencoding");
});
});
it("No error when 'ce-datacontentencoding' is base64", () => {
// setup
var payload = "eyJtdWNoIjoid293In0=";
let expected = {
much : "wow"
};
var attributes = {
"ce-type" : "type",
"ce-specversion" : "0.3",
"ce-source" : "source",
"ce-id" : "id",
"ce-time" : "2019-06-16T11:42:00Z",
"ce-schemaurl" : "http://schema.registry/v1",
"Content-Type" : "application/json",
"ce-datacontentencoding" : "base64"
};
var un = new Unmarshaller();
// act and assert
return un.unmarshall(payload, attributes)
.then(actual => expect(actual.getData()).to.deep.equal(expected))
.catch(err => {
console.log(err);
throw err;
});
});
});
});