Easy http mocking of luis.ai. Perfect for testing services that rely on Luis.ai by making them deterministic and avoiding pay per call requests.
This is a work in progress. PRs are welcome!
npm install -save luis-mocker
- mock utterance is the string that is expected.
- responseBody is the response sent back when that utterance is checked. Bodies can be easily built with the LuisResponseBuilder
const Promise = require("bluebird");
const chai = require("chai");
const { DateTimeV2, LuisResponseBuilder } = require("luis-response-builder");
const rp = require("request-promise");
const LuisMocker = require("./../src/LuisMocker");
describe('LuisMocker', () => {
const july15AmbiguousDateEntity = DateTimeV2.createDateTimeV2_Date_EntityWithAmbiguousDate('July 15th', 0, 4, new Date('7/19'), new Date('2015'));
const cancelTacoBellResponse = new LuisResponseBuilder('I want to cancel my reservation at Taco Bell on July 15th')
.addCustomEntity({ startIndex: 0, endIndex: 4, type: 'restaurantName', entity: 'taco bell', score: .98 })
.addPrebuiltEntity(july15AmbiguousDateEntity)
.addIntent('cancel', .92)
.addIntent('login', .3)
.addIntent('none', .02)
.build();
it('can mock requests to luis.ai', () => {
return rp.get(cancelTacoBellUri, { json: true })
.then((cancelTacoBellTestResponse) => {
chai.expect(cancelTacoBellTestResponse).to.deep.equal(cancelTacoBellResponse);
})
});