Lors de l'exécution serverless invoke test
et en utilisant Vandium, je reçois Status Code 500
et erreur:Serverless test Invoke retourne l'état 500 lorsque vous utilisez Vandium: type d'événement attendu de apigateway mais identifié comme inconnu
{"type":"Error","message":"Expected event type of apigateway but identified as unknown”}
Voici le code à reproduire le problème. Tout d'abord, l'exemple de travail (sans Vandium):
temps/handler.js:
'use strict';
module.exports.endpoint =
(event, context, callback) => {
const response = {
statusCode: 200,
body: JSON.stringify({
message: `Hello, the current time is ${new Date().toTimeString()}.`,
}),
};
callback(null, response);
}
serverless.yml:
service: serverless-starter
provider:
name: aws
runtime: nodejs6.10
functions:
currentTime:
handler: time/handler.endpoint
events:
- http:
path: ping
method: get
plugins:
- serverless-offline
- serverless-mocha-plugin
Enfin, le code de test autogenerated qui vérifie le code d'état : test/currentTime.js:
'use strict';
// tests for currentTime
// Generated by serverless-mocha-plugin
const mochaPlugin = require('serverless-mocha-plugin');
const expect = mochaPlugin.chai.expect;
let wrapped = mochaPlugin.getWrapper('currentTime', '/time/handler.js', 'endpoint');
describe('currentTime',() => {
before((done) => {
done();
});
it('implement tests here',() => {
return wrapped.run({}).then((response) => {
const body = JSON.parse(response.body);
expect(response.statusCode).to.be.equal(200);
});
});
});
Cela fonctionne très bien. Je peux démarrer le serveur: serverless offline start
et je peux obtenir le point de terminaison http://localhost:3000/ping avec curl ou POSTMAN.
Si je cours serverless invoke test
alors le test fonctionne bien. Aucun problème jusqu'à ce point.
Maintenant, quand je Refactor le code et utiliser Vandium: temps/handler.js:
'use strict';
const vandium = require('vandium');
module.exports.endpoint = vandium.api()
.GET((event) => {
return {
"id": "12345",
"name": "john.doe"
};
}
)
Ensuite, tout fonctionne très bien, ce que je peux démarrer le serveur et se connecter au point final avec boucle ou POSTMAN .
Pourtant, quand je lance à nouveau le test serverless invoke test
alors au lieu du code d'état 200, je reçois 500 et erreur:
{"type":"Error","message":"Expected event type of apigateway but identified as unknown”}
Quel est le problème?