@@ -1711,6 +1711,7 @@ describe('Retry mechanism tests', () => {
17111711
17121712 it ( 'calls publishRetryMessage for each valid message when job is queued' , async ( ) => {
17131713 const messages = createTestMessages ( 3 ) ;
1714+ mockCreateRunner . mockResolvedValue ( [ 'i-12345' , 'i-67890' , 'i-abcdef' ] ) ; // Create all requested runners
17141715
17151716 await scaleUpModule . scaleUp ( messages ) ;
17161717
@@ -1762,7 +1763,7 @@ describe('Retry mechanism tests', () => {
17621763 ) ;
17631764 } ) ;
17641765
1765- it ( 'calls publishRetryMessage even when maximum runners is reached' , async ( ) => {
1766+ it ( 'does not call publishRetryMessage when maximum runners is reached and messages are marked invalid ' , async ( ) => {
17661767 process . env . RUNNERS_MAXIMUM_COUNT = '0' ; // No runners can be created
17671768
17681769 const messages = createTestMessages ( 2 ) ;
@@ -1776,8 +1777,9 @@ describe('Retry mechanism tests', () => {
17761777 runnerOwner : TEST_DATA_SINGLE . repositoryOwner ,
17771778 } ) ;
17781779
1779- // publishRetryMessage should still be called even though no runners will be created
1780- expect ( mockPublishRetryMessage ) . toHaveBeenCalledTimes ( 2 ) ;
1780+ // publishRetryMessage should NOT be called because messages are marked as invalid
1781+ // Invalid messages go back to the SQS queue and will be retried there
1782+ expect ( mockPublishRetryMessage ) . not . toHaveBeenCalled ( ) ;
17811783 expect ( createRunner ) . not . toHaveBeenCalled ( ) ;
17821784 } ) ;
17831785
@@ -1801,6 +1803,7 @@ describe('Retry mechanism tests', () => {
18011803
18021804 it ( 'calls publishRetryMessage when ENABLE_JOB_QUEUED_CHECK is false' , async ( ) => {
18031805 process . env . ENABLE_JOB_QUEUED_CHECK = 'false' ;
1806+ mockCreateRunner . mockResolvedValue ( [ 'i-12345' , 'i-67890' ] ) ; // Create all requested runners
18041807
18051808 const messages = createTestMessages ( 2 ) ;
18061809
@@ -1812,6 +1815,7 @@ describe('Retry mechanism tests', () => {
18121815 } ) ;
18131816
18141817 it ( 'calls publishRetryMessage for each message in a multi-runner scenario' , async ( ) => {
1818+ mockCreateRunner . mockResolvedValue ( [ 'i-12345' , 'i-67890' , 'i-abcdef' , 'i-11111' , 'i-22222' ] ) ; // Create all requested runners
18151819 const messages = createTestMessages ( 5 ) ;
18161820
18171821 await scaleUpModule . scaleUp ( messages ) ;
@@ -1828,8 +1832,9 @@ describe('Retry mechanism tests', () => {
18281832 } ) ;
18291833 } ) ;
18301834
1831- it ( 'calls publishRetryMessage before runner creation' , async ( ) => {
1835+ it ( 'calls publishRetryMessage after runner creation' , async ( ) => {
18321836 const messages = createTestMessages ( 1 ) ;
1837+ mockCreateRunner . mockResolvedValue ( [ 'i-12345' ] ) ; // Create the requested runner
18331838
18341839 const callOrder : string [ ] = [ ] ;
18351840 mockPublishRetryMessage . mockImplementation ( ( ) => {
@@ -1843,7 +1848,7 @@ describe('Retry mechanism tests', () => {
18431848
18441849 await scaleUpModule . scaleUp ( messages ) ;
18451850
1846- expect ( callOrder ) . toEqual ( [ 'publishRetryMessage ' , 'createRunner ' ] ) ;
1851+ expect ( callOrder ) . toEqual ( [ 'createRunner ' , 'publishRetryMessage ' ] ) ;
18471852 } ) ;
18481853} ) ;
18491854
0 commit comments