72 lines
2.3 KiB
PHP
72 lines
2.3 KiB
PHP
<?php
|
|
|
|
use App\Livewire\Studio\Loyalty\Membership;
|
|
use App\Models\Membership as MembershipModel;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Livewire\Livewire;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
it('renders successfully', function () {
|
|
Livewire::test(Membership::class)
|
|
->assertViewIs('livewire.studio.loyalty.memberships')
|
|
->assertViewHas('pageTitle', 'Membership');
|
|
});
|
|
|
|
it('displays all memberships', function () {
|
|
MembershipModel::factory()->count(10)->create();
|
|
|
|
$membership = MembershipModel::first();
|
|
|
|
Livewire::test(Membership::class)->assertSee($membership->name);
|
|
});
|
|
|
|
it('can create a membership', function () {
|
|
$data = MembershipModel::factory()->raw();
|
|
|
|
Livewire::test(Membership::class)
|
|
->set('form.name', $data['name'])
|
|
->set('form.min_purchase', $data['min_purchase'])
|
|
->set('form.discount_percentage', $data['discount_percentage'])
|
|
->set('form.terms_conditions', $data['terms_conditions'])
|
|
->call('create')
|
|
->assertHasNoErrors()
|
|
->assertDispatched('refreshDatatable');
|
|
|
|
expect(MembershipModel::count())->toBe(1);
|
|
expect(MembershipModel::first()->name)->toBe($data['name']);
|
|
});
|
|
|
|
it('can update a membership', function () {
|
|
$membership = MembershipModel::factory()->create();
|
|
|
|
$data = MembershipModel::factory()->raw();
|
|
|
|
Livewire::test(Membership::class)
|
|
->call('openModal', 'update', 'Edit Membership', $membership->id)
|
|
->set('form.name', $data['name'])
|
|
->set('form.min_purchase', $data['min_purchase'])
|
|
->set('form.discount_percentage', $data['discount_percentage'])
|
|
->set('form.terms_conditions', $data['terms_conditions'])
|
|
->call('update')
|
|
->assertHasNoErrors()
|
|
->assertDispatched('refreshDatatable');
|
|
|
|
$membership->refresh();
|
|
|
|
expect($membership->name)->toBe($data['name']);
|
|
expect($membership->min_purchase)->toBe($data['min_purchase']);
|
|
expect($membership->discount_percentage)->toBe($data['discount_percentage']);
|
|
});
|
|
|
|
it('can delete an membership', function () {
|
|
$membership = MembershipModel::factory()->create();
|
|
|
|
Livewire::test(Membership::class)
|
|
->call('delete', $membership)
|
|
->assertHasNoErrors()
|
|
->assertDispatched('refreshDatatable');
|
|
|
|
expect(MembershipModel::count())->toBe(0);
|
|
});
|