@@ -55,6 +55,40 @@ public function test_adheres_to_full_multiple_companies_support_scoping()
5555 $ this ->assertEquals ('New Name ' , $ accessoryC ->fresh ()->name );
5656 }
5757
58+ public function test_prevents_cross_tenant_company_reassignment_when_fmcs_enabled ()
59+ {
60+ [$ companyA , $ companyB ] = Company::factory ()->count (2 )->create ();
61+ $ accessory = Accessory::factory ()->for ($ companyA )->create ();
62+ $ userInCompanyA = User::factory ()->for ($ companyA )->editAccessories ()->create ();
63+
64+ $ this ->settings ->enableMultipleFullCompanySupport ();
65+
66+ $ this ->actingAsForApi ($ userInCompanyA )
67+ ->patchJson (route ('api.accessories.update ' , $ accessory ), [
68+ 'company_id ' => $ companyB ->id ,
69+ ])
70+ ->assertStatusMessageIs ('success ' );
71+
72+ $ this ->assertSame ($ companyA ->id , $ accessory ->fresh ()->company_id );
73+ }
74+
75+ public function test_allows_superuser_company_reassignment_when_fmcs_enabled ()
76+ {
77+ [$ companyA , $ companyB ] = Company::factory ()->count (2 )->create ();
78+ $ accessory = Accessory::factory ()->for ($ companyA )->create ();
79+ $ superuser = User::factory ()->superuser ()->create (['company_id ' => null ]);
80+
81+ $ this ->settings ->enableMultipleFullCompanySupport ();
82+
83+ $ this ->actingAsForApi ($ superuser )
84+ ->patchJson (route ('api.accessories.update ' , $ accessory ), [
85+ 'company_id ' => $ companyB ->id ,
86+ ])
87+ ->assertStatusMessageIs ('success ' );
88+
89+ $ this ->assertSame ($ companyB ->id , $ accessory ->fresh ()->company_id );
90+ }
91+
5892 public function test_can_update_accessory_via_patch ()
5993 {
6094 [$ categoryA , $ categoryB ] = Category::factory ()->count (2 )->create ();
0 commit comments