Refine design (less clunky, fully mobile-friendly), seed only Fidget Toys, Pokemon & Film popculture, and add direct custom model ordering
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Feature;
|
||||
|
||||
use App\Models\Material;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Tests\TestCase;
|
||||
|
||||
class CustomModelOrderTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
public function test_customer_can_order_custom_model_via_file_upload(): void
|
||||
{
|
||||
Storage::fake('public');
|
||||
|
||||
Material::updateOrCreate(['code' => 'pla'], [
|
||||
'name' => 'PLA+ Premium',
|
||||
'code' => 'pla',
|
||||
'price_multiplier' => 1.0,
|
||||
'is_active' => true,
|
||||
]);
|
||||
|
||||
$file = UploadedFile::fake()->create('custom_pikachu.stl', 1500, 'application/sla');
|
||||
|
||||
$response = $this->post(route('custom.cart.add'), [
|
||||
'model_name' => 'Mijn Custom Pikachu',
|
||||
'model_file' => $file,
|
||||
'size' => 'medium',
|
||||
'material' => 'pla',
|
||||
'color' => 'Zon Geel (Pikachu)',
|
||||
'quantity' => 2,
|
||||
]);
|
||||
|
||||
$response->assertRedirect(route('cart.index'));
|
||||
$response->assertSessionHas('success');
|
||||
|
||||
$cart = session('cart');
|
||||
$this->assertNotEmpty($cart);
|
||||
|
||||
$item = array_values($cart)[0];
|
||||
$this->assertTrue($item['is_custom']);
|
||||
$this->assertEquals('Custom Print: Mijn Custom Pikachu', $item['name']);
|
||||
$this->assertEquals(16.95, $item['price']);
|
||||
$this->assertEquals(2, $item['quantity']);
|
||||
$this->assertEquals('custom_pikachu.stl', $item['custom_file_name']);
|
||||
$this->assertNotNull($item['custom_file_path']);
|
||||
|
||||
Storage::disk('public')->assertExists($item['custom_file_path']);
|
||||
}
|
||||
|
||||
public function test_customer_can_order_custom_model_via_makerworld_url(): void
|
||||
{
|
||||
Material::updateOrCreate(['code' => 'pla'], [
|
||||
'name' => 'PLA+ Premium',
|
||||
'code' => 'pla',
|
||||
'price_multiplier' => 1.0,
|
||||
'is_active' => true,
|
||||
]);
|
||||
|
||||
$response = $this->post(route('custom.cart.add'), [
|
||||
'model_url' => 'https://makerworld.com/nl/models/55866',
|
||||
'size' => 'klein',
|
||||
'material' => 'pla',
|
||||
'color' => 'Vurig Rood (Charizard)',
|
||||
'quantity' => 1,
|
||||
]);
|
||||
|
||||
$response->assertRedirect(route('cart.index'));
|
||||
|
||||
$cart = session('cart');
|
||||
$item = array_values($cart)[0];
|
||||
$this->assertTrue($item['is_custom']);
|
||||
$this->assertEquals(9.95, $item['price']);
|
||||
$this->assertEquals('https://makerworld.com/nl/models/55866', $item['custom_model_url']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user