Merge branch 'akaunting:master' into master

This commit is contained in:
Burak Civan 2022-12-16 14:26:27 +03:00 committed by GitHub
commit 4a958be2cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 226 additions and 168 deletions

View File

@ -69,6 +69,7 @@ class User extends FormRequest
'companies' => $companies, 'companies' => $companies,
'roles' => $roles, 'roles' => $roles,
'picture' => $picture, 'picture' => $picture,
'landing_page' => 'required|string',
]; ];
} }

View File

@ -3,9 +3,7 @@
namespace Database\Factories; namespace Database\Factories;
use App\Abstracts\Factory; use App\Abstracts\Factory;
use App\Models\Auth\User;
use App\Models\Common\Company as Model; use App\Models\Common\Company as Model;
use Illuminate\Support\Facades\Artisan;
class Company extends Factory class Company extends Factory
{ {
@ -24,8 +22,11 @@ class Company extends Factory
public function definition() public function definition()
{ {
return [ return [
'name' => $this->faker->company,
'email' => $this->faker->freeEmail,
'currency' => $this->faker->randomElement(array_keys(\Akaunting\Money\Currency::getCurrencies())),
'country' => $this->faker->randomElement(array_keys(trans('countries'))),
'enabled' => $this->faker->boolean ? 1 : 0, 'enabled' => $this->faker->boolean ? 1 : 0,
'created_from' => 'core::factory',
]; ];
} }
@ -52,44 +53,4 @@ class Company extends Factory
'enabled' => 0, 'enabled' => 0,
]); ]);
} }
/**
* Configure the model factory.
*
* @return $this
*/
public function configure()
{
return $this->afterCreating(function (Model $company) {
$company->makeCurrent();
app()->setLocale('en-GB');
// Company seeds
Artisan::call('company:seed', [
'company' => $company->id
]);
$user = User::first();
$user->companies()->attach($company->id);
// User seeds
Artisan::call('user:seed', [
'user' => $user->id,
'company' => $company->id,
]);
setting()->set([
'company.name' => $this->faker->text(15),
'company.address' => 'New Street 1254',
'company.city' => 'London',
'company.country' => $this->faker->countryCode,
'default.currency' => 'USD',
'default.locale' => 'en-GB',
]);
setting()->save();
});
}
} }

View File

@ -4,15 +4,10 @@ namespace Database\Factories;
use App\Abstracts\Factory; use App\Abstracts\Factory;
use App\Models\Banking\Account; use App\Models\Banking\Account;
use App\Models\Banking\Transaction;
use App\Models\Banking\Transfer as Model; use App\Models\Banking\Transfer as Model;
use App\Models\Setting\Category;
use App\Traits\Categories;
class Transfer extends Factory class Transfer extends Factory
{ {
use Categories;
/** /**
* The name of the factory's corresponding model. * The name of the factory's corresponding model.
* *
@ -27,42 +22,20 @@ class Transfer extends Factory
*/ */
public function definition() public function definition()
{ {
$accounts = Account::enabled()->get(); $from_account = Account::factory()->enabled()->default_currency()->create();
if ($accounts->count() >= 2) { $to_account = Account::factory()->enabled()->default_currency()->create();
$random = $accounts->random(2);
$expense_account = $random->first();
$income_account = $random->last();
} else {
$expense_account = $accounts->first();
$income_account = Account::factory()->enabled()->default_currency()->create();
}
$request = [
'amount' => $this->faker->randomFloat(2, 1, 1000),
'paid_at' => $this->faker->dateTimeBetween(now()->startOfYear(), now()->endOfYear())->format('Y-m-d'),
'category_id' => $this->getTransferCategoryId(),
'description' => $this->faker->text(20),
'reference' => $this->faker->text(20),
'created_from' => 'core::factory',
];
$expense_transaction = Transaction::factory()->create(array_merge($request, [
'type' => Transaction::EXPENSE_TRANSFER_TYPE,
'account_id' => $expense_account->id,
]));
$income_transaction = Transaction::factory()->create(array_merge($request, [
'type' => Transaction::INCOME_TRANSFER_TYPE,
'account_id' => $income_account->id,
]));
return [ return [
'company_id' => $this->company->id, 'company_id' => $this->company->id,
'expense_transaction_id' => $expense_transaction->id, 'from_account_id' => $from_account->id,
'income_transaction_id' => $income_transaction->id, 'to_account_id' => $to_account->id,
'amount' => $this->faker->randomFloat(2, 1, 1000),
'transferred_at' => $this->faker->date(),
'description'=> $this->faker->text(20),
'payment_method' => setting('default.payment_method'),
'reference' => $this->faker->text(20),
'created_from' => 'core::factory',
]; ];
} }
} }

View File

@ -7,6 +7,7 @@ use App\Jobs\Banking\CreateTransaction;
use App\Models\Banking\Transaction; use App\Models\Banking\Transaction;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
use Maatwebsite\Excel\Facades\Excel;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
class TransactionsTest extends FeatureTestCase class TransactionsTest extends FeatureTestCase
@ -119,16 +120,16 @@ class TransactionsTest extends FeatureTestCase
$count = 5; $count = 5;
Transaction::factory()->income()->count($count)->create(); Transaction::factory()->income()->count($count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->get(route('transactions.export')) ->get(route('transactions.export'))
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.transactions', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.transactions', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($count) { function (Export $export) use ($count) {
// Assert that the correct export is downloaded. // Assert that the correct export is downloaded.
return $export->collection()->count() === $count; return $export->collection()->count() === $count;
@ -143,7 +144,7 @@ class TransactionsTest extends FeatureTestCase
$transactions = Transaction::factory()->income()->count($create_count)->create(); $transactions = Transaction::factory()->income()->count($create_count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -152,10 +153,10 @@ class TransactionsTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.transactions', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.transactions', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($select_count) { function (Export $export) use ($select_count) {
return $export->collection()->count() === $select_count; return $export->collection()->count() === $select_count;
} }
@ -164,7 +165,7 @@ class TransactionsTest extends FeatureTestCase
public function testItShouldImportTransactions() public function testItShouldImportTransactions()
{ {
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -178,7 +179,7 @@ class TransactionsTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::assertImported('transactions.xlsx'); Excel::assertImported('transactions.xlsx');
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }

View File

@ -4,10 +4,10 @@ namespace Tests\Feature\Banking;
use App\Exports\Banking\Transfers as Export; use App\Exports\Banking\Transfers as Export;
use App\Jobs\Banking\CreateTransfer; use App\Jobs\Banking\CreateTransfer;
use App\Models\Banking\Account;
use App\Models\Banking\Transfer; use App\Models\Banking\Transfer;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
use Maatwebsite\Excel\Facades\Excel;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
class TransfersTest extends FeatureTestCase class TransfersTest extends FeatureTestCase
@ -76,18 +76,20 @@ class TransfersTest extends FeatureTestCase
public function testItShouldExportTransfers() public function testItShouldExportTransfers()
{ {
$count = 5; $count = 5;
Transfer::factory()->count($count)->create(); foreach (Transfer::factory()->count($count)->raw() as $request) {
$this->dispatch(new CreateTransfer($request));
}
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->get(route('transfers.export')) ->get(route('transfers.export'))
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.transfers', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.transfers', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($count) { function (Export $export) use ($count) {
// Assert that the correct export is downloaded. // Assert that the correct export is downloaded.
return $export->collection()->count() === $count; return $export->collection()->count() === $count;
@ -100,21 +102,23 @@ class TransfersTest extends FeatureTestCase
$create_count = 5; $create_count = 5;
$select_count = 3; $select_count = 3;
$transfers = Transfer::factory()->count($create_count)->create(); foreach (Transfer::factory()->count($create_count)->raw() as $request) {
$responses[] = $this->dispatch(new CreateTransfer($request));
}
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
route('bulk-actions.action', ['group' => 'banking', 'type' => 'transfers']), route('bulk-actions.action', ['group' => 'banking', 'type' => 'transfers']),
['handle' => 'export', 'selected' => $transfers->take($select_count)->pluck('id')->toArray()] ['handle' => 'export', 'selected' => collect($responses)->take($select_count)->pluck('id')->toArray()]
) )
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.transfers', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.transfers', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($select_count) { function (Export $export) use ($select_count) {
return $export->collection()->count() === $select_count; return $export->collection()->count() === $select_count;
} }
@ -123,7 +127,7 @@ class TransfersTest extends FeatureTestCase
public function testItShouldImportTransfers() public function testItShouldImportTransfers()
{ {
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -137,26 +141,13 @@ class TransfersTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::assertImported('transfers.xlsx'); Excel::assertImported('transfers.xlsx');
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }
public function getRequest() public function getRequest()
{ {
$from_account = Account::factory()->enabled()->default_currency()->create(); return Transfer::factory()->raw();
$to_account = Account::factory()->enabled()->default_currency()->create();
return [
'company_id' => $this->company->id,
'from_account_id' => $from_account->id,
'to_account_id' => $to_account->id,
'amount' => $this->faker->randomFloat(2, 1, 1000),
'transferred_at' => $this->faker->date(),
'description'=> $this->faker->text(20),
'payment_method' => setting('default.payment_method'),
'reference' => $this->faker->text(20),
];
} }
} }

View File

@ -0,0 +1,126 @@
<?php
namespace Tests\Feature\Common;
use App\Models\Common\Company;
use Tests\Feature\FeatureTestCase;
class CompaniesTest extends FeatureTestCase
{
public function testItShouldSeeCompanyInDashboard()
{
$this->loginAs()
->get(route('dashboard'))
->assertOk()
->assertSeeText($this->company->name)
->assertSeeText(trans('general.title.manage', ['type' => trans_choice('general.companies', 2)]));
}
public function testItShouldSeeCompanyListPage()
{
$this->loginAs()
->get(route('companies.index'))
->assertOk()
->assertSeeText(trans_choice('general.companies', 2));
}
public function testItShouldSeeCompanyCreatePage()
{
$this->loginAs()
->get(route('companies.create'))
->assertOk()
->assertSeeText(trans('general.title.new', ['type' => trans_choice('general.companies', 1)]));
}
public function testItShouldCreateCompany()
{
$request = $this->getRequest();
$response = $this->loginAs()
->post(route('companies.store'), $request)
->assertOk();
$this->assertFlashLevel('success');
$this->assertHasCompany($response->baseResponse->original['data']->id, $request);
}
public function testItShouldSwitchCompany()
{
$request = $this->getRequest();
$company = $this->createCompany($request);
$this->loginAs()
->get(route('companies.switch', $company->id))
->assertStatus(302);
$this->assertEquals($company->id, company_id());
}
public function testItShouldSeeCompanyUpdatePage()
{
$request = $this->getRequest();
$company = $this->createCompany($request);
$this->loginAs()
->get(route('companies.edit', $company->id))
->assertOk()
->assertSee($company->name);
}
public function testItShouldUpdateCompany()
{
$request = $this->getRequest();
$company = $this->createCompany($request);
$request['name'] = $this->faker->text(15);
$this->loginAs()
->patch(route('companies.update', $company->id), $request)
->assertOk();
$this->assertFlashLevel('success');
$this->assertHasCompany($company->id, $request);
}
public function testItShouldDeleteCompany()
{
$request = $this->getRequest();
$company = $this->createCompany($request);
$this->loginAs()
->delete(route('companies.destroy', $company->id))
->assertOk();
$this->assertFlashLevel('success');
}
public function getRequest(): array
{
return Company::factory()->enabled()->raw();
}
public function createCompany(array $request): Company
{
$response = $this->loginAs()
->post(route('companies.store'), $request)
->assertOk();
return $response->baseResponse->original['data'];
}
public function assertHasCompany(int $id, array $request): void
{
company($id)->makeCurrent();
$this->assertEquals(setting('company.name'), $request['name']);
$this->assertEquals(setting('company.email'), $request['email']);
$this->assertEquals(setting('company.country'), $request['country']);
$this->assertEquals(setting('default.currency'), $request['currency']);
}
}

View File

@ -7,6 +7,7 @@ use App\Jobs\Common\CreateItem;
use App\Models\Common\Item; use App\Models\Common\Item;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
use Maatwebsite\Excel\Facades\Excel;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
class ItemsTest extends FeatureTestCase class ItemsTest extends FeatureTestCase
@ -90,16 +91,16 @@ class ItemsTest extends FeatureTestCase
$count = 5; $count = 5;
Item::factory()->count($count)->create(); Item::factory()->count($count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->get(route('items.export')) ->get(route('items.export'))
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.items', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.items', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($count) { function (Export $export) use ($count) {
// Assert that the correct export is downloaded. // Assert that the correct export is downloaded.
return $export->sheets()[0]->collection()->count() === $count; return $export->sheets()[0]->collection()->count() === $count;
@ -114,7 +115,7 @@ class ItemsTest extends FeatureTestCase
$items = Item::factory()->count($create_count)->create(); $items = Item::factory()->count($create_count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -123,10 +124,10 @@ class ItemsTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.items', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.items', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($select_count) { function (Export $export) use ($select_count) {
// Assert that the correct export is downloaded. // Assert that the correct export is downloaded.
return $export->sheets()[0]->collection()->count() === $select_count; return $export->sheets()[0]->collection()->count() === $select_count;
@ -136,7 +137,7 @@ class ItemsTest extends FeatureTestCase
public function testItShouldImportItems() public function testItShouldImportItems()
{ {
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -150,7 +151,7 @@ class ItemsTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::assertImported('items.xlsx'); Excel::assertImported('items.xlsx');
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }

View File

@ -9,6 +9,7 @@ use Illuminate\Http\UploadedFile;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Maatwebsite\Excel\Facades\Excel;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
class BillsTest extends FeatureTestCase class BillsTest extends FeatureTestCase
@ -170,16 +171,16 @@ class BillsTest extends FeatureTestCase
$count = 5; $count = 5;
Document::factory()->bill()->count($count)->create(); Document::factory()->bill()->count($count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->get(route('bills.export')) ->get(route('bills.export'))
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.bills', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.bills', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($count) { function (Export $export) use ($count) {
// Assert that the correct export is downloaded. // Assert that the correct export is downloaded.
return $export->sheets()[0]->collection()->count() === $count; return $export->sheets()[0]->collection()->count() === $count;
@ -194,7 +195,7 @@ class BillsTest extends FeatureTestCase
$bills = Document::factory()->bill()->count($create_count)->create(); $bills = Document::factory()->bill()->count($create_count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -203,10 +204,10 @@ class BillsTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.bills', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.bills', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($select_count) { function (Export $export) use ($select_count) {
return $export->sheets()[0]->collection()->count() === $select_count; return $export->sheets()[0]->collection()->count() === $select_count;
} }
@ -215,7 +216,7 @@ class BillsTest extends FeatureTestCase
public function testItShouldImportBills() public function testItShouldImportBills()
{ {
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -229,7 +230,7 @@ class BillsTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::assertImported('bills.xlsx'); Excel::assertImported('bills.xlsx');
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }

View File

@ -7,6 +7,7 @@ use App\Jobs\Common\CreateContact;
use App\Models\Common\Contact; use App\Models\Common\Contact;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
use Maatwebsite\Excel\Facades\Excel;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
class VendorsTest extends FeatureTestCase class VendorsTest extends FeatureTestCase
@ -116,16 +117,16 @@ class VendorsTest extends FeatureTestCase
Contact::factory()->vendor()->count(5)->create(); Contact::factory()->vendor()->count(5)->create();
$count = Contact::vendor()->count(); $count = Contact::vendor()->count();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->get(route('vendors.export')) ->get(route('vendors.export'))
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.vendors', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.vendors', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($count) { function (Export $export) use ($count) {
// Assert that the correct export is downloaded. // Assert that the correct export is downloaded.
return $export->collection()->count() === $count; return $export->collection()->count() === $count;
@ -140,7 +141,7 @@ class VendorsTest extends FeatureTestCase
$vendors = Contact::factory()->vendor()->count($create_count)->create(); $vendors = Contact::factory()->vendor()->count($create_count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -149,10 +150,10 @@ class VendorsTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.vendors', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.vendors', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($select_count) { function (Export $export) use ($select_count) {
return $export->collection()->count() === $select_count; return $export->collection()->count() === $select_count;
} }
@ -161,7 +162,7 @@ class VendorsTest extends FeatureTestCase
public function testItShouldImportVendors() public function testItShouldImportVendors()
{ {
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -175,7 +176,7 @@ class VendorsTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::assertImported('vendors.xlsx'); Excel::assertImported('vendors.xlsx');
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }

View File

@ -8,6 +8,7 @@ use App\Models\Auth\User;
use App\Models\Common\Contact; use App\Models\Common\Contact;
use Illuminate\Http\UploadedFile; use Illuminate\Http\UploadedFile;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
use Maatwebsite\Excel\Facades\Excel;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
class CustomersTest extends FeatureTestCase class CustomersTest extends FeatureTestCase
@ -137,16 +138,16 @@ class CustomersTest extends FeatureTestCase
Contact::factory()->customer()->count(5)->create(); Contact::factory()->customer()->count(5)->create();
$count = Contact::customer()->count(); $count = Contact::customer()->count();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->get(route('customers.export')) ->get(route('customers.export'))
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.customers', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.customers', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($count) { function (Export $export) use ($count) {
// Assert that the correct export is downloaded. // Assert that the correct export is downloaded.
return $export->collection()->count() === $count; return $export->collection()->count() === $count;
@ -161,7 +162,7 @@ class CustomersTest extends FeatureTestCase
$customers = Contact::factory()->customer()->count($create_count)->create(); $customers = Contact::factory()->customer()->count($create_count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -170,10 +171,10 @@ class CustomersTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.customers', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.customers', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($select_count) { function (Export $export) use ($select_count) {
return $export->collection()->count() === $select_count; return $export->collection()->count() === $select_count;
} }
@ -182,7 +183,7 @@ class CustomersTest extends FeatureTestCase
public function testItShouldImportCustomers() public function testItShouldImportCustomers()
{ {
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -196,7 +197,7 @@ class CustomersTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::assertImported('customers.xlsx'); Excel::assertImported('customers.xlsx');
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }

View File

@ -9,6 +9,7 @@ use Illuminate\Http\UploadedFile;
use Illuminate\Support\Carbon; use Illuminate\Support\Carbon;
use Illuminate\Support\Facades\File; use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Maatwebsite\Excel\Facades\Excel;
use Tests\Feature\FeatureTestCase; use Tests\Feature\FeatureTestCase;
class InvoicesTest extends FeatureTestCase class InvoicesTest extends FeatureTestCase
@ -181,16 +182,16 @@ class InvoicesTest extends FeatureTestCase
$count = 5; $count = 5;
Document::factory()->invoice()->count($count)->create(); Document::factory()->invoice()->count($count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->get(route('invoices.export')) ->get(route('invoices.export'))
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.invoices', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.invoices', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($count) { function (Export $export) use ($count) {
// Assert that the correct export is downloaded. // Assert that the correct export is downloaded.
return $export->sheets()[0]->collection()->count() === $count; return $export->sheets()[0]->collection()->count() === $count;
@ -205,7 +206,7 @@ class InvoicesTest extends FeatureTestCase
$invoices = Document::factory()->invoice()->count($create_count)->create(); $invoices = Document::factory()->invoice()->count($create_count)->create();
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -214,10 +215,10 @@ class InvoicesTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::matchByRegex(); Excel::matchByRegex();
\Excel::assertDownloaded( Excel::assertDownloaded(
'/' . \Str::filename(trans_choice('general.invoices', 2)) . '-\d{10}\.xlsx/', '/' . str()->filename(trans_choice('general.invoices', 2)) . '-\d{10}\.xlsx/',
function (Export $export) use ($select_count) { function (Export $export) use ($select_count) {
return $export->sheets()[0]->collection()->count() === $select_count; return $export->sheets()[0]->collection()->count() === $select_count;
} }
@ -226,7 +227,7 @@ class InvoicesTest extends FeatureTestCase
public function testItShouldImportInvoices() public function testItShouldImportInvoices()
{ {
\Excel::fake(); Excel::fake();
$this->loginAs() $this->loginAs()
->post( ->post(
@ -240,7 +241,7 @@ class InvoicesTest extends FeatureTestCase
) )
->assertStatus(200); ->assertStatus(200);
\Excel::assertImported('invoices.xlsx'); Excel::assertImported('invoices.xlsx');
$this->assertFlashLevel('success'); $this->assertFlashLevel('success');
} }