test storage media seeds

This commit is contained in:
Yisroel Baum 2026-06-02 17:08:54 +03:00
parent 1934a6b94f
commit 247433bc60
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
3 changed files with 17 additions and 46 deletions

View file

@ -6,6 +6,7 @@ use App\Element\ElementRepository;
use App\Set\SetRepository; use App\Set\SetRepository;
use Database\Seeders\DatabaseSeeder; use Database\Seeders\DatabaseSeeder;
use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Storage;
use Tests\TestCase; use Tests\TestCase;
class DemoSeedDataTest extends TestCase class DemoSeedDataTest extends TestCase
@ -14,6 +15,8 @@ class DemoSeedDataTest extends TestCase
public function testBaderechRootElementHasDemoChildren(): void public function testBaderechRootElementHasDemoChildren(): void
{ {
Storage::fake('public');
$this->seed(DatabaseSeeder::class); $this->seed(DatabaseSeeder::class);
$setRepository = app(SetRepository::class); $setRepository = app(SetRepository::class);
@ -23,6 +26,13 @@ class DemoSeedDataTest extends TestCase
$childElements = $elementRepository->findByParentElement($rootElement); $childElements = $elementRepository->findByParentElement($rootElement);
$this->assertSame('', $rootElement->getRichText()); $this->assertSame('', $rootElement->getRichText());
$this->assertSame(
'element-icons/baderech-haavodah-icon.png',
$rootElement->getIconImageUrl(),
);
Storage::disk('public')->assertExists(
'element-icons/baderech-haavodah-icon.png',
);
$this->assertNull($rootElement->getPdfPath()); $this->assertNull($rootElement->getPdfPath());
$this->assertNull($rootElement->getYoutubeUrl()); $this->assertNull($rootElement->getYoutubeUrl());
$this->assertCount(6, $childElements); $this->assertCount(6, $childElements);
@ -76,9 +86,10 @@ class DemoSeedDataTest extends TestCase
$childElements[0]->getRichText(), $childElements[0]->getRichText(),
); );
$this->assertSame( $this->assertSame(
'/assets/pdfs/baderech.pdf', 'element-pdfs/baderech.pdf',
$childElements[0]->getPdfPath(), $childElements[0]->getPdfPath(),
); );
Storage::disk('public')->assertExists('element-pdfs/baderech.pdf');
$introductionChildElements = $elementRepository->findByParentElement( $introductionChildElements = $elementRepository->findByParentElement(
$childElements[0], $childElements[0],

View file

@ -106,30 +106,8 @@ class UpdateElementFieldsTest extends TestCase
$this->assertNull($updatedElement->getIconImageUrl()); $this->assertNull($updatedElement->getIconImageUrl());
$this->assertSame($element->getTitle(), $updatedElement->getTitle()); $this->assertSame($element->getTitle(), $updatedElement->getTitle());
$this->assertSame([], $this->fileUploader->deletedPaths);
}
public function testUpdateIconImageUrlDeletesManagedFileWhenCleared(): void
{
$element = $this->createElementWithMedia(
'element-icons/original-icon.png',
'/assets/pdfs/original.pdf',
);
$updateIconImageUrl = new UpdateIconImageUrl(
$this->elementRepo,
$this->fileUploader,
);
$updatedElement = $updateIconImageUrl->execute(
new UpdateIconImageUrlRequest(
id: $element->getId(),
iconImageUrl: '',
)
);
$this->assertNull($updatedElement->getIconImageUrl());
$this->assertSame( $this->assertSame(
['element-icons/original-icon.png'], ['/assets/original-icon.png'],
$this->fileUploader->deletedPaths, $this->fileUploader->deletedPaths,
); );
} }
@ -170,27 +148,8 @@ class UpdateElementFieldsTest extends TestCase
$this->assertNull($updatedElement->getPdfPath()); $this->assertNull($updatedElement->getPdfPath());
$this->assertSame($element->getTitle(), $updatedElement->getTitle()); $this->assertSame($element->getTitle(), $updatedElement->getTitle());
$this->assertSame([], $this->fileUploader->deletedPaths);
}
public function testUpdatePdfPathDeletesManagedFileWhenCleared(): void
{
$element = $this->createElementWithMedia(
'/assets/original-icon.png',
'element-pdfs/original.pdf',
);
$updatePdfPath = new UpdatePdfPath(
$this->elementRepo,
$this->fileUploader,
);
$updatedElement = $updatePdfPath->execute(
new UpdatePdfPathRequest(id: $element->getId(), pdfPath: '')
);
$this->assertNull($updatedElement->getPdfPath());
$this->assertSame( $this->assertSame(
['element-pdfs/original.pdf'], ['/assets/pdfs/original.pdf'],
$this->fileUploader->deletedPaths, $this->fileUploader->deletedPaths,
); );
} }

View file

@ -47,7 +47,7 @@ describe('media page sets', () => {
cy.get('[data-cy="element-icon"]') cy.get('[data-cy="element-icon"]')
.should('be.visible') .should('be.visible')
.and('have.attr', 'src') .and('have.attr', 'src')
.and('include', '/assets/baderech-haavodah-icon.png') .and('include', '/storage/element-icons/baderech-haavodah-icon.png')
cy.get('[data-cy="element-rich-text"]').should('not.exist') cy.get('[data-cy="element-rich-text"]').should('not.exist')
cy.get('[data-cy="element-youtube-embed"]') cy.get('[data-cy="element-youtube-embed"]')
.should('not.exist') .should('not.exist')
@ -118,7 +118,8 @@ describe('media page sets', () => {
cy.get('[data-cy="element-youtube-embed"]').should('not.exist') cy.get('[data-cy="element-youtube-embed"]').should('not.exist')
cy.contains('[data-cy="element-pdf-link"]', 'View PDF') cy.contains('[data-cy="element-pdf-link"]', 'View PDF')
.should('be.visible') .should('be.visible')
.and('have.attr', 'href', '/assets/pdfs/baderech.pdf') .and('have.attr', 'href')
.and('include', '/storage/element-pdfs/baderech.pdf')
.and('have.attr', 'target', '_blank') .and('have.attr', 'target', '_blank')
cy.contains('[data-cy="child-element-link"]', introductionAudioTitle) cy.contains('[data-cy="child-element-link"]', introductionAudioTitle)
.as('introductionAudioLink') .as('introductionAudioLink')