1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 13:34:03 +00:00
Commit graph

1366 commits

Author SHA1 Message Date
889d58b787 Refactor tests 2025-08-08 00:48:10 +02:00
8b9b913c88 Refactor DatabaseCacheBootstrapper 2025-08-08 00:31:40 +02:00
54a2d8a693 tests: remove pointless cache TTLs 2025-08-08 00:06:30 +02:00
4129b2d956 Finalize GlobalCache-related changes 2025-08-08 00:00:41 +02:00
a760c52ef2 Reset static $stores property 2025-08-06 20:44:05 +02:00
6a8358fd80 Reset adjustCacheManagerUsing in revert() and TestCase 2025-08-06 19:54:12 +02:00
b7df2ca436 Run all cached resolver/global cache tests with DatabaseCacheBootstrapper 2025-08-06 18:44:56 +02:00
999caa65d9 Add database connection assertions in GlobalCacheTest 2025-08-05 22:38:55 +02:00
dbb8470b80 Make GlobalCache facade not cached. Even though it wasn't causing issues
in our existing tests, it likely was flaky, and making it not $cached
makes it now consistent with global_cache() - always getting a new
CacheManager from the globalCache container binding
2025-08-05 22:26:30 +02:00
3ca90bc445 Partially revert CI changes 2025-08-05 21:05:08 +02:00
4b823fca7d Configure globalCache's DB stores to use central connection instead of default connection every time it's reinstantiated 2025-08-05 21:00:56 +02:00
f5e03bff62 Add failing test (GlobalCacheTest) 2025-08-05 17:31:44 +02:00
fc14e6dbf6 Fix withTenantDatabases() 2025-08-05 16:46:37 +02:00
8f5e12a202 Make sure DatabaseCacheBootstrapper runs after DatabaseTenancyBootstrapper, misc wip changes 2025-08-05 16:10:14 +02:00
59718317a3 Merge branch 'master' into database-cache-bootstrapper 2025-08-05 12:40:04 +02:00
3984d64cfa Use globalCache in CachedTenantResolver (fix #1340) 2025-08-05 12:33:16 +02:00
8f8af34c32
[4.x] Only revert initialized bootstrappers (#1385)
* Only revert initialized bootstrappers (Tenancy::initializedBootstrappers)

* Fix use of @property across the codebase
2025-08-05 11:12:25 +02:00
lukinovec
872bf9df72 Refactor DB cache bootstrapper, update tests accordingly 2025-08-04 11:29:48 +02:00
lukinovec
f308e2f84d
[4.x] Resolve testing todos (#1361)
* Test encrypted cookie identification

* Add Fortify bootstrapper custom query param passing test

* Correct Fortify route bootstrapper test (todo  refactor, convoluted)

* Clarify Fortify bootstrapper test

* Fix encrypted cookie identification test

* Move encrypted cookie assertion to "cookie identification works"

* Cover configured tenant model columns in cached resolver tests

* Refactor testing resolver with default vs custom tenant model name config

* Delete resolved todo

* Make code more concise

* Keep initial formatting (minimize diff noise)

* Make dataset/helper method parameter clearer

* Clarify fortify test

* Clarify assertions, improve comments

* Delete excessive comments, make existing comments consistent and clearer

* Make cached resolver test file clearer, update outdated comments

* Use the tenant model column term consistently

* FIx inconsistencies

* Provide more info in comment

* make comment more clear

* static property reset

---------

Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-08-03 23:21:03 +02:00
lukinovec
81fff15afe
[4.x] Update ForgetTenantParameter-related comments (#1375)
* Update ForgetTenantParameter-related comments

* Improve path id mw config docblock

* improve docblocks

---------

Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-08-03 23:15:34 +02:00
16ed2bcc8f Merge branch 'master' of github.com:archtechx/tenancy 2025-07-29 22:25:31 +02:00
0a48767c32 Bump jobpipeline dependency to rc6 2025-07-29 22:25:07 +02:00
lukinovec
475ea10ae9
Delete unused import (#1382) 2025-07-29 17:18:14 +02:00
lukinovec
b2f2669885
[4.x] Cloning: addTenantParameter(bool), domain(string|null) (#1374)
* Add test for the new clone action addTenantParameter property

* Add $addTenantParameter properyt to the clone action

* Fix code style (php-cs-fixer)

* Update clone action annotation

* Make addTenantParameter(false) sound by adding domain() logic to route cloning

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-07-29 17:17:32 +02:00
0ef0104355 Add MariaDB database manager config 2025-07-28 17:08:07 +02:00
lukinovec
bc846391ea Delete todo, update docblock 2025-07-23 16:25:27 +02:00
lukinovec
59910ec6e3 Make the tests clearer 2025-07-23 16:20:46 +02:00
lukinovec
6c3324ef86 Update DatabaseCacheBootstrapper to also handle cache locks connection 2025-07-23 15:41:03 +02:00
lukinovec
3238592364 Test that the cache lock connections also get changed correctly, make assertions more readable, update comments 2025-07-23 15:38:42 +02:00
lukinovec
a0a164ffe7 Manually register the bootstrapper as singleton
Without this, the bootstrapper doesn't respect the config. Even after setting the config to 'central', `null` (Laravel default) would be retrieved in the bootstrapper using `$this->config->get(...)`
2025-07-23 13:18:22 +02:00
lukinovec
16f56958eb Test the low-level/core bootstrapper logic 2025-07-23 13:15:52 +02:00
lukinovec
1be203b886 Add high-level assertions to DatabaseCacheBootstrapperTest, make the test follow the structure of the "cache data is separated" test 2025-07-23 12:19:16 +02:00
lukinovec
ba0c710e4e Revert BootstrapperTest changes 2025-07-23 11:42:19 +02:00
lukinovec
e5ca6eb776
Fix typo
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-23 10:27:47 +02:00
lukinovec
52052c807a Add DatabaseCacheBootstrapper docblock 2025-07-22 20:00:56 +02:00
lukinovec
d482bb9e2d Simplify low-level DatabaseCacheBootstrapper test, delete migration file 2025-07-22 19:55:04 +02:00
lukinovec
b00a037ea8 Test high-level DbCacheBootstrapper functionality in BootstrapperTest 2025-07-22 19:40:15 +02:00
lukinovec
2cfa8831a3 Merge branch 'master' into database-cache-bootstrapper 2025-07-22 19:32:57 +02:00
62624275cc phpstan fix 2025-07-14 21:48:30 +02:00
91295f01e2 fix origin identification: parse hostname when full URL is used 2025-07-14 21:44:12 +02:00
d8af9b4b43 remove JobBatchBootstrapper 2025-07-10 01:08:49 +02:00
lukinovec
393f263f03
[4.x] Update route cloning example in TenancyServiceProvider stub (#1372)
* Update cloning example

* Delete double `//` from cloning example in TSP stub
2025-07-04 12:08:43 +02:00
lukinovec
4ead17a56b
[4.x] TableRLSManager refactor, comment constraints (#1354)
* Add option to provide constraint information in column comment

* Fix code style (php-cs-fixer)

* Correct comment functionality, add comment constraint exception

* Simplify and clarify comment-related TableRLSManager code

* Make path skipping logic more explicit

* Correct terminology, add test for throwing exceptions

* Fix code style (php-cs-fixer)

* Improve comments

* Refactor TableRLSManagerr (dynamic programming, deal with recursive relationships, determine shortest paths while generating the paths)

* Fix code style (php-cs-fixer)

* Improve TableRLSManager comments

* Test uncovered edge cases

* Improve code for determining the shortest path

* Improve readability

* Fix code style (php-cs-fixer)

* Update the tree terminology

* Use consistent shortest path terminology

* Improve comment

* Improve method name

* Simplify and clarify core shortest path generation test

* Clarify and simplify tests, add comments

* Delete excessive test

* Test data separation with comment constraints

* Use tenant id instead of getTenantKey()

* Make higher-level code clearer, improve comments

* Improve comments, delete excessive methods, make methods more concise, position helper methods more appropriately

* Fix code style (php-cs-fixer)

* Add a "single source of truth" for path array format, make lower-level code more concise, improve comments

* Fix code style (php-cs-fixer)

* Correct terminology and comments in TableRLSManager

* Correct terminology in table manager test file

* Improve comments and method name

* Fix typo

* bump php memory limit when running tests

* Delete findShortestPath, merge the code into shortestPathToTenantsTabke

* Minor shortestPathToTenantsTable improvement

* Improve docblocks,as discussed

* Move RLSCommentConstraintException to src/RLS/Exceptions

* Fully cover shouldSkipPathLeadingThrough in tests

* test improvements

* tests: add comment to clarify the chosen path

* formatting

* Fix typo

* Use `===` instead of `Str::is()`

* Refactor constraint formatting in TableRLSManager

* Fix code style (php-cs-fixer)

* Update key names of the formatted constraints

* Rename shouldSkipPathLeadingThrough() to shouldSkipPathLeadingThroughConstraint()

* misc improvements

* code improvements

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-07-03 21:12:04 +02:00
lukinovec
d1f12f594d
Instead of assigning $innerMiddleware during group MW unpacking, merge it (#1371) 2025-07-01 17:23:13 +02:00
lukinovec
1e926a1dde
[4.x] Route cloning refactor (#1353)
* Refactor cloning action, update tests

* Delete redundant "should not be cloned" part from shouldBeCloned()

* Use 'clone' instead of a universal route in tenant parameter removal test

* Improve comment

* Add test for cloneRoutesWithMiddleware(), correct existing tests

* Allow cloning specific routes by name

* Fix typo in CloneActionTest

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* clean up CloneRoutesAsTenant, add a todo

* phpstan

* Add test for handling 'clone'  in MW groups

* Improve regression test

* Improve regression test

* Handle nested cloning flags in CloneRoutesAsTenant

* Ignore routes that are already considered tenant routes from cloning, update test accordingly

* Clarify cloning logic

* CloneRoutesAsTenant cleanup

* Rewrite clone action annotation, fix fluent usage bug

* Improve tests (comments, use $tenant->id instead of $tenant->getTenantKey())

* Test that the clone action can be used fluently without issues now (could serve as a regression test for the routesToClone change in previous commit)

* Minor annotation improvements

* Improve route cloning action docblock

* Add note about clearing the $routesToClone property

* improve docblock

* clean up tests

* fix typo

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-07-01 00:32:42 +02:00
lukinovec
7e1fe075f4
[4.x] Test that global scopes on syncable models can break resource syncing, and that $scopeGetModelQuery can be used as a workaround for that (#1285)
* Add test for syncable models with global scopes

* minor fixes

* Make test clearer

* Improve test name

* Clarify scopeGetModelQuery test, document edge case

* Fix assertion

* Delete extra newline

* Update the scopeGetModelQuery test so that it tests a realistic case

* Clarify test

* cleanup

* Try simplifying the tests

* Revert change to test adding unnecessary complexity

* Make test clear, extensively commented and as simple as possible

* Delete unused import

* Make test clearer

* Polish comments

* Improve comment

* Explicitly reset global scopes on models in beforeEach()

* Simplify comments in test

* Revert changes in test

* add assertion

* add global scope reset to afterEach

---------

Co-authored-by: Samuel Štancl <samuel@archte.ch>
2025-06-26 13:39:11 +02:00
7481229063 revert regression in last commit, opt for a phpstan ignore instead 2025-06-19 00:12:38 +02:00
12fcbabd76 phpstan fix 2025-06-18 23:52:35 +02:00
551895d582 Merge branch 'master' into may25 2025-06-18 23:38:21 +02:00
e1fc0e107d remove ignition dependencies 2025-06-18 23:29:24 +02:00