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') ->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') ->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) ->assertDispatched('refreshDatatable'); expect(MembershipModel::count())->toBe(0); });