Skip to content

Commit 0877476

Browse files
Ensure queues are only suffixed once
1 parent 1d9c4f8 commit 0877476

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/Illuminate/Queue/SqsQueue.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Aws\Sqs\SqsClient;
66
use Illuminate\Contracts\Queue\Queue as QueueContract;
77
use Illuminate\Queue\Jobs\SqsJob;
8+
use Illuminate\Support\Str;
89

910
class SqsQueue extends Queue implements QueueContract
1011
{
@@ -149,7 +150,7 @@ public function getQueue($queue)
149150
$queue = $queue ?: $this->default;
150151

151152
return filter_var($queue, FILTER_VALIDATE_URL) === false
152-
? rtrim($this->prefix, '/').'/'.$queue.$this->suffix
153+
? rtrim($this->prefix, '/').'/'.Str::finish($queue, $this->suffix)
153154
: $queue;
154155
}
155156

tests/Queue/QueueSqsQueueTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,4 +153,12 @@ public function testGetQueueProperlyResolvesUrlWithSuffix()
153153
$queueUrl = $this->baseUrl.'/'.$this->account.'/test'.$suffix;
154154
$this->assertEquals($queueUrl, $queue->getQueue('test'));
155155
}
156+
157+
public function testGetQueueEnsuresTheQueueIsOnlySuffixedOnce()
158+
{
159+
$queue = new SqsQueue($this->sqs, "{$this->queueName}-staging", $this->prefix, $suffix = '-staging');
160+
$this->assertEquals($this->queueUrl.$suffix, $queue->getQueue(null));
161+
$queueUrl = $this->baseUrl.'/'.$this->account.'/test'.$suffix;
162+
$this->assertEquals($queueUrl, $queue->getQueue('test-staging'));
163+
}
156164
}

0 commit comments

Comments
 (0)