describe('#createNetwork', () => { it('should merge name correctly into opts', () => { const stub = sinon.stub(landerode, 'createNetwork') .usingPromise(Promise) .resolves(); return landerode.createNet('elthree', {}).then(() => { // for some reason should/expect doesn't work here... stub.calledWith({Name: 'elthree'}); stub.restore(); }); }); it('should throw an error if can\'t create network', () => { const stub = sinon.stub(landerode, 'createNetwork').rejects('Too Many Capes'); return landerode.createNet('hardtimes').should.be.rejectedWith('Too Many Capes') .then(() => { stub.restore(); }); }); });
return expect( iterate.async(() => {}) ).to.eventually.be.rejectedWith(/Use iterate\(\)/) }) iterate.async(() => Promise.resolve()) ]) ).to.eventually.be.rejectedWith(/Detected concurrently running tests/) })
}, 20) )) ).to.eventually.be.rejectedWith(MemoryLeakError, /^Heap grew on \d subsequent garbage collections[\s\S]*Iterations between GCs: 30[\s\S]*Final GC details:/) })
sinon.stub(child, 'spawn').callsFake(fakeSpawn); return shell.sh(['set', 'us', 'up', 'the', 'bomb'], {mode: 'attach'}).should.be.rejected .then(child.spawn.restore()); }); sinon.stub(child, 'spawn').callsFake(fakeSpawn); return shell.sh(['van', 'the', 'man'], {detached: true}).should.be.fulfilled .then(child.spawn.restore()); }); }); return shell.sh(['van', 'the', 'man'], {mode: 'attach'}).should.be.fulfilled .then(child.spawn.restore()) .then(() => { delete process.lando; }); return shell.sh(['van', 'the', 'man'], {mode: 'attach'}).should.be.fulfilled .then(child.spawn.restore()) .then(() => { delete process.lando;
context("with no displayElementSelected handler", function() { describe("outputSpeech", function() { it("responds with NO_DISPLAY_ELEMENT_SELECTED message", function() { var subject = testApp.request(mockRequest).then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak>" + testApp.messages.NO_DISPLAY_ELEMENT_SELECTED_FUNCTION + "</speak>", type: "SSML" }); }); }); });
it("clears output when clear is called", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { res.say(expectedMessage).say(expectedMessage).clear(); return true; }); var request = testApp.request(mockRequest); var subject = request.then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak></speak>", type: "SSML" }); });
it("retrieves an intent confirmation status", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { res.say(req.confirmationStatus); return true; }); var request = testApp.request(mockRequest); var subject = request.then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak>NONE</speak>", type: "SSML" }); });
it("responds with expected message", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { res.say(expectedMessage); return true; }); var request = testApp.request(mockRequest); var subject = request.then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak>" + expectedMessage + "</speak>", type: "SSML" }); });
describe("intent handler with AccountLink called on res", function() { it("responds with a account link card", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { res.linkAccount(); }); var subject = testApp.request(mockRequest); var cardResponse = subject.then(function(response) { return response.response.card; }); return expect(cardResponse).to.eventually.become({ "type": "LinkAccount" }); }); });
it("retrieves a slot confirmation status", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { res.say(req.slots["AirportCode"].confirmationStatus); return true; }); var request = testApp.request(mockRequest); var subject = request.then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak>NONE</speak>", type: "SSML" }); });
it("responds with expected message for promise", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { return Promise.resolve().then(function() { res.say(expectedMessage); }); }); var request = testApp.request(mockRequest); var subject = request.then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak>" + expectedMessage + "</speak>", type: "SSML" }); });
it("retrieves a slot value", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { res.say(req.slot("AirportCode")); return true; }); var request = testApp.request(mockRequest); var subject = request.then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak>JFK</speak>", type: "SSML" }); });
it("combines says into a larger response", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { res.say(expectedMessage).say(expectedMessage); return true; }); var request = testApp.request(mockRequest); var subject = request.then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak>" + expectedMessage + " " + expectedMessage + "</speak>", type: "SSML" }); });
it("retrieves default slot value", function() { testApp.intent("airportInfoIntent", {}, function(req, res) { res.say(req.slot("InvalidSlotName", "default value")); return true; }); var request = testApp.request(mockRequest); var subject = request.then(function(response) { return response.response.outputSpeech; }); return expect(subject).to.eventually.become({ ssml: "<speak>default value</speak>", type: "SSML" }); });