feat(core): harden sessions settlement and credit activity
Some checks failed
lotterLaravel CI / test (push) Has been cancelled
lotterLaravel E2E / e2e-api (push) Has been cancelled

This commit is contained in:
wchino
2026-07-22 20:53:43 +08:00
parent 35f6e46958
commit 15bd997c4e
48 changed files with 1920 additions and 93 deletions

View File

@@ -1,8 +1,8 @@
<?php
use App\Models\Draw;
use App\Models\BetProvider;
use App\Lottery\DrawStatus;
use App\Models\BetProvider;
use App\Models\DrawResultItem;
use App\Models\DrawResultBatch;
use App\Lottery\DrawResultBatchStatus;
@@ -134,6 +134,29 @@ test('draw result show includes neighbor draw numbers', function (): void {
->assertJsonPath('data.next_draw_no', '20260509-102');
});
test('draw result show accepts sequence numbers longer than three digits', function (): void {
seedMinimalPublishedDraw([
'draw_no' => '20260509-1001',
'business_date' => '2026-05-09',
'sequence_no' => 1001,
'status' => DrawStatus::Settled->value,
'start_time' => now()->subHour(),
'close_time' => now()->subMinutes(45),
'draw_time' => now()->subMinutes(30),
'cooling_end_time' => null,
'result_source' => 'rng',
'current_result_version' => 1,
'settle_version' => 1,
'is_reopened' => false,
], '4');
$this->getJson('/api/v1/draw/results/20260509-1001')
->assertOk()
->assertJsonPath('code', 0)
->assertJsonPath('data.draw_no', '20260509-1001')
->assertJsonPath('data.results.1st', '4444');
});
test('draw results include all published provider batches for the same draw', function (): void {
BetProvider::query()->updateOrCreate(['code' => 'SG'], ['name' => 'Singapore', 'is_enabled' => true, 'sort_order' => 10]);
BetProvider::query()->updateOrCreate(['code' => 'MY'], ['name' => 'Malaysia', 'is_enabled' => true, 'sort_order' => 20]);