Skip to content

microsoftly/luis-mocker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Luis Mocker CircleCI

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);
            })
});

About

Http mocking for Luis.ai

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published