Move test

This commit is contained in:
Marcus Moore 2024-11-07 17:01:47 -08:00
parent dc0b8c7572
commit 4bb19152c4
No known key found for this signature in database
2 changed files with 22 additions and 31 deletions

View file

@ -6,6 +6,7 @@ use App\Models\Asset;
use App\Models\Company;
use App\Models\ReportTemplate;
use App\Models\User;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Testing\TestResponse;
use League\Csv\Reader;
use PHPUnit\Framework\Assert;
@ -67,6 +68,27 @@ class CustomReportTest extends TestCase implements TestsPermissionsRequirement
]);
}
public function testSavedTemplatesOnPageAreScopedToTheUser()
{
// Given there is a saved template for one user
ReportTemplate::factory()->create(['name' => 'Report A']);
// When loading reports/custom while acting as another user that also has a saved template
$user = User::factory()->canViewReports()
->has(ReportTemplate::factory(['name' => 'Report B']))
->create();
// The user should not see the other user's template (in view as 'report_templates')
$this->actingAs($user)
->get(route('reports/custom'))
->assertViewHas([
'report_templates' => function (Collection $reports) {
return $reports->pluck('name')->doesntContain('Report A');
}
]);
}
public function testCustomAssetReport()
{
Asset::factory()->create(['name' => 'Asset A']);

View file

@ -1,31 +0,0 @@
<?php
namespace Tests\Unit\Models\ReportTemplates;
use App\Models\ReportTemplate;
use App\Models\User;
use Illuminate\Database\Eloquent\Collection;
use PHPUnit\Framework\Attributes\Group;
use Tests\TestCase;
#[Group('custom-reporting')]
class ReportTemplateScopingTest extends TestCase
{
public function testSavedTemplatesAreScopedToTheUser()
{
// Given there is a saved template for one user
ReportTemplate::factory()->create(['name' => 'Report A']);
// When loading reports/custom while acting as another user that also has a saved template
$user = User::factory()->canViewReports()
->has(ReportTemplate::factory(['name' => 'Report B']))
->create();
// The user should not see the other user's template (in view as 'report_templates')
$this->actingAs($user)
->get(route('reports/custom'))
->assertViewHas(['report_templates' => function (Collection $reports) {
return $reports->pluck('name')->doesntContain('Report A');
}]);
}
}