v6 update

This commit is contained in:
Mohit Panjwani
2022-01-10 16:06:17 +05:30
parent b770e6277f
commit bdea879273
722 changed files with 19047 additions and 9186 deletions

View File

@ -0,0 +1,28 @@
<?php
namespace Tests\Feature\Customer;
use Crater\Models\Customer;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Laravel\Sanctum\Sanctum;
use function Pest\Laravel\getJson;
beforeEach(function () {
Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]);
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
$customer = Customer::factory()->create();
Sanctum::actingAs(
$customer,
['*'],
'customer'
);
});
test('customer dashboard', function () {
$customer = Auth::guard('customer')->user();
getJson("api/v1/{$customer->company->slug}/customer/dashboard")->assertOk();
});

View File

@ -0,0 +1,57 @@
<?php
namespace Tests\Feature\Customer;
use Crater\Models\Customer;
use Crater\Models\Estimate;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Laravel\Sanctum\Sanctum;
use function Pest\Laravel\getJson;
use function Pest\Laravel\postJson;
beforeEach(function () {
Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]);
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
$customer = Customer::factory()->create();
Sanctum::actingAs(
$customer,
['*'],
'customer'
);
});
test('get customer estimates', function () {
$customer = Auth::guard('customer')->user();
getJson("api/v1/{$customer->company->slug}/customer/estimates?page=1")->assertOk();
});
test('get customer estimate', function () {
$customer = Auth::guard('customer')->user();
$estimate = Estimate::factory()->create();
getJson("/api/{$customer->company->slug}/v1/customer/estimates/{$estimate->id}")->assertOk();
});
test('customer estimate mark as accepted', function () {
$customer = Auth::guard('customer')->user();
$estimate = Estimate::factory()->create([
'estimate_date' => '1988-07-18',
'expiry_date' => '1988-08-18',
]);
$status = [
'status' => Estimate::STATUS_ACCEPTED,
];
postJson("api/v1/{$customer->company->slug}/customer/estimate/{$estimate->id}/accept", $status)->assertOk();
$estimate2 = Estimate::find($estimate->id);
$this->assertEquals($estimate2->status, Estimate::STATUS_ACCEPTED);
});

View File

@ -0,0 +1,45 @@
<?php
namespace Tests\Feature\Customer;
use Crater\Models\Customer;
use Crater\Models\Expense;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Laravel\Sanctum\Sanctum;
use function Pest\Laravel\getJson;
beforeEach(function () {
Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]);
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
$customer = Customer::factory()->create();
Sanctum::actingAs(
$customer,
['*'],
'customer'
);
});
test('get customer expenses', function () {
$customer = Auth::guard('customer')->user();
getJson("api/v1/{$customer->company->slug}/customer/expenses?page=1")->assertOk();
});
test('get customer expense', function () {
$customer = Auth::guard('customer')->user();
$expense = Expense::factory()->create();
getJson("/api/v1/{$customer->company->slug}/customer/expenses/{$expense->id}")->assertOk();
$this->assertDatabaseHas('expenses', [
'expense_category_id' => $expense['expense_category_id'],
'amount' => $expense['amount'],
'exchange_rate' => $expense['exchange_rate'],
'notes' => $expense['notes'],
]);
});

View File

@ -0,0 +1,47 @@
<?php
namespace Tests\Feature\Customer;
use Crater\Models\Customer;
use Crater\Models\Invoice;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Laravel\Sanctum\Sanctum;
use function Pest\Laravel\getJson;
beforeEach(function () {
Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]);
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
$customer = Customer::factory()->create();
Sanctum::actingAs(
$customer,
['*'],
'customer'
);
});
test('get customer invoices', function () {
$customer = Auth::guard('customer')->user();
getJson("api/v1/{$customer->company->slug}/customer/invoices?page=1")->assertOk();
});
test('get customer invoice', function () {
$customer = Auth::guard('customer')->user();
$invoice = Invoice::factory()->create();
getJson("/api/v1/{$customer->company->slug}/customer/invoices/{$invoice->id}")->assertOk();
$this->assertDatabaseHas('invoices', [
'template_name' => $invoice['template_name'],
'invoice_number' => $invoice['invoice_number'],
'sub_total' => $invoice['sub_total'],
'discount' => $invoice['discount'],
'customer_id' => $invoice['customer_id'],
'total' => $invoice['total'],
'tax' => $invoice['tax'],
]);
});

View File

@ -0,0 +1,37 @@
<?php
namespace Tests\Feature\Customer;
use Crater\Models\Customer;
use Crater\Models\Payment;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Laravel\Sanctum\Sanctum;
use function Pest\Laravel\getJson;
beforeEach(function () {
Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]);
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
$customer = Customer::factory()->create();
Sanctum::actingAs(
$customer,
['*'],
'customer'
);
});
test('get customer payments', function () {
$customer = Auth::guard('customer')->user();
getJson("api/v1/{$customer->company->slug}/customer/payments?page=1")->assertOk();
});
test('get customer payment', function () {
$customer = Auth::guard('customer')->user();
$payment = Payment::factory()->create();
getJson("/api/v1/{$customer->company->slug}/customer/payments/{$payment->id}")->assertOk();
});

View File

@ -0,0 +1,61 @@
<?php
namespace Tests\Feature\Customer;
use Crater\Http\Controllers\V1\Customer\General\ProfileController;
use Crater\Http\Requests\Customer\CustomerProfileRequest;
use Crater\Models\Customer;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Auth;
use Laravel\Sanctum\Sanctum;
use function Pest\Laravel\getJson;
use function Pest\Laravel\postJson;
beforeEach(function () {
Artisan::call('db:seed', ['--class' => 'DatabaseSeeder', '--force' => true]);
Artisan::call('db:seed', ['--class' => 'DemoSeeder', '--force' => true]);
$customer = Customer::factory()->create();
Sanctum::actingAs(
$customer,
['*'],
'customer'
);
});
test('update customer profile using a form request', function () {
$this->assertActionUsesFormRequest(
ProfileController::class,
'updateProfile',
CustomerProfileRequest::class
);
});
test('update customer profile', function () {
$customer = Auth::guard('customer')->user();
$newCustomer = Customer::factory()->raw([
'shipping' => [
'name' => 'newName',
'address_street_1' => 'address'
],
'billing' => [
'name' => 'newName',
'address_street_1' => 'address'
]
]);
postJson("api/v1/{$customer->company->slug}/customer/profile", $newCustomer)->assertOk();
$this->assertDatabaseHas('customers', [
'name' => $customer['name'],
'email' => $customer['email']
]);
});
test('get customer', function () {
$customer = Auth::guard('customer')->user();
getJson("api/v1/{$customer->company->slug}/customer/me")->assertOk();
});