mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 20:34:03 +00:00
update comments
This commit is contained in:
parent
93efa56f59
commit
a67b5b1f88
1 changed files with 15 additions and 24 deletions
|
|
@ -131,7 +131,6 @@ test('only the synced columns are updated in the central db', function () {
|
||||||
// Those two don't depend on each other, we're just testing having each option on each side
|
// Those two don't depend on each other, we're just testing having each option on each side
|
||||||
// using tests that combine the two, to avoid having an excessively long and complex test suite
|
// using tests that combine the two, to avoid having an excessively long and complex test suite
|
||||||
test('sync resource creation works when central model provides attributes and resource model provides default values', function () {
|
test('sync resource creation works when central model provides attributes and resource model provides default values', function () {
|
||||||
// when central model provides attributes => resoucre model will be created from the attribute values
|
|
||||||
[$tenant1, $tenant2] = createTenantsAndRunMigrations();
|
[$tenant1, $tenant2] = createTenantsAndRunMigrations();
|
||||||
|
|
||||||
$centralUser = CentralUserProvidingAttributeNames::create([
|
$centralUser = CentralUserProvidingAttributeNames::create([
|
||||||
|
|
@ -147,10 +146,10 @@ test('sync resource creation works when central model provides attributes and re
|
||||||
expect(ResourceUserProvidingDefaultValues::all())->toHaveCount(0);
|
expect(ResourceUserProvidingDefaultValues::all())->toHaveCount(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// When central model provides the list of attributes, resource model will be created from the provided list of attributes' values
|
||||||
$centralUser->tenants()->attach('t1');
|
$centralUser->tenants()->attach('t1');
|
||||||
|
|
||||||
$tenant1->run(function () {
|
$tenant1->run(function () {
|
||||||
// assert resource model created with provided attributes
|
|
||||||
$resourceUser = ResourceUserProvidingDefaultValues::all();
|
$resourceUser = ResourceUserProvidingDefaultValues::all();
|
||||||
expect($resourceUser)->toHaveCount(1);
|
expect($resourceUser)->toHaveCount(1);
|
||||||
expect($resourceUser->first()->global_id)->toBe('acme');
|
expect($resourceUser->first()->global_id)->toBe('acme');
|
||||||
|
|
@ -159,10 +158,9 @@ test('sync resource creation works when central model provides attributes and re
|
||||||
expect($resourceUser->first()->foo)->toBeNull();
|
expect($resourceUser->first()->foo)->toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
// when resource model provides default values => central model will be created using the default values
|
|
||||||
tenancy()->initialize($tenant2);
|
tenancy()->initialize($tenant2);
|
||||||
|
|
||||||
// Create the user in tenant DB
|
// When resource model provides the list of default values, central model will be created from the provided list of default values
|
||||||
ResourceUserProvidingDefaultValues::create([
|
ResourceUserProvidingDefaultValues::create([
|
||||||
'global_id' => 'asdf',
|
'global_id' => 'asdf',
|
||||||
'name' => 'John Doe',
|
'name' => 'John Doe',
|
||||||
|
|
@ -173,7 +171,7 @@ test('sync resource creation works when central model provides attributes and re
|
||||||
|
|
||||||
tenancy()->end();
|
tenancy()->end();
|
||||||
|
|
||||||
// Assert central user was created using the default values
|
// Assert central user was created using the list of default values
|
||||||
$centralUser = CentralUserProvidingAttributeNames::whereGlobalId('asdf')->first();
|
$centralUser = CentralUserProvidingAttributeNames::whereGlobalId('asdf')->first();
|
||||||
expect($centralUser)->not()->toBeNull();
|
expect($centralUser)->not()->toBeNull();
|
||||||
expect($centralUser->name)->toBe('Default Name');
|
expect($centralUser->name)->toBe('Default Name');
|
||||||
|
|
@ -187,7 +185,6 @@ test('sync resource creation works when central model provides attributes and re
|
||||||
// Those two don't depend on each other, we're just testing having each option on each side
|
// Those two don't depend on each other, we're just testing having each option on each side
|
||||||
// using tests that combine the two, to avoid having an excessively long and complex test suite
|
// using tests that combine the two, to avoid having an excessively long and complex test suite
|
||||||
test('sync resource creation works when central model provides default values and resource model provides attributes', function () {
|
test('sync resource creation works when central model provides default values and resource model provides attributes', function () {
|
||||||
// when central model provides default values => resource model will be created using the default values
|
|
||||||
[$tenant1, $tenant2] = createTenantsAndRunMigrations();
|
[$tenant1, $tenant2] = createTenantsAndRunMigrations();
|
||||||
|
|
||||||
$centralUser = CentralUserProvidingDefaultValues::create([
|
$centralUser = CentralUserProvidingDefaultValues::create([
|
||||||
|
|
@ -203,10 +200,11 @@ test('sync resource creation works when central model provides default values an
|
||||||
expect(ResourceUserProvidingDefaultValues::all())->toHaveCount(0);
|
expect(ResourceUserProvidingDefaultValues::all())->toHaveCount(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// When central model provides the list of default values, resource model will be created from the provided list of default values
|
||||||
$centralUser->tenants()->attach('t1');
|
$centralUser->tenants()->attach('t1');
|
||||||
|
|
||||||
$tenant1->run(function () {
|
$tenant1->run(function () {
|
||||||
// assert resource model created with provided default values
|
// Assert resource user was created using the list of default values
|
||||||
$resourceUser = ResourceUserProvidingDefaultValues::first();
|
$resourceUser = ResourceUserProvidingDefaultValues::first();
|
||||||
expect($resourceUser)->not()->toBeNull();
|
expect($resourceUser)->not()->toBeNull();
|
||||||
expect($resourceUser->global_id)->toBe('acme');
|
expect($resourceUser->global_id)->toBe('acme');
|
||||||
|
|
@ -215,10 +213,9 @@ test('sync resource creation works when central model provides default values an
|
||||||
expect($resourceUser->role)->toBe('admin');
|
expect($resourceUser->role)->toBe('admin');
|
||||||
});
|
});
|
||||||
|
|
||||||
// when resource model provides attributes => central model will be created from the attribute values
|
|
||||||
tenancy()->initialize($tenant2);
|
tenancy()->initialize($tenant2);
|
||||||
|
|
||||||
// Create the user in tenant DB
|
// When resource model provides the list of attributes, central model will be created from the provided list of attributes' values
|
||||||
ResourceUserProvidingAttributeNames::create([
|
ResourceUserProvidingAttributeNames::create([
|
||||||
'global_id' => 'asdf',
|
'global_id' => 'asdf',
|
||||||
'name' => 'John Doe',
|
'name' => 'John Doe',
|
||||||
|
|
@ -229,7 +226,7 @@ test('sync resource creation works when central model provides default values an
|
||||||
|
|
||||||
tenancy()->end();
|
tenancy()->end();
|
||||||
|
|
||||||
// Assert central user was created using the provided attributes
|
// Assert central user was created using the list of provided attributes
|
||||||
$centralUser = CentralUserProvidingAttributeNames::whereGlobalId('asdf')->first();
|
$centralUser = CentralUserProvidingAttributeNames::whereGlobalId('asdf')->first();
|
||||||
expect($centralUser)->not()->toBeNull();
|
expect($centralUser)->not()->toBeNull();
|
||||||
expect($centralUser->email)->toBe('john@localhost');
|
expect($centralUser->email)->toBe('john@localhost');
|
||||||
|
|
@ -242,7 +239,6 @@ test('sync resource creation works when central model provides default values an
|
||||||
// Those two don't depend on each other, we're just testing having each option on each side
|
// Those two don't depend on each other, we're just testing having each option on each side
|
||||||
// using tests that combine the two, to avoid having an excessively long and complex test suite
|
// using tests that combine the two, to avoid having an excessively long and complex test suite
|
||||||
test('sync resource creation works when central model provides mixture and resource model provides nothing using different schemas', function () {
|
test('sync resource creation works when central model provides mixture and resource model provides nothing using different schemas', function () {
|
||||||
// when central model provides mix of attribute and default values => resource model will be created using the mix of attribute values and default values
|
|
||||||
[$tenant1, $tenant2] = createTenantsAndRunMigrationsForDifferentSchema();
|
[$tenant1, $tenant2] = createTenantsAndRunMigrationsForDifferentSchema();
|
||||||
|
|
||||||
$centralUser = CentralUserProvidingMixture::create([
|
$centralUser = CentralUserProvidingMixture::create([
|
||||||
|
|
@ -256,6 +252,7 @@ test('sync resource creation works when central model provides mixture and resou
|
||||||
expect(ResourceUserForDifferentSchema::all())->toHaveCount(0);
|
expect(ResourceUserForDifferentSchema::all())->toHaveCount(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// When central model provides the list of a mixture (attributes and default values), resource model will be created from the provided list of mixture (attributes and default values)
|
||||||
$centralUser->tenants()->attach('t1');
|
$centralUser->tenants()->attach('t1');
|
||||||
|
|
||||||
$tenant1->run(function () {
|
$tenant1->run(function () {
|
||||||
|
|
@ -265,15 +262,12 @@ test('sync resource creation works when central model provides mixture and resou
|
||||||
expect($resourceUser->global_id)->toBe('acme');
|
expect($resourceUser->global_id)->toBe('acme');
|
||||||
expect($resourceUser->name)->toBe('John Doe');
|
expect($resourceUser->name)->toBe('John Doe');
|
||||||
expect($resourceUser->email)->toBe('john@localhost');
|
expect($resourceUser->email)->toBe('john@localhost');
|
||||||
|
expect($resourceUser->password)->toBe('secret'); // default value
|
||||||
// provided default values
|
|
||||||
expect($resourceUser->password)->toBe('secret');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// when central model provides nothing => resoucre model will be 1:1 copy
|
|
||||||
tenancy()->initialize($tenant2);
|
tenancy()->initialize($tenant2);
|
||||||
|
|
||||||
// Create the user in tenant DB
|
// When resource model provides nothing/null, the central model will be created as a 1:1 copy of resource model
|
||||||
$resourceUser = ResourceUserForDifferentSchema::create([
|
$resourceUser = ResourceUserForDifferentSchema::create([
|
||||||
'global_id' => 'acmey',
|
'global_id' => 'acmey',
|
||||||
'name' => 'John Doe',
|
'name' => 'John Doe',
|
||||||
|
|
@ -291,7 +285,7 @@ test('sync resource creation works when central model provides mixture and resou
|
||||||
unset($centralUser['id']);
|
unset($centralUser['id']);
|
||||||
unset($resourceUser['id']);
|
unset($resourceUser['id']);
|
||||||
|
|
||||||
// assert central user created as 1:1 copy of resoucre model except "id"
|
// Assert central user created as 1:1 copy of resource model except "id"
|
||||||
expect($centralUser)->toBe($resourceUser);
|
expect($centralUser)->toBe($resourceUser);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -299,7 +293,6 @@ test('sync resource creation works when central model provides mixture and resou
|
||||||
// Those two don't depend on each other, we're just testing having each option on each side
|
// Those two don't depend on each other, we're just testing having each option on each side
|
||||||
// using tests that combine the two, to avoid having an excessively long and complex test suite
|
// using tests that combine the two, to avoid having an excessively long and complex test suite
|
||||||
test('sync resource creation works when central model provides nothing and resource model provides mixture using different schemas', function () {
|
test('sync resource creation works when central model provides nothing and resource model provides mixture using different schemas', function () {
|
||||||
// when central model provides nothing => resoucre model will be 1:1 copy
|
|
||||||
[$tenant1, $tenant2] = createTenantsAndRunMigrationsForDifferentSchema();
|
[$tenant1, $tenant2] = createTenantsAndRunMigrationsForDifferentSchema();
|
||||||
|
|
||||||
$centralUser = CentralUserForDifferentSchema::create([
|
$centralUser = CentralUserForDifferentSchema::create([
|
||||||
|
|
@ -313,6 +306,7 @@ test('sync resource creation works when central model provides nothing and resou
|
||||||
expect(ResourceUserProvidingMixture::all())->toHaveCount(0);
|
expect(ResourceUserProvidingMixture::all())->toHaveCount(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// When central model provides nothing/null, the resource model will be created as a 1:1 copy of central model
|
||||||
$centralUser->tenants()->attach('t1');
|
$centralUser->tenants()->attach('t1');
|
||||||
|
|
||||||
expect($centralUser->getSyncedCreationAttributes())->toBeNull();
|
expect($centralUser->getSyncedCreationAttributes())->toBeNull();
|
||||||
|
|
@ -327,10 +321,9 @@ test('sync resource creation works when central model provides nothing and resou
|
||||||
expect($resourceUser)->toBe($centralUser);
|
expect($resourceUser)->toBe($centralUser);
|
||||||
});
|
});
|
||||||
|
|
||||||
// when resource model provides mix of attribute and default values => central model will be created using the mix of attribute values and default values
|
|
||||||
tenancy()->initialize($tenant2);
|
tenancy()->initialize($tenant2);
|
||||||
|
|
||||||
// Create the user in tenant DB
|
// When resource model provides the list of a mixture (attributes and default values), central model will be created from the provided list of mixture (attributes and default values)
|
||||||
ResourceUserProvidingMixture::create([
|
ResourceUserProvidingMixture::create([
|
||||||
'global_id' => 'absd',
|
'global_id' => 'absd',
|
||||||
'name' => 'John Doe',
|
'name' => 'John Doe',
|
||||||
|
|
@ -342,12 +335,10 @@ test('sync resource creation works when central model provides nothing and resou
|
||||||
|
|
||||||
$centralUser = CentralUserForDifferentSchema::whereGlobalId('absd')->first();
|
$centralUser = CentralUserForDifferentSchema::whereGlobalId('absd')->first();
|
||||||
|
|
||||||
// Assert central user was created using the provided attributes and default values
|
// Assert central user was created using the provided list of attributes and default values
|
||||||
expect($centralUser->name)->toBe('John Doe');
|
expect($centralUser->name)->toBe('John Doe');
|
||||||
expect($centralUser->email)->toBe('john@localhost');
|
expect($centralUser->email)->toBe('john@localhost');
|
||||||
|
expect($centralUser->password)->toBe('secret'); // default value
|
||||||
// Provided default values
|
|
||||||
expect($centralUser->password)->toBe('secret');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
test('creating the resource in tenant database creates it in central database and creates the mapping', function () {
|
test('creating the resource in tenant database creates it in central database and creates the mapping', function () {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue