Skip to content

Commit d5eeea8

Browse files
committed
Fix usage of forceDelete in Builder
Fixes #162
1 parent 26daa71 commit d5eeea8

File tree

5 files changed

+61
-2
lines changed

5 files changed

+61
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
1717
### Fixed
1818
- use of custom pagination name.
1919
- edge-case where tag creation failed.
20+
- usage of `forceDelete()` in the Builder.
2021

2122
## [0.3.0] - 10 Sep 2018
2223
### Added

src/CacheTags.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public function make() : array
3737
->prepend($this->getTagName())
3838
->values()
3939
->toArray();
40-
// dump($tags);
40+
4141
return $tags;
4242
}
4343

src/CachedBuilder.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,14 @@ public function first($columns = ["*"])
6969
return $this->cachedValue(func_get_args(), $cacheKey);
7070
}
7171

72+
public function forceDelete()
73+
{
74+
$this->cache($this->makeCacheTags())
75+
->flush();
76+
77+
return parent::forceDelete();
78+
}
79+
7280
public function get($columns = ["*"])
7381
{
7482
if (! $this->isCachable()) {
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Integration\CachedBuilder;
2+
3+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Author;
4+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Book;
5+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Profile;
6+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Publisher;
7+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Store;
8+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedAuthor;
9+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedBook;
10+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedProfile;
11+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedPublisher;
12+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\UncachedStore;
13+
use GeneaLabs\LaravelModelCaching\Tests\Fixtures\Http\Resources\Author as AuthorResource;
14+
use GeneaLabs\LaravelModelCaching\Tests\IntegrationTestCase;
15+
use Illuminate\Foundation\Testing\RefreshDatabase;
16+
use Illuminate\Support\Collection;
17+
18+
class ForceDeleteTest extends IntegrationTestCase
19+
{
20+
public function testForceDeleteClearsCache()
21+
{
22+
$author = (new Author)
23+
->where("id", 1)
24+
->get();
25+
26+
$resultsBefore = $this
27+
->cache()
28+
->tags([
29+
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
30+
])
31+
->get(sha1(
32+
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor-id_=_1'
33+
))["value"];
34+
35+
(new Author)
36+
->where("id", 1)
37+
->forceDelete();
38+
$resultsAfter = $this
39+
->cache()
40+
->tags([
41+
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
42+
])
43+
->get(sha1(
44+
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor-id_=_1'
45+
))["value"];
46+
47+
$this->assertEquals(get_class($resultsBefore), get_class($author));
48+
$this->assertNotNull($resultsBefore);
49+
$this->assertNull($resultsAfter);
50+
}
51+
}

tests/Integration/CachedBuilder/PaginateTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ public function testPaginationIsCached()
4242
$this->assertEquals($liveResults->pluck("name"), $authors->pluck("name"));
4343
}
4444

45-
/** @group test */
4645
public function testPaginationReturnsCorrectLinks()
4746
{
4847
if (starts_with(app()->version(), "5.6")

0 commit comments

Comments
 (0)