@@ -13,10 +13,11 @@ import { DBInstance, DocumentDBClient } from '../../../shared/clients/docdbClien
1313
1414describe ( 'DBClusterNode' , function ( ) {
1515 let mockClient : DocumentDBClient
16+
1617 beforeEach ( ( ) => {
1718 mockClient = {
18- listClusters : sinon . stub ( ) . resolves ( [ ] ) , // Mock implementation
19- listInstances : sinon . stub ( ) . resolves ( [ ] ) , // Mock implementation
19+ listClusters : sinon . stub ( ) . resolves ( [ { DBClusterIdentifier : 'Cluster-1' , Status : 'available' } ] ) , // Mocked cluster
20+ listInstances : sinon . stub ( ) . resolves ( [ ] ) , // Mocked instances
2021 } as Partial < DocumentDBClient > as DocumentDBClient
2122
2223 DBClusterNode [ 'globalPollingArns' ] . clear ( )
@@ -32,12 +33,12 @@ describe('DBClusterNode', function () {
3233 const instanceB : DBInstance = { DBInstanceIdentifier : 'Instance-B' }
3334
3435 function assertInstanceNode ( node : AWSTreeNodeBase , expectedInstance : DBInstance ) : void {
35- assert . ok ( node instanceof DBInstanceNode , `Node ${ node } should be a Instance Node` )
36+ assert . ok ( node instanceof DBInstanceNode , `Node ${ node } should be an Instance Node` )
3637 assert . deepStrictEqual ( ( node as DBInstanceNode ) . instance , expectedInstance )
3738 }
3839
3940 it ( 'gets children' , async function ( ) {
40- ; ( mockClient . listInstances as sinon . SinonStub ) = sinon . stub ( ) . resolves ( [ instanceA , instanceB ] )
41+ ; ( mockClient . listInstances as sinon . SinonStub ) . resolves ( [ instanceA , instanceB ] )
4142 const node = new DBClusterNode ( parentNode , cluster , mockClient )
4243 const [ firstInstanceNode , secondInstanceNode , ...otherNodes ] = await node . getChildren ( )
4344
@@ -48,7 +49,6 @@ describe('DBClusterNode', function () {
4849
4950 it ( 'returns false for available status' , function ( ) {
5051 const clusterStatus = { ...cluster , Status : 'available' }
51-
5252 const node = new DBClusterNode ( parentNode , clusterStatus , mockClient )
5353 const requiresPolling = node . isStatusRequiringPolling ( )
5454
@@ -57,7 +57,6 @@ describe('DBClusterNode', function () {
5757
5858 it ( 'returns true for creating status' , function ( ) {
5959 const clusterStatus = { ...cluster , Status : 'creating' }
60-
6160 const node = new DBClusterNode ( parentNode , clusterStatus , mockClient )
6261 const requiresPolling = node . isStatusRequiringPolling ( )
6362
@@ -66,7 +65,6 @@ describe('DBClusterNode', function () {
6665
6766 it ( 'starts tracking changes when status requires polling' , function ( ) {
6867 const clusterStatus = { ...cluster , Status : 'creating' }
69-
7068 const trackChangesSpy = sinon . spy ( DBClusterNode . prototype , 'trackChanges' )
7169 const node = new DBClusterNode ( parentNode , clusterStatus , mockClient )
7270 const requiresPolling = node . isStatusRequiringPolling ( )
@@ -80,7 +78,6 @@ describe('DBClusterNode', function () {
8078
8179 it ( 'does not start tracking changes when status does not require polling' , function ( ) {
8280 const clusterStatus = { ...cluster , Status : 'available' }
83-
8481 const trackChangesSpy = sinon . spy ( DBClusterNode . prototype , 'trackChanges' )
8582 const node = new DBClusterNode ( parentNode , clusterStatus , mockClient )
8683 const requiresPolling = node . isStatusRequiringPolling ( )
@@ -92,9 +89,8 @@ describe('DBClusterNode', function () {
9289 trackChangesSpy . restore ( )
9390 } )
9491
95- it ( 'does not polling when status is available' , function ( ) {
92+ it ( 'does not poll when status is available' , function ( ) {
9693 const clusterStatus = { ...cluster , Status : 'available' }
97-
9894 const trackChangesSpy = sinon . spy ( DBClusterNode . prototype , 'trackChanges' )
9995 const node = new DBClusterNode ( parentNode , clusterStatus , mockClient )
10096 const requiresPolling = node . isStatusRequiringPolling ( )
@@ -107,12 +103,20 @@ describe('DBClusterNode', function () {
107103 } )
108104
109105 it ( 'has isPolling set to false and getStatus returns available when status is available' , async function ( ) {
110- const clusterStatus = { ... cluster , Status : 'available' }
111- mockClient . listClusters = sinon . stub ( ) . resolves ( [ clusterStatus ] )
106+ const clusterStatus = { DBClusterIdentifier : 'Cluster-1' , Status : 'available' }
107+ ; ( mockClient . listClusters as sinon . SinonStub ) . resolves ( [ clusterStatus ] )
112108
113109 const node = new DBClusterNode ( parentNode , clusterStatus , mockClient )
114110
115111 assert . strictEqual ( node . isPolling , false , 'Node should not be in polling state' )
116112 assert . strictEqual ( node . status , 'available' , 'getStatus should return available for the node' )
117113 } )
114+
115+ it ( 'handles missing clusters gracefully in getStatus' , async function ( ) {
116+ ; ( mockClient . listClusters as sinon . SinonStub ) . resolves ( [ ] )
117+ const node = new DBClusterNode ( parentNode , cluster , mockClient )
118+
119+ const status = await node . getStatus ( )
120+ assert . strictEqual ( status , undefined , 'getStatus should return undefined when no cluster is found' )
121+ } )
118122} )
0 commit comments