@@ -797,64 +797,64 @@ describe('SnsSqsPermissionConsumer', () => {
797797 await diContainer . dispose ( )
798798 } )
799799
800- it . each ( [ false , true ] ) (
801- 'using 2 consumers with heartbeat -> %s' ,
802- async ( heartbeatEnabled ) => {
803- let consumer1IsProcessing = false
804- let consumer1Counter = 0
805- let consumer2Counter = 0
806-
807- const consumer1 = new SnsSqsPermissionConsumer ( diContainer . cradle , {
808- creationConfig : {
809- topic : { Name : topicName } ,
810- queue : {
811- QueueName : queueName ,
812- Attributes : { VisibilityTimeout : '2' } ,
813- } ,
814- } ,
815- consumerOverrides : {
816- heartbeatInterval : heartbeatEnabled ? 1 : undefined ,
817- } ,
818- removeHandlerOverride : async ( ) => {
819- consumer1IsProcessing = true
820- await setTimeout ( 3100 ) // Wait to the visibility timeout to expire
821- consumer1Counter ++
822- consumer1IsProcessing = false
823- return { result : 'success' }
824- } ,
825- } )
826- await consumer1 . start ( )
800+ it . each ( [ false , true ] ) ( 'using 2 consumers with heartbeat -> %s' , async ( heartbeatEnabled ) => {
801+ let consumer1IsProcessing = false
802+ let consumer1Counter = 0
803+ let consumer2Counter = 0
827804
828- const consumer2 = new SnsSqsPermissionConsumer ( diContainer . cradle , {
829- locatorConfig : {
830- queueUrl : consumer1 . subscriptionProps . queueUrl ,
831- topicArn : consumer1 . subscriptionProps . topicArn ,
832- subscriptionArn : consumer1 . subscriptionProps . subscriptionArn ,
833- } ,
834- removeHandlerOverride : ( ) => {
835- consumer2Counter ++
836- return Promise . resolve ( { result : 'success' } )
805+ const consumer1 = new SnsSqsPermissionConsumer ( diContainer . cradle , {
806+ creationConfig : {
807+ topic : { Name : topicName } ,
808+ queue : {
809+ QueueName : queueName ,
810+ Attributes : { VisibilityTimeout : '2' } ,
837811 } ,
838- } )
839- const publisher = new SnsPermissionPublisher ( diContainer . cradle , {
840- locatorConfig : { topicArn : consumer1 . subscriptionProps . topicArn } ,
841- } )
812+ } ,
813+ consumerOverrides : {
814+ heartbeatInterval : heartbeatEnabled ? 1 : undefined ,
815+ } ,
816+ removeHandlerOverride : async ( ) => {
817+ consumer1IsProcessing = true
818+ await setTimeout ( 3100 ) // Wait to the visibility timeout to expire
819+ consumer1Counter ++
820+ consumer1IsProcessing = false
821+ return { result : 'success' }
822+ } ,
823+ } )
824+ await consumer1 . start ( )
842825
843- await publisher . publish ( { id : '10' , messageType : 'remove' } )
844- // wait for consumer1 to start processing to start second consumer
845- await waitAndRetry ( ( ) => consumer1IsProcessing , 5 , 5 )
846- await consumer2 . start ( )
826+ const consumer2 = new SnsSqsPermissionConsumer ( diContainer . cradle , {
827+ locatorConfig : {
828+ queueUrl : consumer1 . subscriptionProps . queueUrl ,
829+ topicArn : consumer1 . subscriptionProps . topicArn ,
830+ subscriptionArn : consumer1 . subscriptionProps . subscriptionArn ,
831+ } ,
832+ removeHandlerOverride : ( ) => {
833+ consumer2Counter ++
834+ return Promise . resolve ( { result : 'success' } )
835+ } ,
836+ } )
837+ const publisher = new SnsPermissionPublisher ( diContainer . cradle , {
838+ locatorConfig : { topicArn : consumer1 . subscriptionProps . topicArn } ,
839+ } )
840+
841+ await publisher . publish ( { id : '10' , messageType : 'remove' } )
842+ // wait for consumer1 to start processing to start second consumer
843+ await waitAndRetry ( ( ) => consumer1IsProcessing , 5 , 5 )
844+ await consumer2 . start ( )
847845
848- // wait for both consumers to process message
849- await waitAndRetry ( ( ) => consumer1Counter > 0 && consumer2Counter > 0 , 100 , 40 )
846+ // wait for consumer1 to process, and consumer2 only when heartbeat is disabled
847+ await waitAndRetry (
848+ ( ) => consumer1Counter > 0 && ( heartbeatEnabled || consumer2Counter > 0 ) ,
849+ 100 ,
850+ 40 ,
851+ )
850852
851- expect ( consumer1Counter ) . toBe ( 1 )
852- expect ( consumer2Counter ) . toBe ( heartbeatEnabled ? 0 : 1 )
853+ expect ( consumer1Counter ) . toBe ( 1 )
854+ expect ( consumer2Counter ) . toBe ( heartbeatEnabled ? 0 : 1 )
853855
854- await Promise . all ( [ consumer1 . close ( ) , consumer2 . close ( ) ] )
855- } ,
856- 10000 ,
857- )
856+ await Promise . all ( [ consumer1 . close ( ) , consumer2 . close ( ) ] )
857+ } , 10000 )
858858 } )
859859
860860 describe ( 'exponential backoff retry' , ( ) => {
0 commit comments