22
33var Lab = require ( 'lab' )
44var Code = require ( 'code' )
5+ var Proxyquire = require ( 'proxyquire' )
6+ var NpmFakeData = require ( './npm-data' )
57
68var lab = exports . lab = Lab . script ( )
79var describe = lab . describe
810var it = lab . it
911var expect = Code . expect
1012
11- var Seneca = require ( 'seneca' )
12- var Github = require ( '..' )
13+ var NpmProxy = {
14+ request : {
15+ get : ( opts , done ) => {
16+ if ( opts . url . includes ( 'seneca' ) ) {
17+ done ( null , { } , JSON . stringify ( NpmFakeData ) )
18+ }
19+ else {
20+ done ( new Error ( 'npm error' ) , null , null )
21+ }
22+ }
23+ }
24+ }
25+
26+
27+ var Seneca = Proxyquire ( 'seneca' , { } )
28+ var Github = Proxyquire ( '..' , NpmProxy )
1329
14- function createInstance ( ) {
30+ function createInstance ( done ) {
1531 var params = {
1632 log : 'silent' ,
33+ strict : 'false' ,
1734 errhandler : ( err ) => {
18- if ( err . at ) console . log ( err . msg )
35+ if ( err . at ) done ( err )
1936 }
2037 }
2138
@@ -25,34 +42,29 @@ function createInstance () {
2542}
2643
2744describe ( 'A valid "role:github,cmd:get" call' , ( ) => {
28- it ( 'has no error' , ( done ) => {
29- var seneca = createInstance ( )
45+ it ( 'has data and no error' , ( done ) => {
46+ var seneca = createInstance ( done )
3047 var payload = { name : 'seneca' }
3148
3249 seneca . act ( `role:github,cmd:get` , payload , ( err , reply ) => {
3350 expect ( err ) . to . not . exist ( )
34- done ( )
35- } )
36- } )
37-
38- it ( 'has data' , ( done ) => {
39- var seneca = createInstance ( )
40- var payload = { name : 'seneca' }
41-
42- seneca . act ( `role:github,cmd:get` , payload , ( err , reply ) => {
4351 expect ( reply ) . to . exist ( )
4452 done ( )
4553 } )
4654 } )
4755
4856 it ( 'returns cached data' , ( done ) => {
49- var seneca = createInstance ( )
57+ var seneca = createInstance ( done )
5058 var payload = { name : 'seneca' }
5159
5260 seneca . act ( `role:github,cmd:get` , payload , ( err , reply ) => {
61+ expect ( err ) . to . not . exist ( )
62+
5363 var cachedOne = reply . cached
5464
5565 seneca . act ( `role:github,cmd:get` , payload , ( err , reply ) => {
66+ expect ( err ) . to . not . exist ( )
67+
5668 var cachedTwo = reply . cached
5769
5870 expect ( cachedOne ) . to . equal ( cachedTwo )
@@ -62,7 +74,7 @@ describe('A valid "role:github,cmd:get" call', () => {
6274 } )
6375
6476 it ( 'can return non-cached data' , ( done ) => {
65- var seneca = createInstance ( )
77+ var seneca = createInstance ( done )
6678 var payload = { name : 'seneca' }
6779
6880 seneca . act ( `role:github,cmd:get` , payload , ( err , reply ) => {
@@ -72,6 +84,8 @@ describe('A valid "role:github,cmd:get" call', () => {
7284 payload . update = true
7385
7486 seneca . act ( `role:github,cmd:get` , payload , ( err , reply ) => {
87+ expect ( err ) . to . not . exist ( )
88+
7589 var cachedTwo = reply . cached
7690
7791 expect ( cachedOne ) . to . be . below ( cachedTwo )
@@ -82,51 +96,32 @@ describe('A valid "role:github,cmd:get" call', () => {
8296} )
8397
8498describe ( 'An invalid "role:github,cmd:get" call' , ( ) => {
85- it ( 'has an error' , ( done ) => {
86- var seneca = createInstance ( )
87- var payload = { name : 'shooobydoobydooboop' , fatal$ : false }
88-
89- seneca . act ( `role:github,cmd:get` , payload , ( err , reply ) => {
90- expect ( err ) . to . exist ( )
91- done ( )
92- } )
93- } )
94-
95- it ( 'has no data' , ( done ) => {
96- var seneca = createInstance ( )
99+ it ( 'has an error and no data' , ( done ) => {
100+ var seneca = createInstance ( done )
97101 var payload = { name : 'shooobydoobydooboop' }
98102
99103 seneca . act ( `role:github,cmd:get` , payload , ( err , reply ) => {
104+ expect ( err ) . to . exist ( )
100105 expect ( reply ) . to . not . exist ( )
101106 done ( )
102107 } )
103108 } )
104109} )
105110
106111describe ( 'A valid "role:info,req:part" call' , ( ) => {
107- it ( 'has no error' , ( done ) => {
108- var seneca = createInstance ( )
112+ it ( 'has no error and has data ' , ( done ) => {
113+ var seneca = createInstance ( done )
109114 var payload = { name : 'seneca' }
110115
111116 seneca . act ( `role:info,req:part` , payload , ( err , reply ) => {
112117 expect ( err ) . to . not . exist ( )
113- done ( )
114- } )
115- } )
116-
117- it ( 'has data' , ( done ) => {
118- var seneca = createInstance ( )
119- var payload = { name : 'seneca' }
120-
121- seneca . act ( `role:info,req:part` , payload , ( err , reply ) => {
122118 expect ( reply ) . to . exist ( )
123119 done ( )
124120 } )
125121 } )
126122
127-
128123 it ( 'responds via "role:info,res:part"' , ( done ) => {
129- var seneca = createInstance ( )
124+ var seneca = createInstance ( done )
130125 var payload = { name : 'seneca' }
131126
132127 seneca . add ( `role:info,res:part` , ( msg , cb ) => {
@@ -135,6 +130,9 @@ describe('A valid "role:info,req:part" call', () => {
135130 done ( )
136131 } )
137132
138- seneca . act ( `role:info,req:part` , payload )
133+ seneca . act ( `role:info,req:part` , payload , ( err , reply ) => {
134+ expect ( err ) . to . not . exist ( )
135+ expect ( reply ) . to . exist ( )
136+ } )
139137 } )
140138} )
0 commit comments