|
|
@@ -4,6 +4,7 @@ namespace Tests\Feature;
|
|
|
|
|
|
use App\Jobs\ExportMafJob;
|
|
|
use App\Jobs\ExportMafRegistryJob;
|
|
|
+use App\Models\File;
|
|
|
use App\Models\Order;
|
|
|
use App\Models\Permission;
|
|
|
use App\Models\Product;
|
|
|
@@ -121,6 +122,47 @@ class ProductSKUControllerTest extends TestCase
|
|
|
$response->assertViewIs('products_sku.index');
|
|
|
}
|
|
|
|
|
|
+ public function test_admin_sees_generated_maf_registry_files_on_index(): void
|
|
|
+ {
|
|
|
+ $registryFile = File::factory()->create([
|
|
|
+ 'user_id' => $this->adminUser->id,
|
|
|
+ 'path' => 'export/maf-registry/registry.xlsx',
|
|
|
+ 'link' => url('/storage/export/maf-registry/registry.xlsx'),
|
|
|
+ 'original_name' => 'registry.xlsx',
|
|
|
+ 'is_generated' => true,
|
|
|
+ ]);
|
|
|
+ File::factory()->create([
|
|
|
+ 'path' => 'export/orders/orders.xlsx',
|
|
|
+ 'original_name' => 'orders.xlsx',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $response = $this->actingAs($this->adminUser)
|
|
|
+ ->get(route('product_sku.index'));
|
|
|
+
|
|
|
+ $response->assertOk();
|
|
|
+ $response->assertViewHas('maf_registry_files', function ($files) use ($registryFile): bool {
|
|
|
+ return $files->contains('id', $registryFile->id)
|
|
|
+ && $files->doesntContain('original_name', 'orders.xlsx');
|
|
|
+ });
|
|
|
+ $response->assertSee('registry.xlsx');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_manager_does_not_receive_generated_maf_registry_files(): void
|
|
|
+ {
|
|
|
+ File::factory()->create([
|
|
|
+ 'path' => 'export/maf-registry/registry.xlsx',
|
|
|
+ 'original_name' => 'registry.xlsx',
|
|
|
+ 'is_generated' => true,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $response = $this->actingAs($this->managerUser)
|
|
|
+ ->get(route('product_sku.index'));
|
|
|
+
|
|
|
+ $response->assertOk();
|
|
|
+ $response->assertViewHas('maf_registry_files', fn ($files): bool => $files->isEmpty());
|
|
|
+ $response->assertDontSee('registry.xlsx');
|
|
|
+ }
|
|
|
+
|
|
|
public function test_maf_filter_options_include_empty_marker_for_factory_number(): void
|
|
|
{
|
|
|
ProductSKU::factory()->create(['factory_number' => null]);
|