|
9 | 9 | use Statamic\Eloquent\Entries\Entry; |
10 | 10 | use Statamic\Eloquent\Taxonomies\Taxonomy; |
11 | 11 | use Statamic\Eloquent\Taxonomies\TermModel; |
| 12 | +use Statamic\Facades\Blink; |
12 | 13 | use Statamic\Facades\Collection; |
13 | 14 | use Statamic\Facades\Stache; |
| 15 | +use Statamic\Facades\Taxonomy as TaxonomyFacade; |
14 | 16 | use Statamic\Facades\Term as TermFacade; |
15 | 17 | use Statamic\Statamic; |
16 | 18 | use Statamic\Testing\Concerns\PreventsSavingStacheItemsToDisk; |
@@ -117,4 +119,41 @@ public function it_applies_taxonomy_wheres_using_pluck_count_and_get() |
117 | 119 | $this->assertSame(1, $taxonomy->queryTerms()->count()); |
118 | 120 | $this->assertSame($term->slug(), $taxonomy->queryTerms()->get()->pluck('slug')->first()); |
119 | 121 | } |
| 122 | + |
| 123 | + #[Test] |
| 124 | + public function it_does_not_cache_null_taxonomy_lookups() |
| 125 | + { |
| 126 | + $taxonomy = TaxonomyFacade::findByHandle('future'); |
| 127 | + $this->assertNull($taxonomy); |
| 128 | + |
| 129 | + // Create taxonomy directly in DB, bypassing TaxonomyRepository::save(). |
| 130 | + $modelClass = app('statamic.eloquent.taxonomies.model'); |
| 131 | + $modelClass::create([ |
| 132 | + 'handle' => 'future', |
| 133 | + 'title' => 'Future Taxonomy', |
| 134 | + 'sites' => ['en'], |
| 135 | + 'settings' => [], |
| 136 | + ]); |
| 137 | + |
| 138 | + $taxonomy = TaxonomyFacade::findByHandle('future'); |
| 139 | + |
| 140 | + $this->assertNotNull($taxonomy); |
| 141 | + $this->assertEquals('future', $taxonomy->handle()); |
| 142 | + } |
| 143 | + |
| 144 | + #[Test] |
| 145 | + public function it_queries_terms_with_taxonomy_available() |
| 146 | + { |
| 147 | + Taxonomy::make('tags')->title('Tags')->save(); |
| 148 | + TermFacade::make('test-tag')->taxonomy('tags')->data(['title' => 'Test Tag'])->save(); |
| 149 | + |
| 150 | + Blink::flush(); |
| 151 | + |
| 152 | + $terms = TermFacade::query()->get(); |
| 153 | + |
| 154 | + $this->assertCount(1, $terms); |
| 155 | + $this->assertEquals('test-tag', $terms->first()->slug()); |
| 156 | + $this->assertNotNull($terms->first()->taxonomy()); |
| 157 | + $this->assertEquals('tags', $terms->first()->taxonomy()->handle()); |
| 158 | + } |
120 | 159 | } |
0 commit comments