Add feature tests for domain order management

- Implement AdminDomainOrderTest to cover admin functionalities for domain orders including listing, confirming registration, KYC updates, activation, rejection, and refunds.
- Implement ClientDomainOrderTest to cover client functionalities for placing domain orders, including validation for balance, duplicate orders, and domain normalization.
- Ensure proper handling of domain pricing and service statuses throughout the tests.
This commit is contained in:
baodev0
2026-07-10 14:16:35 +07:00
parent 61c0e026c8
commit dfb926055d
81 changed files with 35743 additions and 481 deletions
@@ -0,0 +1,24 @@
<?php
namespace App\Http\Requests\Api\Admin\Domain;
use Illuminate\Foundation\Http\FormRequest;
class ConfirmRegistrationRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'dns_manager_server_id' => ['nullable', 'integer', 'exists:dns_manager_servers,id'],
'kyc_url' => ['nullable', 'url', 'max:2048'],
'registrar_reference' => ['nullable', 'string', 'max:255'],
'registered_at' => ['nullable', 'date'],
'expires_at' => ['nullable', 'date'],
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Api\Admin\Domain;
use Illuminate\Foundation\Http\FormRequest;
class RejectAndRefundRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'reason' => ['required', 'string', 'max:1000'],
];
}
}
@@ -0,0 +1,20 @@
<?php
namespace App\Http\Requests\Api\Admin\Domain;
use Illuminate\Foundation\Http\FormRequest;
class UpdateKycUrlRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'kyc_url' => ['required', 'url', 'max:2048'],
];
}
}
@@ -0,0 +1,30 @@
<?php
namespace App\Http\Requests\Api\Client\Domain;
use Illuminate\Foundation\Http\FormRequest;
class StoreDomainOrderRequest extends FormRequest
{
public function authorize(): bool
{
return true;
}
public function rules(): array
{
return [
'product_uuid' => ['required', 'string'],
'domain_name' => ['required', 'string', 'max:255'],
'years' => ['nullable', 'integer', 'min:1', 'max:3'],
];
}
/** Default years to 1 if omitted. */
protected function prepareForValidation(): void
{
if (!$this->has('years') || $this->years === null) {
$this->merge(['years' => 1]);
}
}
}