seed(); } public function test_it_can_list_my_sales_history() { $user = User::factory()->create(['role' => 'resident']); $household = Household::factory()->create(['head_user_id' => $user->id]); $store = PartnerStore::factory()->create(); StoreSale::factory()->count(3)->create([ 'household_id' => $household->id, 'store_id' => $store->id, 'retail_price_centavos' => 2500, 'quantity' => 1, ]); $response = $this->actingAs($user) ->getJson(route('api.v1.me.sales.index')); $response->assertOk() ->assertJsonCount(3, 'data'); $this->assertNotNull($response->json('data.0.receipt_url')); } public function test_it_can_download_my_receipt() { $user = User::factory()->create(['role' => 'resident']); $household = Household::factory()->create(['head_user_id' => $user->id]); $store = PartnerStore::factory()->create(); $sale = StoreSale::factory()->create([ 'household_id' => $household->id, 'store_id' => $store->id, ]); $response = $this->actingAs($user) ->getJson(route('api.v1.me.sales.receipt', $sale->id)); $response->assertOk() ->assertHeader('Content-Type', 'application/pdf'); } public function test_it_cannot_download_others_receipt() { $user1 = User::factory()->create(['role' => 'resident']); $household1 = Household::factory()->create(['head_user_id' => $user1->id]); $user2 = User::factory()->create(['role' => 'resident']); $household2 = Household::factory()->create(['head_user_id' => $user2->id]); $store = PartnerStore::factory()->create(); $saleOfUser2 = StoreSale::factory()->create([ 'household_id' => $household2->id, 'store_id' => $store->id, ]); $response = $this->actingAs($user1) ->getJson(route('api.v1.me.sales.receipt', $saleOfUser2->id)); $response->assertStatus(403); } }