v7.0.0-beta.1 release

This commit is contained in:
HeuJung
2026-04-01 10:30:52 +09:00
commit 6595fd0eb5
3967 changed files with 1875383 additions and 0 deletions
@@ -0,0 +1,144 @@
<?php
namespace Tests\Unit\Http\Requests\Module;
use App\Http\Requests\Module\IndexModuleRequest;
use Illuminate\Support\Facades\Validator;
use Tests\TestCase;
/**
* IndexModuleRequest 유닛 테스트
*
* with[] 파라미터 검증 규칙을 테스트합니다.
*/
class IndexModuleRequestTest extends TestCase
{
/**
* 유효한 with 파라미터가 통과함
*/
public function test_valid_with_param_passes(): void
{
$request = new IndexModuleRequest();
$rules = $request->rules();
$validator = Validator::make([
'with' => ['custom_menus'],
], $rules);
$this->assertFalse($validator->fails());
}
/**
* 유효하지 않은 with 파라미터가 실패함
*/
public function test_invalid_with_param_fails(): void
{
$request = new IndexModuleRequest();
$rules = $request->rules();
$validator = Validator::make([
'with' => ['invalid_option'],
], $rules);
$this->assertTrue($validator->fails());
$this->assertArrayHasKey('with.0', $validator->errors()->toArray());
}
/**
* 빈 with 파라미터가 통과함
*/
public function test_empty_with_param_passes(): void
{
$request = new IndexModuleRequest();
$rules = $request->rules();
$validator = Validator::make([
'with' => [],
], $rules);
$this->assertFalse($validator->fails());
}
/**
* with 파라미터 없이 요청이 통과함
*/
public function test_request_without_with_param_passes(): void
{
$request = new IndexModuleRequest();
$rules = $request->rules();
$validator = Validator::make([], $rules);
$this->assertFalse($validator->fails());
}
/**
* ALLOWED_WITH_OPTIONS 상수가 정의됨
*/
public function test_allowed_with_options_constant_exists(): void
{
$this->assertTrue(defined(IndexModuleRequest::class.'::ALLOWED_WITH_OPTIONS'));
$this->assertContains('custom_menus', IndexModuleRequest::ALLOWED_WITH_OPTIONS);
}
/**
* hasWithOption 메서드가 존재함
*/
public function test_has_with_option_method_exists(): void
{
$request = new IndexModuleRequest();
$this->assertTrue(method_exists($request, 'hasWithOption'));
}
/**
* with 배열이 최대 5개까지 허용됨
*/
public function test_with_param_max_5_items(): void
{
$request = new IndexModuleRequest();
$rules = $request->rules();
// 6개 항목 - 실패해야 함
$validator = Validator::make([
'with' => ['custom_menus', 'item2', 'item3', 'item4', 'item5', 'item6'],
], $rules);
$this->assertTrue($validator->fails());
}
/**
* search 파라미터 검증이 유지됨
*/
public function test_search_param_validation(): void
{
$request = new IndexModuleRequest();
$rules = $request->rules();
$validator = Validator::make([
'search' => 'test query',
], $rules);
$this->assertFalse($validator->fails());
}
/**
* status 파라미터 검증이 유지됨
*/
public function test_status_param_validation(): void
{
$request = new IndexModuleRequest();
$rules = $request->rules();
// 유효한 상태
$validator = Validator::make([
'status' => 'active',
], $rules);
$this->assertFalse($validator->fails());
// 유효하지 않은 상태
$validator = Validator::make([
'status' => 'invalid_status',
], $rules);
$this->assertTrue($validator->fails());
}
}