Skip to content

Commit

Permalink
Merge pull request #3696 from crossiatlas/hotfix/support-closures-in-…
Browse files Browse the repository at this point in the history
…hasmedia-filters

Add support for callables in hasMedia() filters
  • Loading branch information
timvandijck authored Oct 18, 2024
2 parents dc28567 + 94f95cf commit 6a39eca
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions tests/Feature/InteractsWithMedia/HasMediaTest.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?php

use Spatie\MediaLibrary\MediaCollections\Models\Media;

it('returns false for an empty collection', function () {
expect($this->testModel->hasMedia())->toBeFalse();
});
Expand Down Expand Up @@ -43,3 +45,32 @@
expect($this->testModel->hasMedia('default', ['test' => true]))->toBeTrue();
expect($this->testModel->hasMedia('default', ['test' => false]))->toBeFalse();
});

it('returns true using a filter callback', function () {
$media1 = $this->testModel
->addMedia($this->getTestJpg())
->preservingOriginal()
->withCustomProperties(['filter1' => 'value1'])
->toMediaCollection();

$media2 = $this->testModel
->addMedia($this->getTestJpg())
->preservingOriginal()
->withCustomProperties(['filter1' => 'value2'])
->toMediaCollection('images');

$media3 = $this->testModel
->addMedia($this->getTestJpg())
->preservingOriginal()
->withCustomProperties(['filter2' => 'value1'])
->toMediaCollection('images');

$media4 = $this->testModel
->addMedia($this->getTestJpg())
->preservingOriginal()
->withCustomProperties(['filter2' => 'value2'])
->toMediaCollection('images');

expect($this->testModel->hasMedia('images', fn (Media $media) => isset($media->custom_properties['filter1'])))->toBeTrue();
expect($this->testModel->hasMedia('images', fn (Media $media) => isset($media->custom_properties['filter3'])))->toBeFalse();
});

0 comments on commit 6a39eca

Please sign in to comment.