44
55use OpenSoutheners \LaravelEloquentUnionBuilder \Tests \Fixtures \Post ;
66use OpenSoutheners \LaravelEloquentUnionBuilder \Tests \Fixtures \Tag ;
7+ use OpenSoutheners \LaravelEloquentUnionBuilder \Tests \Fixtures \User ;
78use OpenSoutheners \LaravelEloquentUnionBuilder \UnionBuilder ;
89
910class UnionBuilderTest extends TestCase
@@ -89,7 +90,7 @@ public function testUnionBuilderFromModelsReturnsSingleQueryResultsWithMultipleM
8990
9091 public function testUnionBuilderSearchReturnsResultsOfDifferentModels ()
9192 {
92- $ searchResults = UnionBuilder::search ('hello ' , [Tag::class, Post::class])->get ();
93+ $ searchResults = UnionBuilder::search ('hello ' , [Tag::class, Post::class, User::class ])->get ();
9394
9495 $ this ->assertCount (2 , $ searchResults );
9596
@@ -105,4 +106,26 @@ public function testUnionBuilderSearchReturnsResultsOfDifferentModels()
105106
106107 $ this ->assertCount (1 , $ tagsResults );
107108 }
109+
110+ public function testUnionBuilderCallOnlyWhereOnPostReturnsFilteredPostsOnly ()
111+ {
112+ $ queryResults = UnionBuilder::from ([Tag::class, Post::class])
113+ ->callOnly (Post::class)
114+ ->where ('slug ' , 'hello-world ' )
115+ ->get ();
116+
117+ $ this ->assertCount (3 , $ queryResults );
118+
119+ $ postsResults = $ queryResults ->filter (function ($ result ) {
120+ return $ result instanceof Post;
121+ });
122+
123+ $ this ->assertCount (1 , $ postsResults );
124+
125+ $ tagsResults = $ queryResults ->filter (function ($ result ) {
126+ return $ result instanceof Tag;
127+ });
128+
129+ $ this ->assertCount (2 , $ tagsResults );
130+ }
108131}
0 commit comments