@@ -129,4 +129,51 @@ func Test_Refresh_Cleanup(t *testing.T) {
129129 require .NoError (t , err )
130130 require .Len (t , backups .Items , 0 )
131131 })
132+
133+ t .Run ("Do not refresh if backup is creating" , func (t * testing.T ) {
134+ // Arrange
135+ fakeId := driver .BackupID (uuid .NewUUID ())
136+ createBackup := backupApi.ArangoBackup {
137+
138+ ObjectMeta : meta.ObjectMeta {
139+ Name : "backup" ,
140+ },
141+ Status : backupApi.ArangoBackupStatus {
142+ ArangoBackupState : backupApi.ArangoBackupState {
143+ State : backupApi .ArangoBackupStateCreating ,
144+ },
145+ Backup : & backupApi.ArangoBackupDetails {
146+ ID : string (fakeId ),
147+ },
148+ },
149+ }
150+ b , err := handler .client .BackupV1 ().ArangoBackups (tests .FakeNamespace ).Create (context .Background (), & createBackup , meta.CreateOptions {})
151+ require .NoError (t , err )
152+ require .NotNil (t , b )
153+ require .Equal (t , backupApi .ArangoBackupStateCreating , b .Status .State )
154+
155+ t .Run ("Refresh should not happen if there is Backup in creation state" , func (t * testing.T ) {
156+ require .NoError (t , handler .refreshDeployment (arangoDeployment ))
157+
158+ backups , err := handler .client .BackupV1 ().ArangoBackups (tests .FakeNamespace ).List (context .Background (), meta.ListOptions {})
159+ require .NoError (t , err )
160+ require .Len (t , backups .Items , 1 )
161+ require .NotNil (t , backups .Items [0 ].Status .Backup )
162+ require .EqualValues (t , fakeId , backups .Items [0 ].Status .Backup .ID )
163+ })
164+
165+ createBackup .Status .State = backupApi .ArangoBackupStateReady
166+ b , err = handler .client .BackupV1 ().ArangoBackups (tests .FakeNamespace ).UpdateStatus (context .Background (), & createBackup , meta.UpdateOptions {})
167+ require .NoError (t , err )
168+ require .NotNil (t , b )
169+ require .Equal (t , backupApi .ArangoBackupStateReady , b .Status .State )
170+
171+ t .Run ("Refresh should happen if there is Backup in ready state" , func (t * testing.T ) {
172+ require .NoError (t , handler .refreshDeployment (arangoDeployment ))
173+
174+ backups , err := handler .client .BackupV1 ().ArangoBackups (tests .FakeNamespace ).List (context .Background (), meta.ListOptions {})
175+ require .NoError (t , err )
176+ require .Len (t , backups .Items , 2 )
177+ })
178+ })
132179}
0 commit comments