diff --git a/composer.json b/composer.json index 9dbe70d..a11f451 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ "mockery/mockery": "0.9.*", "phpmd/phpmd": "^2.6", "phpunit/phpunit": "5.7.*", - "satooshi/php-coveralls" : "dev-master@dev", + "satooshi/php-coveralls" : "*", "sebastian/phpcpd": "*" }, "autoload": { diff --git a/src/CachedBuilder.php b/src/CachedBuilder.php index 1dd0c67..b7d29ae 100644 --- a/src/CachedBuilder.php +++ b/src/CachedBuilder.php @@ -31,6 +31,14 @@ public function cursor() }); } + public function delete() + { + $this->cache($this->makeCacheTags()) + ->flush(); + + return parent::delete(); + } + /** * @SuppressWarnings(PHPMD.ShortVariable) */ diff --git a/tests/Unit/CachedBuilderTest.php b/tests/Unit/CachedBuilderTest.php index 4fe23cb..a79519e 100644 --- a/tests/Unit/CachedBuilderTest.php +++ b/tests/Unit/CachedBuilderTest.php @@ -660,4 +660,27 @@ public function testRawOrderByWithoutColumnReference() $this->assertTrue($cachedResults->diffAssoc($authors)->isEmpty()); $this->assertTrue($liveResults->diffAssoc($authors)->isEmpty()); } + + public function testDelete() + { + $author = (new Author) + ->first(); + $liveResult = (new UncachedAuthor) + ->first(); + $authorId = $author->id; + $liveResultId = $liveResult->id; + $key = 'genealabslaravelmodelcachingtestsfixturesauthor'; + $tags = ['genealabslaravelmodelcachingtestsfixturesauthor']; + + $author->delete(); + $liveResult->delete(); + $cachedResult = cache() + ->tags($tags) + ->get($key); + $deletedAuthor = (new Author)->find($authorId); + + $this->assertEquals($liveResultId, $authorId); + $this->assertNull($cachedResult); + $this->assertNull($deletedAuthor); + } }