Use instance in query if there are more than one instances and add tests

This commit is contained in:
Norris Oduro
2020-11-03 13:55:43 +00:00
parent 6d15ac8c43
commit 6ba97cafa8
2 changed files with 40 additions and 4 deletions

View File

@@ -65,7 +65,7 @@ class CartTest extends TestCase
parent::setUp();
$this->app->afterResolving('migrator', function ($migrator) {
$migrator->path(realpath(__DIR__.'/../src/Database/migrations'));
$migrator->path(realpath(__DIR__ . '/../src/Database/migrations'));
});
}
@@ -1011,7 +1011,7 @@ class CartTest extends TestCase
$cart = $this->getCartDiscount(50);
$cart->add(new BuyableProduct(1, 'First item', 10.00), 1);
$cart->update('027c91341fd5cf4d2579b49c4b6a90da', ['qty'=>2]);
$cart->update('027c91341fd5cf4d2579b49c4b6a90da', ['qty' => 2]);
$cartItem = $cart->get('027c91341fd5cf4d2579b49c4b6a90da');
@@ -1453,4 +1453,36 @@ class CartTest extends TestCase
$this->app['config']->set('cart.format.decimal_point', $decimalPoint);
$this->app['config']->set('cart.format.thousand_separator', $thousandSeperator);
}
/** @test */
public function it_can_store__mutiple_instances_of_the_cart_in_a_database()
{
$this->artisan('migrate', [
'--database' => 'testing',
]);
Event::fake();
$cart = $this->getCart();
$cart->add(new BuyableProduct());
$cart->store($identifier = 123);
$serialized = serialize($cart->content());
$newInstance = $this->getCart();
$newInstance->instance($instanceName = 'someinstance');
$newInstance->add(new BuyableProduct());
$newInstance->store($newIdentifier = 456);
$newInstanceSerialized = serialize($newInstance->content());
$this->assertDatabaseCount('shoppingcart', 2);
$this->assertDatabaseHas('shoppingcart', ['identifier' => $identifier, 'instance' => 'default', 'content' => $serialized]);
$this->assertDatabaseHas('shoppingcart', ['identifier' => $newIdentifier, 'instance' => $instanceName, 'content' => $newInstanceSerialized]);
Event::assertDispatched('cart.stored');
}
}