mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-11-03 22:13:18 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			127 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
use Crater\Models\User;
 | 
						|
use Crater\Models\Address;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
use Illuminate\Support\Facades\Artisan;
 | 
						|
use Laravel\Sanctum\Sanctum;
 | 
						|
 | 
						|
beforeEach(function () {
 | 
						|
    Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]);
 | 
						|
    Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
 | 
						|
 | 
						|
    $user = User::where('role', 'super admin')->first();
 | 
						|
    $this->withHeaders([
 | 
						|
        'company' => $user->company_id,
 | 
						|
    ]);
 | 
						|
    Sanctum::actingAs(
 | 
						|
        $user,
 | 
						|
        ['*']
 | 
						|
    );
 | 
						|
});
 | 
						|
 | 
						|
test('user has many estimates', function () {
 | 
						|
    $user = User::factory()->hasEstimates(5)->create();
 | 
						|
 | 
						|
    $this->assertCount(5, $user->estimates);
 | 
						|
    $this->assertTrue($user->estimates()->exists());
 | 
						|
});
 | 
						|
 | 
						|
test('user belongs to currency', function () {
 | 
						|
    $user = User::factory()->create();
 | 
						|
 | 
						|
    $this->assertTrue($user->currency()->exists());
 | 
						|
});
 | 
						|
 | 
						|
test('user belongs to company', function () {
 | 
						|
    $user = User::factory()->forCompany()->create();
 | 
						|
 | 
						|
    $this->assertTrue($user->company()->exists());
 | 
						|
});
 | 
						|
 | 
						|
test('user has many addresses', function () {
 | 
						|
    $user = User::factory()->hasAddresses(2)->create();
 | 
						|
 | 
						|
    $this->assertTrue($user->addresses()->exists());
 | 
						|
});
 | 
						|
 | 
						|
it('user has many expenses', function () {
 | 
						|
    $user = User::factory()->hasExpenses(5)->create();
 | 
						|
 | 
						|
    $this->assertCount(5, $user->expenses);
 | 
						|
    $this->assertTrue($user->expenses()->exists());
 | 
						|
});
 | 
						|
 | 
						|
it('user has one billing address', function () {
 | 
						|
    $user = User::factory()->has(Address::factory()->state([
 | 
						|
        'type' => Address::BILLING_TYPE,
 | 
						|
    ]))->create();
 | 
						|
 | 
						|
    $this->assertTrue($user->billingAddress()->exists());
 | 
						|
});
 | 
						|
 | 
						|
it('user has one shipping address', function () {
 | 
						|
    $user = User::factory()->has(Address::factory()->state([
 | 
						|
        'type' => Address::SHIPPING_TYPE,
 | 
						|
    ]))->create();
 | 
						|
 | 
						|
    $this->assertTrue($user->shippingAddress()->exists());
 | 
						|
});
 | 
						|
 | 
						|
test('user has many payments', function () {
 | 
						|
    $user = User::factory()->hasPayments(5)->create();
 | 
						|
 | 
						|
    $this->assertCount(5, $user->payments);
 | 
						|
    $this->assertTrue($user->payments()->exists());
 | 
						|
});
 | 
						|
 | 
						|
test('user has many invoices', function () {
 | 
						|
    $user = User::factory()->hasInvoices(5)->create();
 | 
						|
 | 
						|
    $this->assertCount(5, $user->invoices);
 | 
						|
    $this->assertTrue($user->invoices()->exists());
 | 
						|
});
 | 
						|
 | 
						|
test('create customer', function () {
 | 
						|
    $customer = User::factory()->raw([
 | 
						|
        'role' => 'customer'
 | 
						|
    ]);
 | 
						|
 | 
						|
    $request = new Request;
 | 
						|
 | 
						|
    $request->replace($customer);
 | 
						|
 | 
						|
    $response = User::createCustomer($request);
 | 
						|
 | 
						|
     $this->assertDatabaseHas('users', [
 | 
						|
        'name' => $customer['name'],
 | 
						|
        'email' => $customer['email'],
 | 
						|
        'role' => $customer['role']
 | 
						|
    ]);
 | 
						|
});
 | 
						|
 | 
						|
test('update customer', function () {
 | 
						|
    $customer = User::factory()->create([
 | 
						|
        'role' => 'customer'
 | 
						|
    ]);
 | 
						|
 | 
						|
    $customer2 = User::factory()->raw([
 | 
						|
        'role' => 'customer'
 | 
						|
    ]);
 | 
						|
 | 
						|
    $request = new Request;
 | 
						|
 | 
						|
    $request->replace($customer2);
 | 
						|
 | 
						|
    $updateCustomer = User::updateCustomer($request, $customer);
 | 
						|
 | 
						|
    $newCustomer = User::find($customer->id);
 | 
						|
 | 
						|
    $this->assertDatabaseHas('users', [
 | 
						|
        'id' => $customer->id,
 | 
						|
        'name' => $customer2['name'],
 | 
						|
        'email' => $customer2['email'],
 | 
						|
        'role' => $customer2['role']
 | 
						|
    ]);
 | 
						|
});
 |