feat: 新增赔率版本和玩法配置版本的删除接口,支持删除草稿版本
This commit is contained in:
@@ -2,8 +2,11 @@
|
||||
|
||||
use App\Models\PlayType;
|
||||
use App\Models\AdminUser;
|
||||
use App\Models\OddsVersion;
|
||||
use App\Models\RiskCapVersion;
|
||||
use App\Models\PlayConfigVersion;
|
||||
use App\Lottery\ConfigVersionStatus;
|
||||
use App\Lottery\ErrorCode;
|
||||
use Database\Seeders\CurrencySeeder;
|
||||
use Database\Seeders\PlayTypeSeeder;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
@@ -86,3 +89,65 @@ test('admin play config draft publish flow', function (): void {
|
||||
test('admin play-types requires authentication', function (): void {
|
||||
$this->getJson('/api/v1/admin/play-types')->assertUnauthorized();
|
||||
});
|
||||
|
||||
test('admin cannot delete active play config version', function (): void {
|
||||
$token = mintConfigAdminToken();
|
||||
$active = PlayConfigVersion::query()->where('status', ConfigVersionStatus::Active->value)->firstOrFail();
|
||||
|
||||
$this->deleteJson('/api/v1/admin/config/play-versions/'.$active->id, [], [
|
||||
'Authorization' => 'Bearer '.$token,
|
||||
])
|
||||
->assertStatus(400)
|
||||
->assertJsonPath('code', ErrorCode::ConfigVersionCannotDeleteActive->value);
|
||||
});
|
||||
|
||||
test('admin can delete draft play config version', function (): void {
|
||||
$token = mintConfigAdminToken();
|
||||
$create = $this->postJson('/api/v1/admin/config/play-versions', [
|
||||
'reason' => 'to delete',
|
||||
], ['Authorization' => 'Bearer '.$token]);
|
||||
$create->assertOk();
|
||||
$draftId = (int) $create->json('data.id');
|
||||
|
||||
$this->deleteJson('/api/v1/admin/config/play-versions/'.$draftId, [], [
|
||||
'Authorization' => 'Bearer '.$token,
|
||||
])
|
||||
->assertOk()
|
||||
->assertJsonPath('data.deleted', true);
|
||||
|
||||
expect(PlayConfigVersion::query()->whereKey($draftId)->exists())->toBeFalse();
|
||||
});
|
||||
|
||||
test('admin can delete draft odds version', function (): void {
|
||||
$token = mintConfigAdminToken();
|
||||
$create = $this->postJson('/api/v1/admin/config/odds-versions', [
|
||||
'reason' => 'to delete',
|
||||
], ['Authorization' => 'Bearer '.$token]);
|
||||
$create->assertOk();
|
||||
$draftId = (int) $create->json('data.id');
|
||||
|
||||
$this->deleteJson('/api/v1/admin/config/odds-versions/'.$draftId, [], [
|
||||
'Authorization' => 'Bearer '.$token,
|
||||
])
|
||||
->assertOk()
|
||||
->assertJsonPath('data.deleted', true);
|
||||
|
||||
expect(OddsVersion::query()->whereKey($draftId)->exists())->toBeFalse();
|
||||
});
|
||||
|
||||
test('admin can delete draft risk cap version', function (): void {
|
||||
$token = mintConfigAdminToken();
|
||||
$create = $this->postJson('/api/v1/admin/config/risk-cap-versions', [
|
||||
'reason' => 'to delete',
|
||||
], ['Authorization' => 'Bearer '.$token]);
|
||||
$create->assertOk();
|
||||
$draftId = (int) $create->json('data.id');
|
||||
|
||||
$this->deleteJson('/api/v1/admin/config/risk-cap-versions/'.$draftId, [], [
|
||||
'Authorization' => 'Bearer '.$token,
|
||||
])
|
||||
->assertOk()
|
||||
->assertJsonPath('data.deleted', true);
|
||||
|
||||
expect(RiskCapVersion::query()->whereKey($draftId)->exists())->toBeFalse();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user