@@ -233,8 +233,7 @@ exports.verifyAccessDenied = verifyAccessDenied;
233233 */
234234exports . verifyUnknownDocumentType = verifyUnknownDocumentType ;
235235
236-
237- var expect = require ( 'expect.js' ) ;
236+ var assert = require ( 'assert' ) ;
238237var simple = require ( 'simple-mock' ) ;
239238var fs = require ( 'fs' ) ;
240239var syncFunctionLoader = require ( './sync-function-loader.js' ) ;
@@ -291,25 +290,25 @@ function init() {
291290}
292291
293292function verifyRequireAccess ( expectedChannels ) {
294- expect ( requireAccess . callCount ) . to . be . greaterThan ( 0 ) ;
293+ assert . ok ( requireAccess . callCount > 0 , 'Require access not called when expected' ) ;
295294
296295 checkAuthorizations ( expectedChannels , requireAccess . calls [ 0 ] . arg , 'channel' ) ;
297296}
298297
299298function verifyRequireRole ( expectedRoles ) {
300- expect ( requireRole . callCount ) . to . be . greaterThan ( 0 ) ;
299+ assert . ok ( requireRole . callCount > 0 , 'Require role not called when expected' ) ;
301300
302301 checkAuthorizations ( expectedRoles , requireRole . calls [ 0 ] . arg , 'role' ) ;
303302}
304303
305304function verifyRequireUser ( expectedUsers ) {
306- expect ( requireUser . callCount ) . to . be . greaterThan ( 0 ) ;
305+ assert . ok ( requireUser . callCount > 0 , 'Require user not called when expected' ) ;
307306
308307 checkAuthorizations ( expectedUsers , requireUser . calls [ 0 ] . arg , 'user' ) ;
309308}
310309
311310function verifyChannelAssignment ( expectedChannels ) {
312- expect ( channel . callCount ) . to . be ( 1 ) ;
311+ assert . equal ( channel . callCount , 1 , 'Expected channel assignment was not made' ) ;
313312
314313 checkAuthorizations ( expectedChannels , channel . calls [ 0 ] . arg , 'channel' ) ;
315314}
@@ -328,14 +327,14 @@ function checkAuthorizations(expectedAuthorizations, actualAuthorizations, autho
328327 for ( var expectedAuthIndex = 0 ; expectedAuthIndex < expectedAuthorizations . length ; expectedAuthIndex ++ ) {
329328 var expectedAuth = expectedAuthorizations [ expectedAuthIndex ] ;
330329 if ( actualAuthorizations . indexOf ( expectedAuth ) < 0 ) {
331- expect ( ) . fail ( 'Expected ' + authorizationType + ' was not encountered: ' + expectedAuth ) ;
330+ assert . fail ( 'Expected ' + authorizationType + ' was not encountered: ' + expectedAuth ) ;
332331 }
333332 }
334333
335334 for ( var actualAuthIndex = 0 ; actualAuthIndex < actualAuthorizations . length ; actualAuthIndex ++ ) {
336335 var actualAuth = actualAuthorizations [ actualAuthIndex ] ;
337336 if ( expectedAuthorizations . indexOf ( actualAuth ) < 0 ) {
338- expect ( ) . fail ( 'Unexpected ' + authorizationType + ' encountered: ' + actualAuth ) ;
337+ assert . fail ( 'Unexpected ' + authorizationType + ' encountered: ' + actualAuth ) ;
339338 }
340339 }
341340}
@@ -409,7 +408,7 @@ function verifyChannelAccessAssignment(expectedAssignment) {
409408 }
410409
411410 if ( ! accessAssignmentCallExists ( access , expectedUsersAndRoles , expectedChannels ) ) {
412- expect ( ) . fail (
411+ assert . fail (
413412 'Missing expected call to assign channel access (' +
414413 JSON . stringify ( expectedChannels ) +
415414 ') to users and roles (' +
@@ -442,7 +441,7 @@ function verifyRoleAccessAssignment(expectedAssignment) {
442441 }
443442
444443 if ( ! accessAssignmentCallExists ( role , expectedUsers , expectedRoles ) ) {
445- expect ( ) . fail (
444+ assert . fail (
446445 'Missing expected call to assign role access (' +
447446 JSON . stringify ( expectedRoles ) +
448447 ') to users (' +
@@ -467,26 +466,26 @@ function verifyAccessAssignments(expectedAccessAssignments) {
467466 }
468467
469468 if ( access . callCount !== expectedAccessCalls ) {
470- expect ( ) . fail ( 'Number of calls to assign channel access (' + access . callCount + ') does not match expected (' + expectedAccessCalls + ')' ) ;
469+ assert . fail ( 'Number of calls to assign channel access (' + access . callCount + ') does not match expected (' + expectedAccessCalls + ')' ) ;
471470 }
472471
473472 if ( role . callCount !== expectedRoleCalls ) {
474- expect ( ) . fail ( 'Number of calls to assign role access (' + role . callCount + ') does not match expected (' + expectedRoleCalls + ')' ) ;
473+ assert . fail ( 'Number of calls to assign role access (' + role . callCount + ') does not match expected (' + expectedRoleCalls + ')' ) ;
475474 }
476475}
477476
478477function verifyOperationChannelsAssigned ( doc , oldDoc , expectedChannels ) {
479478 if ( channel . callCount !== 1 ) {
480- expect ( ) . fail ( 'Document failed authorization and/or validation' ) ;
479+ assert . fail ( 'Document failed authorization and/or validation' ) ;
481480 }
482481
483482 var actualChannels = channel . calls [ 0 ] . arg ;
484483 if ( expectedChannels instanceof Array ) {
485484 for ( var channelIndex = 0 ; channelIndex < expectedChannels . length ; channelIndex ++ ) {
486- expect ( actualChannels ) . to . contain ( expectedChannels [ channelIndex ] ) ;
485+ assert . ok ( actualChannels . indexOf ( expectedChannels [ channelIndex ] ) >= 0 , 'Expected channel "' + expectedChannels [ channelIndex ] + '" was not authorized' ) ;
487486 }
488487 } else {
489- expect ( actualChannels ) . to . contain ( expectedChannels ) ;
488+ assert . ok ( actualChannels . indexOf ( expectedChannels ) >= 0 , 'Expected assignment channel not found: "' + expectedChannels + '" actual: "' + actualChannels + '"' ) ;
490489 }
491490}
492491
@@ -497,8 +496,8 @@ function verifyAuthorization(expectedAuthorization) {
497496 // for authorization
498497 expectedOperationChannels = expectedAuthorization ;
499498 verifyRequireAccess ( expectedAuthorization ) ;
500- expect ( requireRole . callCount ) . to . be ( 0 ) ;
501- expect ( requireUser . callCount ) . to . be ( 0 ) ;
499+ assert . equal ( requireRole . callCount , 0 , 'Require role called unexpectedly: ' + requireRole . calls ) ;
500+ assert . equal ( requireUser . callCount , 0 , 'Require user called unexpectedly: ' + requireUser . calls ) ;
502501 } else {
503502 if ( expectedAuthorization . expectedChannels ) {
504503 expectedOperationChannels = expectedAuthorization . expectedChannels ;
@@ -508,13 +507,13 @@ function verifyAuthorization(expectedAuthorization) {
508507 if ( expectedAuthorization . expectedRoles ) {
509508 verifyRequireRole ( expectedAuthorization . expectedRoles ) ;
510509 } else {
511- expect ( requireRole . callCount ) . to . be ( 0 ) ;
510+ assert . equal ( requireRole . callCount , 0 , 'Require role called unexpectedly: ' + requireRole . calls ) ;
512511 }
513512
514513 if ( expectedAuthorization . expectedUsers ) {
515514 verifyRequireUser ( expectedAuthorization . expectedUsers ) ;
516515 } else {
517- expect ( requireUser . callCount ) . to . be ( 0 ) ;
516+ assert . equal ( requireUser . callCount , 0 , 'Require user called unexpectedly: ' + requireUser . calls ) ;
518517 }
519518
520519 if ( ! ( expectedAuthorization . expectedChannels ) && ! ( expectedAuthorization . expectedRoles ) && ! ( expectedAuthorization . expectedUsers ) ) {
@@ -550,13 +549,16 @@ function verifyDocumentDeleted(oldDoc, expectedAuthorization, expectedAccessAssi
550549}
551550
552551function verifyDocumentRejected ( doc , oldDoc , docType , expectedErrorMessages , expectedAuthorization ) {
553- expect ( syncFunction ) . withArgs ( doc , oldDoc ) . to . throwException ( function ( ex ) {
552+ try {
553+ syncFunction ( doc , oldDoc ) ;
554+ assert . fail ( 'No errors thrown when some expected' ) ;
555+ } catch ( ex ) {
554556 verifyValidationErrors ( docType , expectedErrorMessages , ex ) ;
555- } ) ;
557+ }
556558
557559 verifyAuthorization ( expectedAuthorization ) ;
558560
559- expect ( channel . callCount ) . to . equal ( 0 ) ;
561+ assert . equal ( channel . callCount , 0 , 'Channel assignment made unexpectedly: ' + channel . calls ) ;
560562}
561563
562564function verifyDocumentNotCreated ( doc , docType , expectedErrorMessages , expectedAuthorization ) {
@@ -582,26 +584,27 @@ function verifyValidationErrors(docType, expectedErrorMessages, exception) {
582584 var exceptionMessageMatches = validationErrorRegex . exec ( exception . forbidden ) ;
583585 var actualErrorMessages ;
584586 if ( exceptionMessageMatches ) {
585- expect ( exceptionMessageMatches . length ) . to . be ( 3 ) ;
587+ assert . equal ( exceptionMessageMatches . length , 3 ) ;
586588
587589 var invalidDocMessage = exceptionMessageMatches [ 1 ] . trim ( ) ;
588- expect ( invalidDocMessage ) . to . equal ( 'Invalid ' + docType + ' document' ) ;
590+ assert . equal ( invalidDocMessage , 'Invalid ' + docType + ' document' , 'Expected invalid document type message not reported ') ;
589591
590592 actualErrorMessages = exceptionMessageMatches [ 2 ] . trim ( ) . split ( / ; \s * / ) ;
591593 } else {
592594 actualErrorMessages = [ exception . forbidden ] ;
593595 }
594596
595597 for ( var expectedErrorIndex = 0 ; expectedErrorIndex < expectedErrorMessages . length ; expectedErrorIndex ++ ) {
596- expect ( actualErrorMessages ) . to . contain ( expectedErrorMessages [ expectedErrorIndex ] ) ;
598+ var expectedErrorMsg = expectedErrorMessages [ expectedErrorIndex ] ;
599+ assert . ok ( actualErrorMessages . indexOf ( expectedErrorMsg ) >= 0 , 'Expected error message "' + expectedErrorMsg + '" not reported' ) ;
597600 }
598601
599602 // Rather than compare the sizes of the two lists, which leads to an obtuse error message on failure (e.g. "expected 2 to be 3"), ensure
600603 // that neither list of validation errors contains an element that does not exist in the other
601604 for ( var actualErrorIndex = 0 ; actualErrorIndex < actualErrorMessages . length ; actualErrorIndex ++ ) {
602605 var errorMessage = actualErrorMessages [ actualErrorIndex ] ;
603606 if ( expectedErrorMessages . indexOf ( errorMessage ) < 0 ) {
604- expect ( ) . fail ( 'Unexpected validation error: ' + errorMessage ) ;
607+ assert . fail ( 'Unexpected validation error: ' + errorMessage ) ;
605608 }
606609 }
607610}
@@ -631,32 +634,38 @@ function verifyAccessDenied(doc, oldDoc, expectedAuthorization) {
631634 requireRole = simple . stub ( ) . throwWith ( roleAccessDenied ) ;
632635 requireUser = simple . stub ( ) . throwWith ( userAccessDenied ) ;
633636
634- expect ( syncFunction ) . withArgs ( doc , oldDoc ) . to . throwException ( function ( ex ) {
637+ try {
638+ syncFunction ( doc , oldDoc ) ;
639+ assert . fail ( 'No errors thrown when some expected' ) ;
640+ } catch ( ex ) {
635641 if ( typeof ( expectedAuthorization ) === 'string' || expectedAuthorization instanceof Array ) {
636- expect ( ex ) . to . eql ( channelAccessDenied ) ;
642+ assert . equal ( ex , channelAccessDenied ) ;
637643 } else if ( countAuthorizationTypes ( expectedAuthorization ) === 0 ) {
638644 verifyRequireAccess ( [ ] ) ;
639645 } else if ( countAuthorizationTypes ( expectedAuthorization ) > 1 ) {
640- expect ( ex . forbidden ) . to . equal ( generalAuthFailedMessage ) ;
646+ assert . equal ( ex . forbidden , generalAuthFailedMessage , 'Expected authorization exception not met: ' + ex . forbidden ) ;
641647 } else if ( expectedAuthorization . expectedChannels ) {
642- expect ( ex ) . to . eql ( channelAccessDenied ) ;
648+ assert . ok ( ex instanceof Error && ex . message === channelAccessDenied . message , 'Expected channel authorization error not triggered' ) ;
643649 } else if ( expectedAuthorization . expectedRoles ) {
644- expect ( ex ) . to . eql ( roleAccessDenied ) ;
650+ assert . ok ( ex instanceof Error && ex . message === roleAccessDenied . message , 'Expected role authorization error not triggered' ) ;
645651 } else if ( expectedAuthorization . expectedUsers ) {
646- expect ( ex ) . to . eql ( userAccessDenied ) ;
652+ assert . ok ( ex instanceof Error && ex . message === userAccessDenied . message , 'Expected user authorization error not triggered' ) ;
647653 }
648- } ) ;
654+ }
649655
650656 verifyAuthorization ( expectedAuthorization ) ;
651657}
652658
653659function verifyUnknownDocumentType ( doc , oldDoc ) {
654- expect ( syncFunction ) . withArgs ( doc , oldDoc ) . to . throwException ( function ( ex ) {
655- expect ( ex . forbidden ) . to . equal ( 'Unknown document type' ) ;
656- } ) ;
660+ try {
661+ syncFunction ( doc , oldDoc ) ;
662+ assert . fail ( 'Expected unknown document type error not thrown' ) ;
663+ } catch ( ex ) {
664+ assert . equal ( ex . forbidden , 'Unknown document type' ) ;
665+ }
657666
658- expect ( requireAccess . callCount ) . to . be ( 0 ) ;
659- expect ( channel . callCount ) . to . be ( 0 ) ;
667+ assert . equal ( requireAccess . callCount , 0 , 'Unexpected require access call' ) ;
668+ assert . equal ( channel . callCount , 0 , 'Unexpected channel assignment call' ) ;
660669}
661670
662671// Sync Gateway configuration files use the backtick character to denote the beginning and end of a multiline string. The sync function
0 commit comments