mirror of
https://github.com/archtechx/tenancy.git
synced 2025-12-13 07:54:03 +00:00
Single-domain tenants (#16)
* Add SingleDomainTenant * Add logic for single domain tenants * Test that the single domain approach works (wip) * Fix code style (php-cs-fixer) * Simplify SubdomainTest tests * Add single domain tenant conditions to DomainTenantResolver * Test single domain tenants in resolver test * Fix test name typo * Improve runUsingBothDomainApproaches() * Delete extra tenancy()->end() * Test early identification with both domain approaches * Test that things work with both domain approaches in the rest of the tests * Fix falsely passing test * Fix PHPStan errors * Change SingleDomainTenant to a contract, add SingleDomainTenant test model * Fix TenantList domainsCLI() * Improve setCurrentDomain() check * Fix code style (php-cs-fixer) * Add annotation * Revert getCustomColumns() change * Add comments * Use the domain returned by the closure in runUsingBoth..() * Delete `migrate` from test * Improve test names * Use variable instead of repeating the same string multiple times * Update comment * Add comment * Clean up PreventAccess test * Don't assign domain to a single-use variable * Update comments * Uncomment datasets * Add todo * Fix user impersonation test * Don't specify tenant key when creating tenant in runUsingBoth..() * Improve universal route test * Improve `runUsingBothDomainApproaches()` * Add tests specific to single domain tenants * Get rid of the runUsingBothDomainApproaches method * Add test file specific for the single domain tenant feature * Rename test * Make getCustomColumns() function static * Positiopn datasets differently * Fix early id test * Add prevent MW to route MW in test * Fix single domain tenant tests * Delete SingleDomainTenantTest (CI testing) * Add the test file back * TUrn APP_DEBUG on temporarily * Turn debug off * Try creating tenant with non-unique domain (CI testing) * dd duplicate tenant records * Revert testing change * Make SingleDomainTenant not extend base tenant (VirtualColumn issues) * Fix early id test * add todo * Use dev-master stancl/virtualcolumn * Make SingleDomainTenant extend the tenant base model * remove todo * Clean up EarlyIdentificationTest changes * Finish test file cleanup * Fix test * improve test --------- Co-authored-by: PHP CS Fixer <phpcsfixer@example.com> Co-authored-by: Samuel Štancl <samuel.stancl@gmail.com>
This commit is contained in:
parent
c34952f328
commit
e25e7b7961
10 changed files with 243 additions and 14 deletions
|
|
@ -181,7 +181,6 @@ test('early identification works with request data identification', function (st
|
|||
]);
|
||||
|
||||
test('early identification works with domain identification', function (string $middleware, string $domain, bool $useKernelIdentification, RouteMode $defaultRouteMode) {
|
||||
config(['tenancy.tenant_model' => Tenant::class]);
|
||||
config(['tenancy.default_route_mode' => $defaultRouteMode]);
|
||||
|
||||
if ($useKernelIdentification) {
|
||||
|
|
@ -209,6 +208,10 @@ test('early identification works with domain identification', function (string $
|
|||
$routeThatShouldReceiveMiddleware->middleware($defaultToTenantRoutes ? 'central' : 'tenant');
|
||||
} elseif (! $defaultToTenantRoutes) {
|
||||
$tenantRoute->middleware('tenant');
|
||||
} else {
|
||||
// Route-level identification + defaulting to tenant routes
|
||||
// We still have to apply the tenant middleware to the routes, so they aren't really tenant by default
|
||||
$tenantRoute->middleware([$middleware, PreventAccessFromUnwantedDomains::class]);
|
||||
}
|
||||
|
||||
$tenant = Tenant::create();
|
||||
|
|
@ -234,7 +237,7 @@ test('early identification works with domain identification', function (string $
|
|||
}
|
||||
|
||||
// Expect tenancy is initialized (or not) for the right tenant at the tenant route
|
||||
expect($response->getContent())->toBe('token:' . (tenant()?->getTenantKey() ?? 'central'));
|
||||
expect($response->getContent())->toBe('token:' . tenant()->getTenantKey());
|
||||
})->with([
|
||||
'domain identification' => ['middleware' => InitializeTenancyByDomain::class, 'domain' => 'foo.test'],
|
||||
'subdomain identification' => ['middleware' => InitializeTenancyBySubdomain::class, 'domain' => 'foo'],
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue