Files
laravel-shopping-cart/tests/Feature/Models/CartTest.php
T
brian d9cb44e93c
linter / quality (push) Has been cancelled
tests / ci (8.3) (push) Has been cancelled
tests / ci (8.4) (push) Has been cancelled
tests / ci (8.5) (push) Has been cancelled
adding a cart
2026-04-10 08:54:20 -06:00

39 lines
1.0 KiB
PHP

<?php
use App\Models\Cart;
use App\Models\Product;
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
uses(RefreshDatabase::class);
test('a cart belongs to a user when one is set', function () {
$user = User::factory()->create();
$cart = Cart::factory()->create(['user_id' => $user->id]);
expect($cart->user->id)->toBe($user->id);
});
test('a cart can exist without a user', function () {
$cart = Cart::factory()->create(['user_id' => null]);
expect($cart->user)->toBeNull();
});
test('a user has one cart', function () {
$user = User::factory()->create();
Cart::factory()->create(['user_id' => $user->id]);
expect($user->cart)->toBeInstanceOf(Cart::class);
});
test('a cart can have products with quantities', function () {
$cart = Cart::factory()->create(['user_id' => null]);
$product = Product::factory()->create();
$cart->products()->attach($product->id, ['quantity' => 3]);
expect($cart->products)->toHaveCount(1);
expect($cart->products->first()->pivot->quantity)->toBe(3);
});