@@ -11,7 +11,8 @@ var Log = require('./logger'),
11
11
chalk = require ( 'chalk' ) ,
12
12
mime = require ( 'mime' ) ,
13
13
send = require ( 'send' ) ,
14
- vm = require ( 'vm' ) ;
14
+ vm = require ( 'vm' ) ,
15
+ CircularJSON = require ( 'circular-json' ) ;
15
16
16
17
exports . Server = function Server ( bsClient , workers , config , callback ) {
17
18
var testFilePaths = ( Array . isArray ( config . test_path ) ? config . test_path : [ config . test_path ] )
@@ -64,6 +65,10 @@ exports.Server = function Server(bsClient, workers, config, callback) {
64
65
var jsReportersScript = fs . readFileSync ( jsReportersPath , {
65
66
encoding : 'utf8'
66
67
} ) ;
68
+ var circularJSONPath = path . join ( __dirname , '../node_modules/circular-json/build/circular-json.js' ) ;
69
+ var circularJSONScript = fs . readFileSync ( circularJSONPath , {
70
+ encoding : 'utf8'
71
+ } ) ;
67
72
68
73
if ( pathMatches ) {
69
74
var framework = config [ 'test_framework' ] ;
@@ -75,6 +80,7 @@ exports.Server = function Server(bsClient, workers, config, callback) {
75
80
} ) ;
76
81
77
82
patch += '<script type="text/javascript">' + jsReportersScript + '</script>' ;
83
+ patch += '<script type="text/javascript">' + circularJSONScript + '</script>' ;
78
84
79
85
// adding framework scripts
80
86
if ( framework === 'jasmine' ) {
@@ -238,13 +244,13 @@ exports.Server = function Server(bsClient, workers, config, callback) {
238
244
var query = null ;
239
245
240
246
try {
241
- query = JSON . parse ( body ) ;
247
+ query = CircularJSON . parse ( body ) ;
242
248
} catch ( e ) {
243
249
logger . info ( '[%s] Exception in parsing log' , worker . string ) ;
244
250
logger . info ( '[%s] Log: ' + qs . parse ( body ) . data , worker . string ) ;
245
251
}
246
252
247
- logger . trace ( '[%s] _progress' , worker . id , JSON . stringify ( query ) ) ;
253
+ logger . trace ( '[%s] _progress' , worker . id , CircularJSON . stringify ( query ) ) ;
248
254
249
255
if ( query && query . test && query . test . errors ) {
250
256
var browserReport = getBrowserReport ( browserInfo ) ;
@@ -275,10 +281,10 @@ exports.Server = function Server(bsClient, workers, config, callback) {
275
281
276
282
var query = null ;
277
283
try {
278
- query = JSON . parse ( body ) ;
284
+ query = CircularJSON . parse ( body ) ;
279
285
} catch ( e ) { }
280
286
281
- logger . trace ( '[%s] _report' , worker . id , JSON . stringify ( query ) ) ;
287
+ logger . trace ( '[%s] _report' , worker . id , CircularJSON . stringify ( query ) ) ;
282
288
283
289
if ( query === null ) {
284
290
logger . info ( '[%s] Null response from remote Browser' , request . headers [ 'x-browser-string' ] ) ;
0 commit comments