mirror of
https://github.com/stancl/tenancy-docs.git
synced 2025-12-12 10:14:03 +00:00
* Update testing.blade.md Added call to parent's setUp() method others some essential operations will not be run e.g resetting of db, etc. * Reindent Co-authored-by: Samuel Stancl <samuel.stancl@gmail.com>
62 lines
1.2 KiB
Markdown
62 lines
1.2 KiB
Markdown
---
|
|
title: Testing
|
|
extends: _layouts.documentation
|
|
section: content
|
|
---
|
|
|
|
# Testing
|
|
|
|
TODO: Review
|
|
|
|
## Central app
|
|
|
|
To test your central app, just write normal Laravel tests.
|
|
|
|
## Tenant app
|
|
|
|
Note: If you're using multi-database tenancy & the automatic mode, it's not possible to use `:memory:` SQLite databases or the `RefreshDatabase` trait due to the switching of default database.
|
|
|
|
To test the tenant part of the application, create a tenant in the `setUp()` method and initialize tenancy.
|
|
|
|
You may also want to do something like this:
|
|
|
|
```php
|
|
class TestCase // extends ...
|
|
{
|
|
protected $tenancy = false;
|
|
|
|
public function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
|
|
if ($this->tenancy) {
|
|
$this->initializeTenancy();
|
|
}
|
|
}
|
|
|
|
public function initializeTenancy()
|
|
{
|
|
$tenant = Tenant::create();
|
|
tenancy()->initialize($tenant);
|
|
}
|
|
|
|
// ...
|
|
}
|
|
```
|
|
|
|
And in your individual test cases:
|
|
|
|
```php
|
|
class FooTest extends TestCase
|
|
{
|
|
protected $tenancy = true;
|
|
|
|
/** @test */
|
|
public function some_test()
|
|
{
|
|
$this->assertTrue(...);
|
|
}
|
|
}
|
|
```
|
|
|
|
Or you may want to create a separate TestCase class for tenant tests, for better organization.
|