add projet
This commit is contained in:
+78
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Http\Requests\AttendanceCommentTemplate;
|
||||
|
||||
use App\Http\Requests\AttendanceCommentTemplate\StoreAttendanceCommentTemplateRequest;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Tests\TestCase;
|
||||
|
||||
class StoreAttendanceCommentTemplateRequestTest extends TestCase
|
||||
{
|
||||
private function makeRequest(): StoreAttendanceCommentTemplateRequest
|
||||
{
|
||||
return new StoreAttendanceCommentTemplateRequest();
|
||||
}
|
||||
|
||||
public function test_rules_pass_with_valid_data(): void
|
||||
{
|
||||
$request = $this->makeRequest();
|
||||
|
||||
$data = [
|
||||
'min_score' => 0,
|
||||
'max_score' => 100,
|
||||
'template_text' => 'Valid template text',
|
||||
'is_active' => true,
|
||||
];
|
||||
|
||||
$validator = Validator::make($data, $request->rules());
|
||||
|
||||
$this->assertFalse($validator->fails(), json_encode($validator->errors()->toArray()));
|
||||
}
|
||||
|
||||
public function test_rules_fail_when_required_fields_missing(): void
|
||||
{
|
||||
$request = $this->makeRequest();
|
||||
|
||||
$validator = Validator::make([], $request->rules());
|
||||
|
||||
$this->assertTrue($validator->fails());
|
||||
$this->assertArrayHasKey('min_score', $validator->errors()->toArray());
|
||||
$this->assertArrayHasKey('max_score', $validator->errors()->toArray());
|
||||
$this->assertArrayHasKey('template_text', $validator->errors()->toArray());
|
||||
}
|
||||
|
||||
public function test_rules_fail_when_max_score_less_than_min_score(): void
|
||||
{
|
||||
$request = $this->makeRequest();
|
||||
|
||||
$data = [
|
||||
'min_score' => 90,
|
||||
'max_score' => 50,
|
||||
'template_text' => 'Invalid range',
|
||||
'is_active' => true,
|
||||
];
|
||||
|
||||
$validator = Validator::make($data, $request->rules());
|
||||
|
||||
$this->assertTrue($validator->fails());
|
||||
$this->assertArrayHasKey('max_score', $validator->errors()->toArray());
|
||||
}
|
||||
|
||||
public function test_rules_fail_when_score_out_of_range(): void
|
||||
{
|
||||
$request = $this->makeRequest();
|
||||
|
||||
$data = [
|
||||
'min_score' => -1,
|
||||
'max_score' => 101,
|
||||
'template_text' => 'Out of range',
|
||||
'is_active' => true,
|
||||
];
|
||||
|
||||
$validator = Validator::make($data, $request->rules());
|
||||
|
||||
$this->assertTrue($validator->fails());
|
||||
$this->assertArrayHasKey('min_score', $validator->errors()->toArray());
|
||||
$this->assertArrayHasKey('max_score', $validator->errors()->toArray());
|
||||
}
|
||||
}
|
||||
+81
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Http\Requests\AttendanceCommentTemplate;
|
||||
|
||||
use App\Http\Requests\AttendanceCommentTemplate\UpdateAttendanceCommentTemplateRequest;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Tests\TestCase;
|
||||
|
||||
class UpdateAttendanceCommentTemplateRequestTest extends TestCase
|
||||
{
|
||||
private function makeRequest(): UpdateAttendanceCommentTemplateRequest
|
||||
{
|
||||
return new UpdateAttendanceCommentTemplateRequest();
|
||||
}
|
||||
|
||||
public function test_rules_pass_with_partial_valid_data(): void
|
||||
{
|
||||
$request = $this->makeRequest();
|
||||
|
||||
$data = [
|
||||
'template_text' => 'Updated only text',
|
||||
];
|
||||
|
||||
$validator = Validator::make($data, $request->rules());
|
||||
|
||||
// apply after hook manually
|
||||
$request->merge($data);
|
||||
$request->withValidator($validator);
|
||||
|
||||
$this->assertFalse($validator->fails(), json_encode($validator->errors()->toArray()));
|
||||
}
|
||||
|
||||
public function test_rules_pass_when_both_scores_valid(): void
|
||||
{
|
||||
$request = $this->makeRequest();
|
||||
|
||||
$data = [
|
||||
'min_score' => 20,
|
||||
'max_score' => 40,
|
||||
];
|
||||
|
||||
$validator = Validator::make($data, $request->rules());
|
||||
$request->merge($data);
|
||||
$request->withValidator($validator);
|
||||
|
||||
$this->assertFalse($validator->fails(), json_encode($validator->errors()->toArray()));
|
||||
}
|
||||
|
||||
public function test_rules_fail_when_both_scores_invalid_relation(): void
|
||||
{
|
||||
$request = $this->makeRequest();
|
||||
|
||||
$data = [
|
||||
'min_score' => 60,
|
||||
'max_score' => 10,
|
||||
];
|
||||
|
||||
$validator = Validator::make($data, $request->rules());
|
||||
$request->merge($data);
|
||||
$request->withValidator($validator);
|
||||
|
||||
$this->assertTrue($validator->fails());
|
||||
$this->assertArrayHasKey('max_score', $validator->errors()->toArray());
|
||||
}
|
||||
|
||||
public function test_rules_fail_on_invalid_boolean(): void
|
||||
{
|
||||
$request = $this->makeRequest();
|
||||
|
||||
$data = [
|
||||
'is_active' => 'not-bool',
|
||||
];
|
||||
|
||||
$validator = Validator::make($data, $request->rules());
|
||||
$request->merge($data);
|
||||
$request->withValidator($validator);
|
||||
|
||||
$this->assertTrue($validator->fails());
|
||||
$this->assertArrayHasKey('is_active', $validator->errors()->toArray());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user