fixed tests and bulk action export
This commit is contained in:
parent
21e14f1191
commit
4e924ab46d
@ -7,7 +7,8 @@ use App\Jobs\Common\UpdateContact;
|
||||
use App\Jobs\Banking\DeleteTransaction;
|
||||
use App\Traits\Jobs;
|
||||
use App\Traits\Relationships;
|
||||
use Artisan;
|
||||
use App\Utilities\Export;
|
||||
use App\Utilities\Import;
|
||||
|
||||
abstract class BulkAction
|
||||
{
|
||||
@ -164,4 +165,32 @@ abstract class BulkAction
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the excel file or catch errors
|
||||
*
|
||||
* @param $class
|
||||
* @param $request
|
||||
* @param $translation
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function importExcel($class, $request, $translation)
|
||||
{
|
||||
return Import::fromExcel($class, $request, $translation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Export the excel file or catch errors
|
||||
*
|
||||
* @param $class
|
||||
* @param $translation
|
||||
* @param $extension
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function exportExcel($class, $translation, $extension = 'xlsx')
|
||||
{
|
||||
return Export::toExcel($class, $translation, $extension);
|
||||
}
|
||||
}
|
||||
|
@ -3,19 +3,17 @@
|
||||
namespace App\Abstracts\Http;
|
||||
|
||||
use App\Abstracts\Http\Response;
|
||||
use App\Jobs\Auth\NotifyUser;
|
||||
use App\Jobs\Common\CreateMediableForExport;
|
||||
use App\Notifications\Common\ImportCompleted;
|
||||
use App\Traits\Jobs;
|
||||
use App\Traits\Permissions;
|
||||
use App\Traits\Relationships;
|
||||
use App\Utilities\Export;
|
||||
use App\Utilities\Import;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
abstract class Controller extends BaseController
|
||||
{
|
||||
@ -78,57 +76,11 @@ abstract class Controller extends BaseController
|
||||
* @param $request
|
||||
* @param $translation
|
||||
*
|
||||
* @return mixed
|
||||
* @return array
|
||||
*/
|
||||
public function importExcel($class, $request, $translation)
|
||||
{
|
||||
try {
|
||||
$file = $request->file('import');
|
||||
|
||||
if (should_queue()) {
|
||||
$class->queue($file)->onQueue('imports')->chain([
|
||||
new NotifyUser(user(), new ImportCompleted),
|
||||
]);
|
||||
|
||||
$message = trans('messages.success.import_queued', ['type' => $translation]);
|
||||
} else {
|
||||
$class->import($file);
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => $translation]);
|
||||
}
|
||||
|
||||
$response = [
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'data' => null,
|
||||
'message' => $message,
|
||||
];
|
||||
} catch (\Throwable $e) {
|
||||
if ($e instanceof \Maatwebsite\Excel\Validators\ValidationException) {
|
||||
foreach ($e->failures() as $failure) {
|
||||
$message = trans('messages.error.import_column', [
|
||||
'message' => collect($failure->errors())->first(),
|
||||
'column' => $failure->attribute(),
|
||||
'line' => $failure->row(),
|
||||
]);
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = '';
|
||||
} else {
|
||||
$message = $e->getMessage();
|
||||
}
|
||||
|
||||
$response = [
|
||||
'success' => false,
|
||||
'error' => true,
|
||||
'data' => null,
|
||||
'message' => $message,
|
||||
];
|
||||
}
|
||||
|
||||
return $response;
|
||||
return Import::fromExcel($class, $request, $translation);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -142,33 +94,6 @@ abstract class Controller extends BaseController
|
||||
*/
|
||||
public function exportExcel($class, $translation, $extension = 'xlsx')
|
||||
{
|
||||
try {
|
||||
$file_name = Str::filename($translation) . '-' . time() . '.' . $extension;
|
||||
|
||||
if (should_queue()) {
|
||||
$disk = 'temp';
|
||||
|
||||
if (config('excel.temporary_files.remote_disk') !== null) {
|
||||
$disk = config('excel.temporary_files.remote_disk');
|
||||
$file_name = config('excel.temporary_files.remote_prefix') . $file_name;
|
||||
}
|
||||
|
||||
$class->queue($file_name, $disk)->onQueue('exports')->chain([
|
||||
new CreateMediableForExport(user(), $file_name),
|
||||
]);
|
||||
|
||||
$message = trans('messages.success.export_queued', ['type' => $translation]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return back();
|
||||
} else {
|
||||
return $class->download($file_name);
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
flash($e->getMessage())->error()->important();
|
||||
|
||||
return back();
|
||||
}
|
||||
return Export::toExcel($class, $translation, $extension);
|
||||
}
|
||||
}
|
||||
|
@ -32,6 +32,6 @@ class Transactions extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), \Str::filename(trans_choice('general.transactions', 2)) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.transactions', 2));
|
||||
}
|
||||
}
|
||||
|
@ -41,6 +41,6 @@ class Transfers extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), \Str::filename(trans_choice('general.transfers', 2)) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.transfers', 2));
|
||||
}
|
||||
}
|
||||
|
@ -55,6 +55,6 @@ class Items extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), trans_choice('general.items', 2) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.items', 2));
|
||||
}
|
||||
}
|
||||
|
@ -104,6 +104,6 @@ class Bills extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), \Str::filename(trans_choice('general.bills', 2)) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.bills', 2));
|
||||
}
|
||||
}
|
||||
|
@ -32,6 +32,6 @@ class Payments extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), \Str::filename(trans_choice('general.payments', 2)) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.payments', 2));
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +47,6 @@ class Vendors extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), \Str::filename(trans_choice('general.vendors', 2)) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.vendors', 2));
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +47,6 @@ class Customers extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), \Str::filename(trans_choice('general.customers', 2)) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.customers', 2));
|
||||
}
|
||||
}
|
||||
|
@ -108,6 +108,6 @@ class Invoices extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), \Str::filename(trans_choice('general.invoices', 2)) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.invoices', 2));
|
||||
}
|
||||
}
|
||||
|
@ -32,6 +32,6 @@ class Revenues extends BulkAction
|
||||
{
|
||||
$selected = $this->getSelectedInput($request);
|
||||
|
||||
return \Excel::download(new Export($selected), \Str::filename(trans_choice('general.revenues', 2)) . '.xlsx');
|
||||
return $this->exportExcel(new Export($selected), trans_choice('general.revenues', 2));
|
||||
}
|
||||
}
|
||||
|
51
app/Utilities/Export.php
Normal file
51
app/Utilities/Export.php
Normal file
@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
use App\Jobs\Common\CreateMediableForExport;
|
||||
use Illuminate\Support\Str;
|
||||
use Throwable;
|
||||
|
||||
class Export
|
||||
{
|
||||
/**
|
||||
* Export the excel file or catch errors
|
||||
*
|
||||
* @param $class
|
||||
* @param $translation
|
||||
* @param $extension
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public static function toExcel($class, $translation, $extension = 'xlsx')
|
||||
{
|
||||
try {
|
||||
$file_name = Str::filename($translation) . '-' . time() . '.' . $extension;
|
||||
|
||||
if (should_queue()) {
|
||||
$disk = 'temp';
|
||||
|
||||
if (config('excel.temporary_files.remote_disk') !== null) {
|
||||
$disk = config('excel.temporary_files.remote_disk');
|
||||
$file_name = config('excel.temporary_files.remote_prefix') . $file_name;
|
||||
}
|
||||
|
||||
$class->queue($file_name, $disk)->onQueue('exports')->chain([
|
||||
new CreateMediableForExport(user(), $file_name),
|
||||
]);
|
||||
|
||||
$message = trans('messages.success.export_queued', ['type' => $translation]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return back();
|
||||
} else {
|
||||
return $class->download($file_name);
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
flash($e->getMessage())->error()->important();
|
||||
|
||||
return back();
|
||||
}
|
||||
}
|
||||
}
|
71
app/Utilities/Import.php
Normal file
71
app/Utilities/Import.php
Normal file
@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace App\Utilities;
|
||||
|
||||
use App\Jobs\Auth\NotifyUser;
|
||||
use App\Notifications\Common\ImportCompleted;
|
||||
use Maatwebsite\Excel\Validators\ValidationException;
|
||||
use Throwable;
|
||||
|
||||
class Import
|
||||
{
|
||||
/**
|
||||
* Import the excel file or catch errors
|
||||
*
|
||||
* @param $class
|
||||
* @param $request
|
||||
* @param $translation
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function fromExcel($class, $request, $translation)
|
||||
{
|
||||
try {
|
||||
$file = $request->file('import');
|
||||
|
||||
if (should_queue()) {
|
||||
$class->queue($file)->onQueue('imports')->chain([
|
||||
new NotifyUser(user(), new ImportCompleted),
|
||||
]);
|
||||
|
||||
$message = trans('messages.success.import_queued', ['type' => $translation]);
|
||||
} else {
|
||||
$class->import($file);
|
||||
|
||||
$message = trans('messages.success.imported', ['type' => $translation]);
|
||||
}
|
||||
|
||||
$response = [
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'data' => null,
|
||||
'message' => $message,
|
||||
];
|
||||
} catch (Throwable $e) {
|
||||
if ($e instanceof ValidationException) {
|
||||
foreach ($e->failures() as $failure) {
|
||||
$message = trans('messages.error.import_column', [
|
||||
'message' => collect($failure->errors())->first(),
|
||||
'column' => $failure->attribute(),
|
||||
'line' => $failure->row(),
|
||||
]);
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
$message = '';
|
||||
} else {
|
||||
$message = $e->getMessage();
|
||||
}
|
||||
|
||||
$response = [
|
||||
'success' => false,
|
||||
'error' => true,
|
||||
'data' => null,
|
||||
'message' => $message,
|
||||
];
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
@ -84,8 +84,10 @@ class TransfersTest extends FeatureTestCase
|
||||
->get(route('transfers.export'))
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.transfers', 2)) . '.xlsx',
|
||||
'/' . \Str::filename(trans_choice('general.transfers', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->collection()->count() === $count;
|
||||
@ -95,22 +97,26 @@ class TransfersTest extends FeatureTestCase
|
||||
|
||||
public function testItShouldExportSelectedTransfers()
|
||||
{
|
||||
$count = 5;
|
||||
$transfers = Transfer::factory()->count($count)->create();
|
||||
$create_count = 5;
|
||||
$select_count = 3;
|
||||
|
||||
$transfers = Transfer::factory()->count($create_count)->create();
|
||||
|
||||
\Excel::fake();
|
||||
|
||||
$this->loginAs()
|
||||
->post(
|
||||
route('bulk-actions.action', ['group' => 'banking', 'type' => 'transfers']),
|
||||
['handle' => 'export', 'selected' => [$transfers->random()->id]]
|
||||
['handle' => 'export', 'selected' => $transfers->take($select_count)->pluck('id')->toArray()]
|
||||
)
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.transfers', 2)) . '.xlsx',
|
||||
function (Export $export) {
|
||||
return $export->collection()->count() === 1;
|
||||
'/' . \Str::filename(trans_choice('general.transfers', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($select_count) {
|
||||
return $export->collection()->count() === $select_count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -96,33 +96,40 @@ class ItemsTest extends FeatureTestCase
|
||||
->get(route('items.export'))
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.items', 2)) . '.xlsx',
|
||||
'/' . \Str::filename(trans_choice('general.items', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->sheets()['items']->collection()->count() === $count;
|
||||
return $export->sheets()[0]->collection()->count() === $count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public function testItShouldExportSelectedItems()
|
||||
{
|
||||
$count = 5;
|
||||
$items = Item::factory()->count($count)->create();
|
||||
$create_count = 5;
|
||||
$select_count = 3;
|
||||
|
||||
$items = Item::factory()->count($create_count)->create();
|
||||
|
||||
\Excel::fake();
|
||||
|
||||
$this->loginAs()
|
||||
->post(
|
||||
route('bulk-actions.action', ['group' => 'common', 'type' => 'items']),
|
||||
['handle' => 'export', 'selected' => [$items->random()->id]]
|
||||
['handle' => 'export', 'selected' => $items->take($select_count)->pluck('id')->toArray()]
|
||||
)
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.items', 2)) . '.xlsx',
|
||||
function (Export $export) {
|
||||
return $export->sheets()['items']->collection()->count() === 1;
|
||||
'/' . \Str::filename(trans_choice('general.items', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($select_count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->sheets()[0]->collection()->count() === $select_count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -118,33 +118,39 @@ class BillsTest extends FeatureTestCase
|
||||
->get(route('bills.export'))
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.bills', 2)) . '.xlsx',
|
||||
'/' . \Str::filename(trans_choice('general.bills', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->sheets()['bills']->collection()->count() === $count;
|
||||
return $export->sheets()[0]->collection()->count() === $count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public function testItShouldExportSelectedBills()
|
||||
{
|
||||
$count = 5;
|
||||
$bills = Document::factory()->bill()->count($count)->create();
|
||||
$create_count = 5;
|
||||
$select_count = 3;
|
||||
|
||||
$bills = Document::factory()->bill()->count($create_count)->create();
|
||||
|
||||
\Excel::fake();
|
||||
|
||||
$this->loginAs()
|
||||
->post(
|
||||
route('bulk-actions.action', ['group' => 'purchases', 'type' => 'bills']),
|
||||
['handle' => 'export', 'selected' => [$bills->random()->id]]
|
||||
['handle' => 'export', 'selected' => $bills->take($select_count)->pluck('id')->toArray()]
|
||||
)
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.bills', 2)) . '.xlsx',
|
||||
function (Export $export) {
|
||||
return $export->sheets()['bills']->collection()->count() === 1;
|
||||
'/' . \Str::filename(trans_choice('general.bills', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($select_count) {
|
||||
return $export->sheets()[0]->collection()->count() === $select_count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -96,8 +96,10 @@ class PaymentsTest extends FeatureTestCase
|
||||
->get(route('payments.export'))
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.payments', 2)) . '.xlsx',
|
||||
'/' . \Str::filename(trans_choice('general.payments', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->collection()->count() === $count;
|
||||
@ -107,22 +109,26 @@ class PaymentsTest extends FeatureTestCase
|
||||
|
||||
public function testItShouldExportSelectedPayments()
|
||||
{
|
||||
$count = 5;
|
||||
$payments = Transaction::factory()->expense()->count($count)->create();
|
||||
$create_count = 5;
|
||||
$select_count = 3;
|
||||
|
||||
$payments = Transaction::factory()->expense()->count($create_count)->create();
|
||||
|
||||
\Excel::fake();
|
||||
|
||||
$this->loginAs()
|
||||
->post(
|
||||
route('bulk-actions.action', ['group' => 'purchases', 'type' => 'payments']),
|
||||
['handle' => 'export', 'selected' => [$payments->random()->id]]
|
||||
['handle' => 'export', 'selected' => $payments->take($select_count)->pluck('id')->toArray()]
|
||||
)
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.payments', 2)) . '.xlsx',
|
||||
function (Export $export) {
|
||||
return $export->collection()->count() === 1;
|
||||
'/' . \Str::filename(trans_choice('general.payments', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($select_count) {
|
||||
return $export->collection()->count() === $select_count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -110,8 +110,10 @@ class VendorsTest extends FeatureTestCase
|
||||
->get(route('vendors.export'))
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.vendors', 2)) . '.xlsx',
|
||||
'/' . \Str::filename(trans_choice('general.vendors', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->collection()->count() === $count;
|
||||
@ -121,22 +123,26 @@ class VendorsTest extends FeatureTestCase
|
||||
|
||||
public function testItShouldExportSelectedVendors()
|
||||
{
|
||||
$count = 5;
|
||||
$vendors = Contact::factory()->vendor()->count($count)->create();
|
||||
$create_count = 5;
|
||||
$select_count = 3;
|
||||
|
||||
$vendors = Contact::factory()->vendor()->count($create_count)->create();
|
||||
|
||||
\Excel::fake();
|
||||
|
||||
$this->loginAs()
|
||||
->post(
|
||||
route('bulk-actions.action', ['group' => 'purchases', 'type' => 'vendors']),
|
||||
['handle' => 'export', 'selected' => [$vendors->random()->id]]
|
||||
['handle' => 'export', 'selected' => $vendors->take($select_count)->pluck('id')->toArray()]
|
||||
)
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.vendors', 2)) . '.xlsx',
|
||||
function (Export $export) {
|
||||
return $export->collection()->count() === 1;
|
||||
'/' . \Str::filename(trans_choice('general.vendors', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($select_count) {
|
||||
return $export->collection()->count() === $select_count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -131,8 +131,10 @@ class CustomersTest extends FeatureTestCase
|
||||
->get(route('customers.export'))
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.customers', 2)) . '.xlsx',
|
||||
'/' . \Str::filename(trans_choice('general.customers', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->collection()->count() === $count;
|
||||
@ -142,22 +144,26 @@ class CustomersTest extends FeatureTestCase
|
||||
|
||||
public function testItShouldExportSelectedCustomers()
|
||||
{
|
||||
$count = 5;
|
||||
$customers = Contact::factory()->customer()->count($count)->create();
|
||||
$create_count = 5;
|
||||
$select_count = 3;
|
||||
|
||||
$customers = Contact::factory()->customer()->count($create_count)->create();
|
||||
|
||||
\Excel::fake();
|
||||
|
||||
$this->loginAs()
|
||||
->post(
|
||||
route('bulk-actions.action', ['group' => 'sales', 'type' => 'customers']),
|
||||
['handle' => 'export', 'selected' => [$customers->random()->id]]
|
||||
['handle' => 'export', 'selected' => $customers->take($select_count)->pluck('id')->toArray()]
|
||||
)
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.customers', 2)) . '.xlsx',
|
||||
function (Export $export) {
|
||||
return $export->collection()->count() === 1;
|
||||
'/' . \Str::filename(trans_choice('general.customers', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($select_count) {
|
||||
return $export->collection()->count() === $select_count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -129,33 +129,39 @@ class InvoicesTest extends FeatureTestCase
|
||||
->get(route('invoices.export'))
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.invoices', 2)) . '.xlsx',
|
||||
'/' . \Str::filename(trans_choice('general.invoices', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->sheets()['invoices']->collection()->count() === $count;
|
||||
return $export->sheets()[0]->collection()->count() === $count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
public function testItShouldExportSelectedInvoices()
|
||||
{
|
||||
$count = 5;
|
||||
$invoices = Document::factory()->invoice()->count($count)->create();
|
||||
$create_count = 5;
|
||||
$select_count = 3;
|
||||
|
||||
$invoices = Document::factory()->invoice()->count($create_count)->create();
|
||||
|
||||
\Excel::fake();
|
||||
|
||||
$this->loginAs()
|
||||
->post(
|
||||
route('bulk-actions.action', ['group' => 'sales', 'type' => 'invoices']),
|
||||
['handle' => 'export', 'selected' => [$invoices->random()->id]]
|
||||
['handle' => 'export', 'selected' => $invoices->take($select_count)->pluck('id')->toArray()]
|
||||
)
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.invoices', 2)) . '.xlsx',
|
||||
function (Export $export) {
|
||||
return $export->sheets()['invoices']->collection()->count() === 1;
|
||||
'/' . \Str::filename(trans_choice('general.invoices', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($select_count) {
|
||||
return $export->sheets()[0]->collection()->count() === $select_count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -96,8 +96,10 @@ class RevenuesTest extends FeatureTestCase
|
||||
->get(route('revenues.export'))
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.revenues', 2)) . '.xlsx',
|
||||
'/' . \Str::filename(trans_choice('general.revenues', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($count) {
|
||||
// Assert that the correct export is downloaded.
|
||||
return $export->collection()->count() === $count;
|
||||
@ -107,22 +109,26 @@ class RevenuesTest extends FeatureTestCase
|
||||
|
||||
public function testItShouldExportSelectedRevenues()
|
||||
{
|
||||
$count = 5;
|
||||
$revenues = Transaction::factory()->income()->count($count)->create();
|
||||
$create_count = 5;
|
||||
$select_count = 3;
|
||||
|
||||
$revenues = Transaction::factory()->income()->count($create_count)->create();
|
||||
|
||||
\Excel::fake();
|
||||
|
||||
$this->loginAs()
|
||||
->post(
|
||||
route('bulk-actions.action', ['group' => 'sales', 'type' => 'revenues']),
|
||||
['handle' => 'export', 'selected' => [$revenues->random()->id]]
|
||||
['handle' => 'export', 'selected' => $revenues->take($select_count)->pluck('id')->toArray()]
|
||||
)
|
||||
->assertStatus(200);
|
||||
|
||||
\Excel::matchByRegex();
|
||||
|
||||
\Excel::assertDownloaded(
|
||||
\Str::filename(trans_choice('general.revenues', 2)) . '.xlsx',
|
||||
function (Export $export) {
|
||||
return $export->collection()->count() === 1;
|
||||
'/' . \Str::filename(trans_choice('general.revenues', 2)) . '-\d{10}\.xlsx/',
|
||||
function (Export $export) use ($select_count) {
|
||||
return $export->collection()->count() === $select_count;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user