Skip to content

Commit 08294bb

Browse files
Marick van TuilMarick van Tuil
authored andcommitted
Implement a retry
1 parent 9513b53 commit 08294bb

1 file changed

Lines changed: 26 additions & 2 deletions

File tree

tests/CloudTasksApiTest.php

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ public function it_can_pause_queues(): void
156156
CloudTasksApi::pause($queueName);
157157

158158
// Assert
159-
$this->assertEquals(State::PAUSED, $this->getQueueState($queueName));
159+
$this->assertEquals(State::PAUSED, $this->waitForQueueState($queueName, State::PAUSED));
160160
}
161161

162162
#[Test]
@@ -174,14 +174,38 @@ public function it_can_resume_queues(): void
174174
CloudTasksApi::resume($queueName);
175175

176176
// Assert
177-
$this->assertEquals(State::RUNNING, $this->getQueueState($queueName));
177+
$this->assertEquals(State::RUNNING, $this->waitForQueueState($queueName, State::RUNNING));
178178
}
179179

180180
private function getQueueState(string $queue): int
181181
{
182182
return $this->client->getQueue(GetQueueRequest::build($queue))->getState();
183183
}
184184

185+
private function waitForQueueState(string $queue, int $waitForState): ?int
186+
{
187+
$state = null;
188+
$attempts = 0;
189+
190+
while ($state !== $waitForState) {
191+
$state = $this->getQueueState($queue);
192+
193+
if ($state === $waitForState) {
194+
return $state;
195+
}
196+
197+
$attempts++;
198+
199+
if ($attempts >= 10) {
200+
break;
201+
}
202+
203+
sleep(1);
204+
}
205+
206+
return $state;
207+
}
208+
185209
private function ensureQueueIs(string $queue, int $desiredState): void
186210
{
187211
$currentState = $this->getQueueState($queue);

0 commit comments

Comments
 (0)