Skip to content

Commit eacc271

Browse files
committed
update tests and workflow
1 parent c1481bb commit eacc271

File tree

2 files changed

+30
-19
lines changed

2 files changed

+30
-19
lines changed

.github/workflows/phpunit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ jobs:
140140
with:
141141
php-version: ${{ matrix.php-versions }}
142142
tools: composer, phive, phpunit
143-
extensions: intl, json, mbstring, gd, xdebug, xml, sqlite3, redis
143+
extensions: intl, json, mbstring, gd, xdebug, xml, sqlite3, sqlsrv, oci8, pgsql
144144
coverage: xdebug
145145
env:
146146
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

tests/DatabaseHandlerTest.php

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
namespace Tests;
1515

16+
use Closure;
1617
use CodeIgniter\I18n\Time;
1718
use CodeIgniter\Queue\Entities\QueueJob;
1819
use CodeIgniter\Queue\Enums\Status;
@@ -35,12 +36,22 @@ final class DatabaseHandlerTest extends TestCase
3536

3637
protected $seed = TestDatabaseQueueSeeder::class;
3738
private QueueConfig $config;
39+
private Closure $field;
3840

3941
protected function setUp(): void
4042
{
4143
parent::setUp();
4244

4345
$this->config = config(QueueConfig::class);
46+
47+
// handle filed custom type conversion for SQLSRV
48+
$this->field = function ($field) {
49+
if ($this->db->DBDriver === 'SQLSRV') {
50+
return "CONVERT(VARCHAR, {$field})";
51+
}
52+
53+
return $field;
54+
};
4455
}
4556

4657
public function testDatabaseHandler(): void
@@ -87,9 +98,9 @@ public function testPush(): void
8798

8899
$this->assertTrue($result);
89100
$this->seeInDatabase('queue_jobs', [
90-
'queue' => 'queue',
91-
'payload' => json_encode(['job' => 'success', 'data' => ['key' => 'value']]),
92-
'available_at' => '1703859316',
101+
'queue' => 'queue',
102+
($this->field)('payload') => json_encode(['job' => 'success', 'data' => ['key' => 'value']]),
103+
'available_at' => '1703859316',
93104
]);
94105
}
95106

@@ -105,10 +116,10 @@ public function testPushWithPriority(): void
105116

106117
$this->assertTrue($result);
107118
$this->seeInDatabase('queue_jobs', [
108-
'queue' => 'queue',
109-
'payload' => json_encode(['job' => 'success', 'data' => ['key' => 'value']]),
110-
'priority' => 'high',
111-
'available_at' => '1703859316',
119+
'queue' => 'queue',
120+
($this->field)('payload') => json_encode(['job' => 'success', 'data' => ['key' => 'value']]),
121+
'priority' => 'high',
122+
'available_at' => '1703859316',
112123
]);
113124
}
114125

@@ -121,20 +132,20 @@ public function testPushAndPopWithPriority(): void
121132

122133
$this->assertTrue($result);
123134
$this->seeInDatabase('queue_jobs', [
124-
'queue' => 'queue',
125-
'payload' => json_encode(['job' => 'success', 'data' => ['key1' => 'value1']]),
126-
'priority' => 'low',
127-
'available_at' => '1703859316',
135+
'queue' => 'queue',
136+
($this->field)('payload') => json_encode(['job' => 'success', 'data' => ['key1' => 'value1']]),
137+
'priority' => 'low',
138+
'available_at' => '1703859316',
128139
]);
129140

130141
$result = $handler->setPriority('high')->push('queue', 'success', ['key2' => 'value2']);
131142

132143
$this->assertTrue($result);
133144
$this->seeInDatabase('queue_jobs', [
134-
'queue' => 'queue',
135-
'payload' => json_encode(['job' => 'success', 'data' => ['key2' => 'value2']]),
136-
'priority' => 'high',
137-
'available_at' => '1703859316',
145+
'queue' => 'queue',
146+
($this->field)('payload') => json_encode(['job' => 'success', 'data' => ['key2' => 'value2']]),
147+
'priority' => 'high',
148+
'available_at' => '1703859316',
138149
]);
139150

140151
$result = $handler->pop('queue', ['high', 'low']);
@@ -347,9 +358,9 @@ public function testRetry(): void
347358
$this->assertSame($count, 1);
348359

349360
$this->seeInDatabase('queue_jobs', [
350-
'id' => 3,
351-
'queue' => 'queue1',
352-
'payload' => json_encode(['job' => 'failure', 'data' => []]),
361+
'id' => 3,
362+
'queue' => 'queue1',
363+
($this->field)('payload') => json_encode(['job' => 'failure', 'data' => []]),
353364
]);
354365
$this->dontSeeInDatabase('queue_jobs_failed', [
355366
'id' => 1,

0 commit comments

Comments
 (0)