mirror of https://github.com/knative/func.git
45 lines
1021 B
JavaScript
45 lines
1021 B
JavaScript
'use strict';
|
|
const { HTTP, CloudEvent } = require('cloudevents');
|
|
const { start } = require('faas-js-runtime');
|
|
const request = require('supertest');
|
|
|
|
const func = require('..').handle;
|
|
const test = require('tape');
|
|
|
|
const data = {
|
|
name: 'tiger',
|
|
customerId: '01234'
|
|
}
|
|
|
|
const errHandler = t => err => {
|
|
t.error(err);
|
|
t.end();
|
|
};
|
|
|
|
const message = HTTP.binary(new CloudEvent({
|
|
type: 'com.example.test',
|
|
source: 'http://localhost:8080',
|
|
data
|
|
}));
|
|
|
|
test('Integration: handles a valid event', t => {
|
|
start(func).then(server => {
|
|
t.plan(5);
|
|
request(server)
|
|
.post('/')
|
|
.send(message.body)
|
|
.set(message.headers)
|
|
.expect(200)
|
|
.expect('Content-Type', /json/)
|
|
.end((err, result) => {
|
|
t.error(err, 'No error');
|
|
t.ok(result);
|
|
t.deepEqual(result.body, data);
|
|
t.equal(result.headers['ce-type'], 'echo');
|
|
t.equal(result.headers['ce-source'], 'event.handler');
|
|
t.end();
|
|
server.close();
|
|
});
|
|
}, errHandler(t));
|
|
});
|