feat: 添加结算功能,更新 TicketItem 模型以支持最新结算详情,增强 DrawTickService 以自动处理结算,更新 TicketWalletService 以支持派彩入账,扩展 API 路由以管理结算批次和奖池
This commit is contained in:
24
tests/Feature/SettlementMatcherRegistryCompletenessTest.php
Normal file
24
tests/Feature/SettlementMatcherRegistryCompletenessTest.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
use App\Models\PlayType;
|
||||
use App\Services\Settlement\Matchers\NoopSettlementMatcher;
|
||||
use App\Services\Settlement\SettlementMatcherRegistry;
|
||||
use Database\Seeders\PlayTypeSeeder;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
|
||||
uses(RefreshDatabase::class);
|
||||
|
||||
beforeEach(fn () => $this->seed(PlayTypeSeeder::class));
|
||||
|
||||
test('every play_types.play_code maps to a non-noop settlement matcher', function (): void {
|
||||
$reg = app(SettlementMatcherRegistry::class);
|
||||
foreach (PlayType::query()->orderBy('play_code')->pluck('play_code') as $code) {
|
||||
$matcher = $reg->for((string) $code);
|
||||
expect($matcher)->not->toBeInstanceOf(NoopSettlementMatcher::class);
|
||||
}
|
||||
});
|
||||
|
||||
test('half_box reuses the same matcher instance as big spread', function (): void {
|
||||
$reg = app(SettlementMatcherRegistry::class);
|
||||
expect($reg->for('half_box'))->toBe($reg->for('big'));
|
||||
});
|
||||
Reference in New Issue
Block a user