luis-mocker
v0.1.0
Published
Http mocking for Luis.ai
Downloads
12
Maintainers
Readme
Luis Mocker 
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!
installation
npm install -save luis-mocker
Classes
LuisMocker
constructor(luisModelUrl)
mock(utterance, responseBody)
- 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
example use
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);
})
});