33namespace Lomkit \Access \Tests \Feature ;
44
55use Illuminate \Support \Facades \Auth ;
6+ use Illuminate \Support \Facades \Gate ;
67use Lomkit \Access \Tests \Support \Models \Model ;
8+ use Lomkit \Access \Tests \Support \Models \User ;
79
810class ControlsQueryTest extends \Lomkit \Access \Tests \Feature \TestCase
911{
@@ -21,13 +23,15 @@ public function test_control_with_no_perimeter_passing(): void
2123
2224 public function test_control_queried_using_client_perimeter (): void
2325 {
24- Auth::user ()->update (['should_client ' => true ]);
26+ Gate::define ('view client models ' , function (User $ user ) {
27+ return true ;
28+ });
2529
2630 Model::factory ()
2731 ->count (50 )
2832 ->create ();
2933 Model::factory ()
30- ->state ([ ' is_client ' => true ] )
34+ ->clientPerimeter ( )
3135 ->count (50 )
3236 ->create ();
3337
@@ -39,18 +43,22 @@ public function test_control_queried_using_client_perimeter(): void
3943
4044 public function test_control_queried_using_shared_overlayed_perimeter (): void
4145 {
42- Auth::user ()->update (['should_shared ' => true ]);
43- Auth::user ()->update (['should_client ' => true ]);
46+ Gate::define ('view client models ' , function (User $ user ) {
47+ return true ;
48+ });
49+ Gate::define ('view shared models ' , function (User $ user ) {
50+ return true ;
51+ });
4452
4553 Model::factory ()
4654 ->count (50 )
4755 ->create ();
4856 Model::factory ()
49- ->state ([ ' is_shared ' => true ] )
57+ ->sharedPerimeter ( )
5058 ->count (50 )
5159 ->create ();
5260 Model::factory ()
53- ->state ([ ' is_client ' => true ] )
61+ ->clientPerimeter ( )
5462 ->count (50 )
5563 ->create ();
5664
@@ -62,19 +70,23 @@ public function test_control_queried_using_shared_overlayed_perimeter(): void
6270
6371 public function test_control_queried_using_shared_overlayed_perimeter_with_distant_perimeter (): void
6472 {
65- Auth::user ()->update (['should_shared ' => true ]);
66- Auth::user ()->update (['should_own ' => true ]);
73+ Gate::define ('view shared models ' , function (User $ user ) {
74+ return true ;
75+ });
76+ Gate::define ('view own models ' , function (User $ user ) {
77+ return true ;
78+ });
6779
6880 Model::factory ()
69- ->state ([ ' is_client ' => true ] )
81+ ->clientPerimeter ( )
7082 ->count (50 )
7183 ->create ();
7284 Model::factory ()
73- ->state ([ ' is_shared ' => true ] )
85+ ->sharedPerimeter ( )
7486 ->count (50 )
7587 ->create ();
7688 Model::factory ()
77- ->state ([ ' is_own ' => true ] )
89+ ->ownPerimeter ( )
7890 ->count (50 )
7991 ->create ();
8092
@@ -86,18 +98,20 @@ public function test_control_queried_using_shared_overlayed_perimeter_with_dista
8698
8799 public function test_control_queried_using_only_shared_overlayed_perimeter (): void
88100 {
89- Auth::user ()->update (['should_shared ' => true ]);
101+ Gate::define ('view shared models ' , function (User $ user ) {
102+ return true ;
103+ });
90104
91105 Model::factory ()
92- ->state ([ ' is_client ' => true ] )
106+ ->clientPerimeter ( )
93107 ->count (50 )
94108 ->create ();
95109 Model::factory ()
96- ->state ([ ' is_shared ' => true ] )
110+ ->sharedPerimeter ( )
97111 ->count (50 )
98112 ->create ();
99113 Model::factory ()
100- ->state ([ ' is_own ' => true ] )
114+ ->ownPerimeter ( )
101115 ->count (50 )
102116 ->create ();
103117
@@ -109,23 +123,28 @@ public function test_control_queried_using_only_shared_overlayed_perimeter(): vo
109123
110124 public function test_control_queried_isolated (): void
111125 {
112- Auth::user ()->update (['should_shared ' => true ]);
113- Auth::user ()->update (['should_own ' => true ]);
126+ Gate::define ('view shared models ' , function (User $ user ) {
127+ return true ;
128+ });
129+ Gate::define ('view own models ' , function (User $ user ) {
130+ return true ;
131+ });
114132
115133 Model::factory ()
116- ->state ([ ' is_client ' => true ] )
134+ ->clientPerimeter ( )
117135 ->count (50 )
118136 ->create ();
119137 Model::factory ()
120- ->state (['is_shared ' => true , 'is_client ' => true ])
138+ ->clientPerimeter ()
139+ ->sharedPerimeter ()
121140 ->count (50 )
122141 ->create ();
123142 Model::factory ()
124- ->state ([ ' is_own ' => true ] )
143+ ->ownPerimeter ( )
125144 ->count (50 )
126145 ->create ();
127146
128- $ query = Model::query ()->where ('is_client ' , true );
147+ $ query = Model::query ()->where ('client_id ' , Auth:: user ()-> client -> getKey () );
129148 $ query = (new \Lomkit \Access \Tests \Support \Access \Controls \ModelControl ())->queried ($ query , Auth::user ());
130149
131150 $ this ->assertEquals (50 , $ query ->count ());
@@ -135,23 +154,28 @@ public function test_control_queried_not_isolated(): void
135154 {
136155 config (['access-control.queries.isolated ' => false ]);
137156
138- Auth::user ()->update (['should_shared ' => true ]);
139- Auth::user ()->update (['should_own ' => true ]);
157+ Gate::define ('view shared models ' , function (User $ user ) {
158+ return true ;
159+ });
160+ Gate::define ('view own models ' , function (User $ user ) {
161+ return true ;
162+ });
140163
141164 Model::factory ()
142- ->state ([ ' is_client ' => true ] )
165+ ->clientPerimeter ( )
143166 ->count (50 )
144167 ->create ();
145168 Model::factory ()
146- ->state (['is_shared ' => true , 'is_client ' => true ])
169+ ->clientPerimeter ()
170+ ->sharedPerimeter ()
147171 ->count (50 )
148172 ->create ();
149173 Model::factory ()
150- ->state ([ ' is_own ' => true ] )
174+ ->ownPerimeter ( )
151175 ->count (50 )
152176 ->create ();
153177
154- $ query = Model::query ()->where ('is_client ' , true );
178+ $ query = Model::query ()->where ('client_id ' , Auth:: user ()-> client -> getKey () );
155179 $ query = (new \Lomkit \Access \Tests \Support \Access \Controls \ModelControl ())->queried ($ query , Auth::user ());
156180
157181 $ this ->assertEquals (150 , $ query ->count ());
0 commit comments