@@ -52,7 +52,6 @@ import {
5252 DescribeStackResult ,
5353 DescribeChangeSetParams ,
5454 DescribeChangeSetResult ,
55- DescribeEventsParams ,
5655 DescribeEventsResult ,
5756} from '../../../src/stacks/StackRequestType' ;
5857import {
@@ -928,83 +927,53 @@ describe('StackActionHandler', () => {
928927 } ) ;
929928
930929 describe ( 'describeEventsHandler' , ( ) => {
931- it ( 'should fetch events for stack' , async ( ) => {
932- mockComponents . stackOperationEventManager . fetchEvents . resolves ( {
933- operations : [ { operationId : 'op1' , events : [ ] } ] ,
934- nextToken : undefined ,
930+ it ( 'should fetch and group events by operation ID' , async ( ) => {
931+ mockComponents . cfnService . describeEvents . resolves ( {
932+ OperationEvents : [
933+ { EventId : '1' , OperationId : 'op1' , Timestamp : new Date ( '2024-01-01' ) } ,
934+ { EventId : '2' , OperationId : 'op1' , Timestamp : new Date ( '2024-01-02' ) } ,
935+ { EventId : '3' , OperationId : 'op2' , Timestamp : new Date ( '2024-01-03' ) } ,
936+ ] ,
937+ $metadata : { } ,
935938 } ) ;
936939
937940 const handler = describeEventsHandler ( mockComponents ) ;
938941 const result = ( await handler ( { stackName : 'test-stack' } , CancellationToken . None ) ) as DescribeEventsResult ;
939942
940- expect ( result . operations ) . toHaveLength ( 1 ) ;
941- expect ( result . nextToken ) . toBeUndefined ( ) ;
942- expect ( mockComponents . stackOperationEventManager . fetchEvents . calledWith ( 'test-stack' , undefined ) ) . toBe (
943- true ,
944- ) ;
943+ expect ( result . operations ) . toHaveLength ( 2 ) ;
944+ expect ( result . operations [ 0 ] . operationId ) . toBe ( 'op1' ) ;
945+ expect ( result . operations [ 0 ] . events ) . toHaveLength ( 2 ) ;
945946 } ) ;
946947
947- it ( 'should refresh events when refresh flag is true' , async ( ) => {
948- mockComponents . stackOperationEventManager . refresh . resolves ( {
949- operations : [ { operationId : 'op1' , events : [ ] } ] ,
950- gapDetected : false ,
951- } ) ;
948+ it ( 'should pass all parameters to API' , async ( ) => {
949+ mockComponents . cfnService . describeEvents . resolves ( { OperationEvents : [ ] , $metadata : { } } ) ;
952950
953951 const handler = describeEventsHandler ( mockComponents ) ;
954- const result = ( await handler (
955- { stackName : 'test-stack' , refresh : true } ,
956- CancellationToken . None ,
957- ) ) as DescribeEventsResult ;
958-
959- expect ( result . operations ) . toHaveLength ( 1 ) ;
960- expect ( result . gapDetected ) . toBe ( false ) ;
961- expect ( mockComponents . stackOperationEventManager . refresh . calledWith ( 'test-stack' ) ) . toBe ( true ) ;
962- } ) ;
963-
964- it ( 'should pass nextToken for pagination' , async ( ) => {
965- mockComponents . stackOperationEventManager . fetchEvents . resolves ( {
966- operations : [ ] ,
967- nextToken : 'token123' ,
968- } ) ;
969-
970- const handler = describeEventsHandler ( mockComponents ) ;
971- const result = ( await handler (
972- { stackName : 'test-stack' , nextToken : 'token123' } ,
952+ await handler (
953+ {
954+ stackName : 'test-stack' ,
955+ changeSetName : 'cs' ,
956+ operationId : 'op' ,
957+ failedEventsOnly : true ,
958+ nextToken : 'token' ,
959+ } ,
973960 CancellationToken . None ,
974- ) ) as DescribeEventsResult ;
975-
976- expect ( result . nextToken ) . toBe ( 'token123' ) ;
977- expect ( mockComponents . stackOperationEventManager . fetchEvents . calledWith ( 'test-stack' , 'token123' ) ) . toBe (
978- true ,
979961 ) ;
980- } ) ;
981-
982- it ( 'should return gapDetected from refresh' , async ( ) => {
983- mockComponents . stackOperationEventManager . refresh . resolves ( {
984- operations : [ ] ,
985- gapDetected : true ,
986- } ) ;
987-
988- const handler = describeEventsHandler ( mockComponents ) ;
989- const result = ( await handler (
990- { stackName : 'test-stack' , refresh : true } ,
991- CancellationToken . None ,
992- ) ) as DescribeEventsResult ;
993-
994- expect ( result . gapDetected ) . toBe ( true ) ;
995- } ) ;
996-
997- it ( 'should throw error when stackName is missing with refresh' , async ( ) => {
998- const handler = describeEventsHandler ( mockComponents ) ;
999962
1000- await expect (
1001- handler ( { operationId : 'op-123' , refresh : true } as DescribeEventsParams , CancellationToken . None ) ,
1002- ) . rejects . toThrow ( ) ;
963+ expect (
964+ mockComponents . cfnService . describeEvents . calledWith ( {
965+ StackName : 'test-stack' ,
966+ ChangeSetName : 'cs' ,
967+ OperationId : 'op' ,
968+ FailedEventsOnly : true ,
969+ NextToken : 'token' ,
970+ } ) ,
971+ ) . toBe ( true ) ;
1003972 } ) ;
1004973
1005974 it ( 'should handle service errors' , async ( ) => {
1006975 const serviceError = new Error ( 'Service error' ) ;
1007- mockComponents . stackOperationEventManager . fetchEvents . rejects ( serviceError ) ;
976+ mockComponents . cfnService . describeEvents . rejects ( serviceError ) ;
1008977
1009978 const handler = describeEventsHandler ( mockComponents ) ;
1010979
0 commit comments