@@ -34,13 +34,31 @@ describe('middleware.karma', () => {
3434
3535 var handler = serveFile = filesDeferred = nextSpy = response = null
3636
37+ var clientConfig = { foo : 'bar' }
38+ var injector = {
39+ get ( val ) {
40+ switch ( val ) {
41+ case 'config.client' :
42+ return clientConfig
43+ default :
44+ return null
45+ }
46+ }
47+ }
48+
3749 beforeEach ( ( ) => {
38- var clientConfig = { foo : 'bar' }
3950 nextSpy = sinon . spy ( )
4051 response = new HttpResponseMock ( )
4152 filesDeferred = helper . defer ( )
4253 serveFile = createServeFile ( fsMock , '/karma/static' )
43- handler = createKarmaMiddleware ( filesDeferred . promise , serveFile , null , '/base/path' , '/__karma__/' , clientConfig )
54+ handler = createKarmaMiddleware (
55+ filesDeferred . promise ,
56+ serveFile ,
57+ null ,
58+ injector ,
59+ '/base/path' ,
60+ '/__karma__/'
61+ )
4462 } )
4563
4664 // helpers
@@ -92,7 +110,14 @@ describe('middleware.karma', () => {
92110 } )
93111
94112 it ( 'should serve client.html' , ( done ) => {
95- handler = createKarmaMiddleware ( null , serveFile , null , '/base' , '/' )
113+ handler = createKarmaMiddleware (
114+ null ,
115+ serveFile ,
116+ null ,
117+ injector ,
118+ '/base' ,
119+ '/'
120+ )
96121
97122 response . once ( 'end' , ( ) => {
98123 expect ( nextSpy ) . not . to . have . been . called
@@ -104,7 +129,14 @@ describe('middleware.karma', () => {
104129 } )
105130
106131 it ( 'should serve /?id=xxx' , ( done ) => {
107- handler = createKarmaMiddleware ( null , serveFile , null , '/base' , '/' )
132+ handler = createKarmaMiddleware (
133+ null ,
134+ serveFile ,
135+ null ,
136+ injector ,
137+ '/base' ,
138+ '/'
139+ )
108140
109141 response . once ( 'end' , ( ) => {
110142 expect ( nextSpy ) . not . to . have . been . called
@@ -116,7 +148,14 @@ describe('middleware.karma', () => {
116148 } )
117149
118150 it ( 'should serve /?x-ua-compatible with replaced values' , ( done ) => {
119- handler = createKarmaMiddleware ( null , serveFile , null , '/base' , '/' )
151+ handler = createKarmaMiddleware (
152+ null ,
153+ serveFile ,
154+ null ,
155+ injector ,
156+ '/base' ,
157+ '/'
158+ )
120159
121160 response . once ( 'end' , ( ) => {
122161 expect ( nextSpy ) . not . to . have . been . called
@@ -351,4 +390,47 @@ describe('middleware.karma', () => {
351390 done ( )
352391 } )
353392 } )
393+
394+ it ( 'should update handle updated configs' , ( done ) => {
395+ let i = 0
396+ handler = createKarmaMiddleware (
397+ filesDeferred . promise ,
398+ serveFile ,
399+ null ,
400+ {
401+ get ( val ) {
402+ if ( val === 'config.client' ) {
403+ i ++
404+ if ( i === 1 ) {
405+ return { foo : 'bar' }
406+ } else {
407+ return { foo : 'baz' }
408+ }
409+ } else {
410+ return null
411+ }
412+ }
413+ } ,
414+ '/base/path' ,
415+ '/__karma__/'
416+ )
417+
418+ includedFiles ( [
419+ new MockFile ( '/first.js' )
420+ ] )
421+ fsMock . _touchFile ( '/karma/static/debug.html' , 1 , '%CLIENT_CONFIG%' )
422+
423+ response . once ( 'end' , ( ) => {
424+ expect ( response ) . to . beServedAs ( 200 , 'window.__karma__.config = {"foo":"bar"};\n' )
425+
426+ response = new HttpResponseMock ( )
427+ callHandlerWith ( '/__karma__/debug.html' )
428+ response . once ( 'end' , ( ) => {
429+ expect ( response ) . to . beServedAs ( 200 , 'window.__karma__.config = {"foo":"baz"};\n' )
430+ done ( )
431+ } )
432+ } )
433+
434+ callHandlerWith ( '/__karma__/debug.html' )
435+ } )
354436} )
0 commit comments