Skip to content

Commit 3913279

Browse files
committed
add more tests
1 parent a669796 commit 3913279

File tree

1 file changed

+24
-1
lines changed

1 file changed

+24
-1
lines changed

tests/UnionBuilderTest.php

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use OpenSoutheners\LaravelEloquentUnionBuilder\Tests\Fixtures\Post;
66
use OpenSoutheners\LaravelEloquentUnionBuilder\Tests\Fixtures\Tag;
7+
use OpenSoutheners\LaravelEloquentUnionBuilder\Tests\Fixtures\User;
78
use OpenSoutheners\LaravelEloquentUnionBuilder\UnionBuilder;
89

910
class 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

Comments
 (0)