|
|
@@ -260,13 +260,54 @@ class SparePartControllerTest extends TestCase
|
|
|
|
|
|
public function test_admin_can_search_spare_parts(): void
|
|
|
{
|
|
|
- SparePart::factory()->create(['article' => 'SP-SEARCH-001']);
|
|
|
+ SparePart::factory()->create([
|
|
|
+ 'article' => 'SP-SEARCH-001',
|
|
|
+ 'note' => 'Комментарий поиска',
|
|
|
+ ]);
|
|
|
|
|
|
$response = $this->actingAs($this->adminUser)
|
|
|
->getJson(route('spare_parts.search', ['query' => 'SP-SEARCH']));
|
|
|
|
|
|
$response->assertStatus(200);
|
|
|
- $response->assertJsonStructure([['id', 'article', 'used_in_maf']]);
|
|
|
+ $response->assertJsonStructure([['id', 'article', 'note']]);
|
|
|
+ $response->assertJsonFragment([
|
|
|
+ 'article' => 'SP-SEARCH-001',
|
|
|
+ 'note' => 'Комментарий поиска',
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_spare_part_show_displays_ordered_row_separately_from_stock(): void
|
|
|
+ {
|
|
|
+ $sparePart = SparePart::factory()->create(['min_stock' => 5]);
|
|
|
+ \App\Models\SparePartOrder::factory()->forSparePart($sparePart)->ordered()->withDocuments(false)->withQuantity(4)->create();
|
|
|
+ \App\Models\SparePartOrder::factory()->forSparePart($sparePart)->ordered()->withDocuments(true)->withQuantity(6)->create();
|
|
|
+ \App\Models\SparePartOrder::factory()->forSparePart($sparePart)->inStock()->withDocuments(false)->withQuantity(10)->create();
|
|
|
+
|
|
|
+ $response = $this->actingAs($this->adminUser)
|
|
|
+ ->get(route('spare_parts.show', $sparePart));
|
|
|
+
|
|
|
+ $response->assertOk();
|
|
|
+ $response->assertSee('Заказано');
|
|
|
+ $response->assertSee('>4<', false);
|
|
|
+ $response->assertSee('>6<', false);
|
|
|
+ $response->assertSee('>10<', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_spare_part_search_can_find_by_note(): void
|
|
|
+ {
|
|
|
+ SparePart::factory()->create([
|
|
|
+ 'article' => 'SP-NOTE-001',
|
|
|
+ 'note' => 'Особая отметка',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ $response = $this->actingAs($this->adminUser)
|
|
|
+ ->getJson(route('spare_parts.search', ['query' => 'Особая отметка']));
|
|
|
+
|
|
|
+ $response->assertOk();
|
|
|
+ $response->assertJsonFragment([
|
|
|
+ 'article' => 'SP-NOTE-001',
|
|
|
+ 'note' => 'Особая отметка',
|
|
|
+ ]);
|
|
|
}
|
|
|
|
|
|
public function test_guest_cannot_search_spare_parts(): void
|