You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace Tests;
  3. use App\Models\Common\Offering;
  4. use App\Models\Company;
  5. use App\Models\User;
  6. use App\Testing\TestsReport;
  7. use Database\Seeders\TestDatabaseSeeder;
  8. use Filament\Facades\Filament;
  9. use Illuminate\Foundation\Testing\RefreshDatabase;
  10. use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
  11. use Livewire\Features\SupportTesting\Testable;
  12. abstract class TestCase extends BaseTestCase
  13. {
  14. use RefreshDatabase;
  15. /**
  16. * Indicates whether the default seeder should run before each test.
  17. */
  18. protected bool $seed = true;
  19. /**
  20. * Run a specific seeder before each test.
  21. */
  22. protected string $seeder = TestDatabaseSeeder::class;
  23. protected User $testUser;
  24. protected ?Company $testCompany;
  25. protected function setUp(): void
  26. {
  27. parent::setUp();
  28. Testable::mixin(new TestsReport);
  29. $this->testUser = User::first();
  30. $this->testCompany = $this->testUser->ownedCompanies->first();
  31. $this->testUser->switchCompany($this->testCompany);
  32. $this->actingAs($this->testUser);
  33. Filament::setTenant($this->testCompany);
  34. }
  35. public function withOfferings(): static
  36. {
  37. Offering::factory()
  38. ->for($this->testCompany)
  39. ->withSalesAdjustments()
  40. ->withPurchaseAdjustments()
  41. ->create();
  42. return $this;
  43. }
  44. }