1
0
Fork 0
mirror of https://github.com/archtechx/tenancy.git synced 2025-12-12 14:14:04 +00:00
tenancy/tests
Samuel Štancl 6784685054
Resource syncing rework (#30)
* Add &Model to docblock

* Fix code style (php-cs-fixer)

* Only delete synced resource if the central resource shouldSync

* Add central resource detached event and listener

* Add SyncedTenant interface

* Use the event & listener in the test file

* Add getGlobalIdentifierKey(Name) to TenantMorphPivot

* Refactor TriggerSyncingEvents

* Fix code style (php-cs-fixer)

* Test queueing the detaching listener

* Move finding the central resource into the event, naming changes

* Fix code style (php-cs-fixer)

* Simplify listener code

* Refactor detaching logic

* Create tenant resource after attaching central to tenant, test queueing related listener

* Delete dd()

* Fix code style (php-cs-fixer)

* Move triggerAttachEvent from SyncMaster

* Update attach event-related code

* Move findResource from SyncedTenant to the pivot trait

* Add annotation

* Update annotation

* Simplify getAttributesForCreation in CreateTenantResourceFromSyncMaster

* Update naming

* Add tenant trait for attaching/detaching resources

* Update test names

* Move creation attribute parsing method to trait

* Rename variable

* Fix code style (php-cs-fixer)

* Delete complete to-do

* Delete event comment

* Rename event property

* Find tenant resource in detach listener

* Use global ID key of tenant resource in cascade deletes listener

* Use global ID key name of the central resource while creating/deleting tenant resources

* Add getSyncedCreationAttributes example in the annotation

* Fix inconsistencies in SyncedTenant methods

* Improve annotation

* Don't return the query in `$scopeGetModelQuery`

Co-authored-by: Samuel Štancl <samuel.stancl@gmail.com>

* Fix code style (php-cs-fixer)

* Update scoping getModel query

* Only use detach event instead of using both detach and delete events, refactor code

* Test that detaching tenant from a central resource doesn't affect other tenants

* Delete extra imports

* Fix code style (php-cs-fixer)

* Add PivotWithRelation, test attaching/detaching resources without polymorphic relations

* Refactor TriggerSyncingEvents to work with non-polymorphic relations too

* Fix code style (php-cs-fixer)

* Rename synced resource changed event, fix tests

* Enforce passing Tenant&Model to attach/detach events

* Prevent firing saved event automatically in CreateTenantResource

* Improve TriggerSyncingEvents trait

* Delete unused import

* Make TriggerSyncingEvents methods non-static, improve annotations

* Pass saved model to event

* Move attach/detach queueing tests to ResourceSyncingTest, pass models instead of IDs to attach/detach

* Move events to ResourceSyncing\Events

* Fix code style (php-cs-fixer)

* Use SerializesModels in queueable listeners instead of events

* Delete redundant $shouldQueue setting

* Rename listener, test cascade deletes from both sides of many-to-many

* Move creation attributes-related code to a separate test file, improve comments (wip)

* Improve comments, fix variable name capitalization

* Delete tracing comma

* Extract duplicate code into a trait

* Don't accept nullable tenant in SyncMasterDeleted

* Fix annotation

* Fix code style (php-cs-fixer)

* Update annotation

* Fix PHPStan error

* Fix annotation

* Update comments and test naming

* Move triggerDeleteEvent to CascadeDeletes interface

* Rename test file

* Import TenantPivot in Tenant class (tests/Etc)

* Add central resource not available in pivot exception

* Rename SaveSyncedResource to UpdateOrCreateSyncedResource

* Add new events and listeners to TSP stub

* Improve comments and naming

* Only keep SerializesModels in classes that utilize it

* Use tenant->run()

* Import events in stub

* Move RS listeners to separate namespace, use `Event/`Listener/` in stub for consistency

* Fix code style (php-cs-fixer)

* Fix namespace changes

* Use cursor instead of get

* Update src/ResourceSyncing/ParsesCreationAttributes.php

Co-authored-by: Samuel Štancl <samuel.stancl@gmail.com>

* Update naming, structure (discussed on Discord)

* Update uses in in test file

* remove double ;;

* Add comments

* Test if static properties work fine with queueable listeners

* Update $shouldQuery test

* Update creation attributes

* Work on updating the tests

* Make synced attributes configurable using static properties

* Update resource syncing tests

* Get rid of mixed attribute classes

* Get rid of TenantUserWIthCreationAttributes

* Fix imports

* Get rid of the conditionally synced classes, improve tests

* Simplify resource creation tests (only test the more complex cases instead of each case - if the complex case works, the simpler cases work too)

* Clean up ResourceSyncingTest (mostly duplicate tests that were already in AutomaticResourceCreationTest)

* Simplify class naming in polymorhpic tests

* Move automatic resource creation tests to ResourceSyncingTest

* Test that the sync event doesn't get triggered excessively

* Only trigger the sync event if the synced attributes were changed or if the resource was recently created

* Update synced attribute instead of unsynced in test

* Fix sync event test

* Update static property redefining test

* Use getGlobalIdentifierKeyName() instead of hardcoding the key name

* Delete static properties from the ResourceSyncing trait

* Reuse user classes in polymorphic tests

* Update tests/ResourceSyncingTest.php

Co-authored-by: Samuel Štancl <samuel.stancl@gmail.com>

* Use the default tenants() method in central user, override the default in ResourceSyncingTest

* Use BelongsToMany as tenants() return type

* Fix code style (php-cs-fixer)

* Delete extra static property from trait

* Delete duplicate events/listeners from TSP stub

* Delete weird expectation,  use $model->trashed()

* Change ResourceUser to TenantUser

* Add defaults for getGlobalIdentifierKey(Name)

* Use singular tenant in DeleteResourceInTenants name

* Rename getSyncedCreationAttributes to getCreationAttributes

* Fix comma position in comment

* minor fixes in traits and interfaces

* Fix code style (php-cs-fixer)

* Correct comment

* Use $tenant->run()

* Update scopeGetModelQuery annotation

* Use static property for testing shouldSync

* Improve test

* Get rid of datasets

* Add trashed assertions

* Always merge synced attributes with the creation attributes during parsing

* Update creation attributes in test's beforeEach

* Use only the necessary creation attributes (no need to include the synced attributes because they get merged automatically)

* Rename ResourceTenant to MorphTenant

* Add TriggerSyncingEvents docblock

Co-authored-by: Samuel Štancl <samuel.stancl@gmail.com>

* Add force deletes test

* Fix code style (php-cs-fixer)

* Delete pivot if it can't access the resource class

* Make parseCreationAttributes more readable

* Comment out setting $scopeGetModelQuery in the stub

* Add @var annotations to bootTriggerSyncingEvents

* Fix attach()/detach() exception test

* Interrupt creation of broken pivots instead of deleting the pivots at a later point

* Add more comments

* Update CreateTenantResource comment

* Assert that forceDelete() doesn't affect other tenant resources

* Rename test

* Correct with() array formatting

* Expand test with soft deletes

* Merge SyncedResourceSaved tests

* Improve naming, comments and minor details in the assertions

* Move test

* Fix failing test

* Delete duplicate test

* Minor test improvement

* Delete duplicate test

* Improve old test

* Minor test improvement

* Improve event test

* Improve tests (naming, code, comments)

* Delete extra test, add comments to the larger test

* Refactor central -> tenant attach() test

* Apply changes from central -> tenant attach() test on tenant -> central test

* Fix assertions in central -> tenant

* Correct comment and assertion

* Refactor tenant -> central attach() test

* Fix inconsistency

* Delete unused import

* Add comments

* Update polymorphic test names

* Rename polymorphic tests

* Update listener test name

* Delete redundant tenant ID assignments

* Improve test names

* Move polymorphic tests to ResourceSyncingTest

* Mention alternative solutions in CentralResourceNotAvailableInPivotException

* Add comments

* Update test comments

* minor changes to tests + review comments

* Delete extra tests, update comments

* Remove unneeded part of test

* Fix comment

* Improve comments

* Add test for companies() realationship accessibility

* Update test name

* Complete to-do, add comment

* Improve naming and comments (resolve some priority reviews)

* Move test

* Comment, resolve to-dos

* Add low-level pivot assertions

* Restore trashed resources if the central resource got restored, try improving tests

* Fix code style (php-cs-fixer)

* Dekete redundnat unsynced comments

* Add to-do, test WIP

* Fix restoring logic

* Update todo

* Add todo to fix phpdoc

* Fix code style (php-cs-fixer)

* PHPStan error fix wip

* Fix PHPStan error

* Add regression test

* Delete unused trait

* Add and test restoring WIP

* Fix code style (php-cs-fixer)

* Add to-do

* Delete comment from test

* Focus on restoring in the restore test

* Improve maming

* Fix stub

* Delete redundant part of test

* Delete incorrect test leftover

* Add triggerRestoredEvent

* Fix restore test

* Correct tests and restore(() logic

* Fix code style (php-cs-fixer)

* Check if SoftDeletes are used before firing SyncMasterRestored

* Fix comment

* Revert restore action changes (phpstan errors)

* Delete CascadeDeletes interface

* Remove CascadeDeletes from most of the tests

* Fix code style (php-cs-fixer)

* Rename tests

* Fix restoring + tests WIP

* Fix restoring

* Fix restoring tests

* Fix code style (php-cs-fixer)

* Test that detaching force deletes the tenant resources

* Implement cacscade force deleting

* Delete redundant changes

* Fix typo

* Fix SyncMaster

* Improve test

* Add force deleting logic back and fix tests

* Improve comment

* Delete extra assertion

* Improve restoring test

* Simplify assertion

* Delete redundant query scoping from test

* Test restore listener queueing

* use strict in_array() checks

* fix phpstan errors

---------

Co-authored-by: lukinovec <lukinovec@gmail.com>
Co-authored-by: PHP CS Fixer <phpcsfixer@example.com>
2024-02-10 19:08:37 +01:00
..
Etc Resource syncing rework (#30) 2024-02-10 19:08:37 +01:00
Features Improve file structure (#5) 2023-08-03 17:51:53 +02:00
ActionTest.php Central routes without Route::domain(), configurable tenant/central routes by default for domain/subdomain identification, allow accessing central routes in early identification for path & request data middleware (#3) 2023-08-03 00:23:26 +02:00
AutomaticModeTest.php Add skip-failing option to the Migrate command (#945) 2023-02-01 06:55:26 +01:00
BatchTest.php Add skip-failing option to the Migrate command (#945) 2023-02-01 06:55:26 +01:00
BootstrapperTest.php Pass BroadcastManager to override closures (#23) 2023-12-20 12:23:37 +01:00
BroadcastingTest.php Fix global/central channel terminology 2023-12-13 19:11:18 +01:00
CachedTenantResolverTest.php Resolve misc to-dos (#26) 2024-02-10 18:38:05 +01:00
CacheManagerTest.php Cache prefix mode for separating tenant caches (#1014) 2023-04-24 16:25:51 +02:00
CloneActionTest.php Make clone action prefix already prefixed routes correctly (#28) 2024-02-10 18:19:20 +01:00
CombinedDomainAndSubdomainIdentificationTest.php Fix #998, centralize config used by BelongsToTenant and HasDomains 2022-11-10 16:03:13 +01:00
CommandsTest.php Add skip-failing option to the Migrate command (#945) 2023-02-01 06:55:26 +01:00
DatabasePreparationTest.php add public connection() method to the Tenant DB manager interface 2022-10-25 12:53:31 +02:00
DatabaseUsersTest.php Add permission-controlled SqlSrv database manager (#17) 2024-01-08 04:07:43 +01:00
DeleteDomainsJobTest.php Single-domain tenants (#16) 2023-11-08 11:38:26 +01:00
DomainTest.php Cache prefix mode for separating tenant caches (#1014) 2023-04-24 16:25:51 +02:00
EarlyIdentificationTest.php Give universal flag highest priority (#27) 2024-01-25 15:27:17 +01:00
EventListenerTest.php Resource syncing rework (#30) 2024-02-10 19:08:37 +01:00
GlobalCacheTest.php Improve file structure (#5) 2023-08-03 17:51:53 +02:00
MailTest.php Allow mapping nested tenant properties to mail config (#20) 2023-12-18 12:42:03 +01:00
MaintenanceModeTest.php [4.x] Update commands CLI outputs (#968) 2022-10-18 19:11:57 +02:00
ManualModeTest.php Manual mode improvements (use correct event type, add new listeners) (#1013) 2022-11-25 03:09:31 +01:00
OriginHeaderIdentificationTest.php Identify tenants by the "Origin" header (#21) 2024-01-08 00:29:01 +01:00
PathIdentificationTest.php Update path identification and Fortify integration-related logic (#13) 2023-11-26 21:08:41 +01:00
PendingTenantsTest.php Improve code of pending tenants (#1025) 2022-11-29 09:31:07 +01:00
Pest.php Add skip-failing option to the Migrate command (#945) 2023-02-01 06:55:26 +01:00
PrefixCacheBootstrapperTest.php Cache prefix mode for separating tenant caches (#1014) 2023-04-24 16:25:51 +02:00
PreventAccessFromUnwantedDomainsTest.php Stop bypassing tenancy initializition when domain is central in domain ID MW (#24) 2024-01-03 23:35:49 +01:00
QueueTest.php Resource syncing rework (#30) 2024-02-10 19:08:37 +01:00
RequestDataIdentificationTest.php Central routes without Route::domain(), configurable tenant/central routes by default for domain/subdomain identification, allow accessing central routes in early identification for path & request data middleware (#3) 2023-08-03 00:23:26 +02:00
ResourceSyncingTest.php Resource syncing rework (#30) 2024-02-10 19:08:37 +01:00
RouteMiddlewareTest.php Central routes without Route::domain(), configurable tenant/central routes by default for domain/subdomain identification, allow accessing central routes in early identification for path & request data middleware (#3) 2023-08-03 00:23:26 +02:00
ScopeSessionsTest.php Refactor tests to use pest() helper 2022-07-23 01:16:50 +02:00
SessionBootstrapperTest.php Add SessionTenancyBootstrapper (#2) 2022-11-20 02:32:25 +01:00
SingleDatabaseTenancyTest.php Fix #998, centralize config used by BelongsToTenant and HasDomains 2022-11-10 16:03:13 +01:00
SingleDomainTenantTest.php Single-domain tenants (#16) 2023-11-08 11:38:26 +01:00
SubdomainTest.php Early identification support (#1) 2022-11-20 02:31:37 +01:00
TenantAssetTest.php Update path identification and Fortify integration-related logic (#13) 2023-11-26 21:08:41 +01:00
TenantAwareCommandTest.php Refactor tests to use pest() helper 2022-07-23 01:16:50 +02:00
TenantDatabaseManagerTest.php Add permission-controlled SqlSrv database manager (#17) 2024-01-08 04:07:43 +01:00
TenantModelTest.php Fix #998, centralize config used by BelongsToTenant and HasDomains 2022-11-10 16:03:13 +01:00
TenantUserImpersonationTest.php Add session state when impersonating tenant (#1029) 2022-12-17 02:08:03 +01:00
TestCase.php Update path identification and Fortify integration-related logic (#13) 2023-11-26 21:08:41 +01:00
UniversalRouteTest.php Give universal flag highest priority (#27) 2024-01-25 15:27:17 +01:00