diff --git a/tests/Feature/Sales/RevenuesTest.php b/tests/Feature/Sales/RevenuesTest.php index 9b5b4a45f..38ebf6766 100644 --- a/tests/Feature/Sales/RevenuesTest.php +++ b/tests/Feature/Sales/RevenuesTest.php @@ -2,8 +2,11 @@ namespace Tests\Feature\Sales; +use App\Exports\Sales\Revenues as Export; use App\Jobs\Banking\CreateTransaction; use App\Models\Banking\Transaction; +use Illuminate\Http\UploadedFile; +use Illuminate\Support\Facades\File; use Tests\Feature\FeatureTestCase; class RevenuesTest extends FeatureTestCase @@ -82,6 +85,69 @@ class RevenuesTest extends FeatureTestCase $this->assertSoftDeleted('transactions', $request); } + public function testItShouldExportRevenues() + { + $count = 5; + Transaction::factory()->income()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->get(route('revenues.export')) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.revenues', 2)) . '.xlsx', + function (Export $export) use ($count) { + // Assert that the correct export is downloaded. + return $export->collection()->count() === $count; + } + ); + } + + public function testItShouldExportSelectedRevenues() + { + $count = 5; + $revenues = Transaction::factory()->income()->count($count)->create(); + + \Excel::fake(); + + $this->loginAs() + ->post( + route('bulk-actions.action', ['group' => 'sales', 'type' => 'revenues']), + ['handle' => 'export', 'selected' => [$revenues->random()->id]] + ) + ->assertStatus(200); + + \Excel::assertDownloaded( + \Str::filename(trans_choice('general.revenues', 2)) . '.xlsx', + function (Export $export) { + return $export->collection()->count() === 1; + } + ); + } + + public function testItShouldImportRevenues() + { + \Excel::fake(); + + $this->loginAs() + ->post( + route('revenues.import'), + [ + 'import' => UploadedFile::fake()->createWithContent( + 'revenues.xlsx', + File::get(public_path('files/import/revenues.xlsx')) + ), + ] + ) + ->assertStatus(200); + + \Excel::assertImported('revenues.xlsx'); + + $this->assertFlashLevel('success'); + } + public function getRequest() { return Transaction::factory()->income()->raw();