Files
douyin-card-message/serve/tests/Feature/UserTest.php
T
2024-09-30 14:08:38 +08:00

85 lines
2.3 KiB
PHP

<?php
namespace Tests\Feature;
use App\Enums\CommissionType;
use App\Models\User;
use App\Models\VipPackage;
use Tests\TestCase;
class UserTest extends TestCase
{
public function test_get_token()
{
dd($this->get_admin_token());
}
// 注册
public function test_register()
{
$agent = User::query()->where('id', 2)->first();
$referral_code = $agent->referral_code;
$phone = fake('zh_CN')->phoneNumber();
$response = $this
->postJson('/api/register', [
'username' => $phone,
'password' => '123456',
'password_confirmation' => '123456',
'captcha' => '6666',
'referral_code' => $referral_code ?? null,
]);
$response->assertStatus(200);
$this->assertDatabaseHas('users', [
'username' => $phone,
]);
if (! empty($referral_code)) {
$child = User::query()->where('parent_id', $agent->id)->orderByDesc('id')->first();
$this->assertDatabaseHas('commission_logs', [
'user_id' => $agent->id,
'type' => CommissionType::Rebates->value,
'children_user_id' => $child->id,
]);
}
}
private function get_admin_token()
{
$admin = User::query()->where('username', 'admin')->first();
return $admin->createToken('api')->plainTextToken;
}
public function test_user_package_fix(): void
{
$token = $this->get_admin_token();
$user = User::query()
->inRandomOrder()
->where('id', 2)
->first();
$id = $user->id;
$u_vip_id = $user->vip_id;
$vip = VipPackage::query()
->when(! empty($u_vip_id), function ($query) use ($u_vip_id) {
$query->whereNot('id', $u_vip_id);
})
->inRandomOrder()
->first();
$response = $this
->withHeaders([
'Authorization' => "Bearer {$token}",
])
->putJson("/api/users/{$id}", [
'vip_id' => $vip->id,
]);
$response->assertStatus(200);
$this->assertDatabaseHas('users', [
'vip_id' => $vip->id,
// 'end_at' => '', // TODO
]);
}
}