1
1
/* jshint node: true */
2
2
process . env . NODE_ENV = 'test' ;
3
+ //require('dotenv').config({path: './test/.env'});
4
+
3
5
var sinon = require ( 'sinon' ) ;
4
6
var chai = require ( 'chai' ) ;
7
+ var expect = require ( 'chai' ) . expect ;
5
8
var sinonChai = require ( "sinon-chai" ) ;
6
9
chai . use ( sinonChai ) ;
7
- var expect = require ( 'chai' ) . expect ;
8
- //require('dotenv').config({path: './test/.env'});
10
+ require ( 'sinon-as-promised' )
9
11
10
- describe ( 'Main handler basic functionality' , function ( ) {
11
- var lambda = require ( '../index.js' ) ;
12
+ var plexAPI = require ( 'plex-api' ) ;
12
13
13
- beforeEach ( function ( ) {
14
- } ) ;
14
+ var requestTemplate = require ( './RequestTemplate.json' ) ;
15
15
16
- afterEach ( function ( ) {
17
- } ) ;
16
+ describe ( 'Main handler basic functionality' , function ( ) {
17
+ var lambda = require ( '../index.js' ) ;
18
18
19
19
//it('should reject invalid AppID', function () {
20
20
// var request = require('./LaunchRequestInvalidApp.json');
21
21
// // TODO reject invalid AppID
22
22
//});
23
23
24
24
it ( 'should handle LaunchRequest' , function ( done ) {
25
- var request = require ( './LaunchRequest.json' ) ;
25
+ var request = JSON . parse ( JSON . stringify ( requestTemplate ) ) ; // Yes this is slow but hey it's just tests?
26
+ request . request . type = 'LaunchRequest' ;
26
27
27
28
lambda . handler ( request , {
28
29
succeed : function ( res ) {
29
- console . log ( res ) ;
30
+ // console.log(res);
30
31
expect ( res . response . shouldEndSession ) . to . be . true ;
31
- expect ( res . response . card ) . to . not . exist ;
32
- expect ( res . response . outputSpeech . text ) . to . contain ( 'Plex is ready' ) ;
32
+ expect ( res ) . to . not . have . deep . property ( 'response.card' ) ;
33
+ expect ( res ) . to . have . deep . property ( 'response.outputSpeech.text' )
34
+ . that . matches ( / p l e x i s r e a d y / i) ;
35
+
33
36
done ( ) ;
34
37
} , fail : function ( res ) {
38
+ console . log ( res ) ;
35
39
expect . fail ( ) ;
36
40
done ( ) ;
37
41
}
38
42
} ) ;
39
43
} ) ;
40
- } ) ;
44
+ } ) ;
45
+
46
+ describe ( 'Intents' , function ( ) {
47
+ var lambda = require ( '../index.js' ) ;
48
+ //var plex;
49
+ //var plexQueryStub;
50
+ var plexQuerySpy ;
51
+
52
+ beforeEach ( function ( ) {
53
+ //plex = new plexAPI('localhost');
54
+ //plexQueryStub = sinon.stub(plex, 'query')
55
+ // .resolves('a');
56
+ plexQuerySpy = sinon . spy ( lambda . plex , 'query' ) ;
57
+ } ) ;
58
+
59
+ afterEach ( function ( ) {
60
+ plexQuerySpy . restore ( ) ;
61
+ } ) ;
62
+
63
+ it ( 'should handle OnDeck Intent' , function ( done ) {
64
+ var request = JSON . parse ( JSON . stringify ( requestTemplate ) ) ; // Yes this is slow but hey it's just tests?
65
+ request . request . type = 'IntentRequest' ;
66
+ request . request . intent . name = 'OnDeckIntent' ;
67
+
68
+ lambda . handler ( request , {
69
+ succeed : function ( res ) {
70
+ console . log ( res ) ;
71
+ expect ( res . response . shouldEndSession ) . to . be . true ;
72
+ expect ( res ) . to . have . deep . property ( 'response.card.subtitle' )
73
+ . that . matches ( / o n d e c k / i) ;
74
+ expect ( res ) . to . have . deep . property ( 'response.outputSpeech.text' )
75
+ . that . matches ( / o n d e c k / i) ;
76
+ expect ( plexQuerySpy ) . to . have . been . calledOnce ;
77
+ done ( ) ;
78
+ } , fail : function ( res ) {
79
+ console . log ( res ) ;
80
+ done ( Error ( 'Lambda returned fail()' ) ) ;
81
+ }
82
+ } ) ;
83
+ } ) ;
84
+
85
+ //it('should handle OnDeck Intent', function (done) {
86
+ // var request = JSON.parse(JSON.stringify(requestTemplate)); // Yes this is slow but hey it's just tests?
87
+ // request.request.type = 'IntentRequest';
88
+ // request.request.intent.name = 'StartShowIntent';
89
+ //
90
+ // lambda.handler(request, {
91
+ // succeed: function(res) {
92
+ // console.log(res);
93
+ // expect(res.response.shouldEndSession).to.be.true;
94
+ // expect(res).to.have.deep.property('response.card.subtitle')
95
+ // .that.matches(/on deck/i);
96
+ // expect(res).to.have.deep.property('response.outputSpeech.text')
97
+ // .that.matches(/on deck/i);
98
+ // expect(plexQuerySpy).to.have.been.calledOnce;
99
+ // done();
100
+ // }, fail: function(res) {
101
+ // console.log(res);
102
+ // done(Error('Lambda returned fail()'));
103
+ // }
104
+ // });
105
+ //});
106
+ } ) ;
107
+
108
+
0 commit comments