HEX
Server: LiteSpeed
System: Linux s1049.use1.mysecurecloudhost.com 4.18.0-477.27.2.lve.el8.x86_64 #1 SMP Wed Oct 11 12:32:56 UTC 2023 x86_64
User: xedaptot (3356)
PHP: 8.3.31
Disabled: NONE
Upload Files
File: /home/xedaptot/be.naniguide.com/tests/Feature/TemplateServiceFeatureTest.php
<?php

uses(Tests\TestCase::class, Illuminate\Foundation\Testing\DatabaseTransactions::class)
    ->group('templateService');

use App\Model\SystemTemplate;
use App\Model\Template;
use App\Services\TemplateService;

test('TemplateService keeps cascade-backed wrapper subjects alive when replacing templates', function () {
    $currentTemplate = Template::factory()->create(['name' => 'Current Wrapper Template']);
    $sourceTemplate = Template::factory()->create(['name' => 'Source Catalog Template']);

    $systemTemplate = new SystemTemplate();
    $systemTemplate->alias = 'template-service-' . uniqid();
    $systemTemplate->template()->associate($currentTemplate);
    $systemTemplate->save();

    $subjectId = $systemTemplate->id;
    $oldTemplateId = $currentTemplate->id;

    $assignedTemplate = TemplateService::for($systemTemplate)->setTemplate($sourceTemplate, 'Reassigned Page Template');

    $freshSubject = SystemTemplate::find($subjectId);

    expect($freshSubject)->not->toBeNull();
    expect($freshSubject->template_id)->toBe($assignedTemplate->id);
    expect($freshSubject->template_id)->not->toBe($oldTemplateId);
    expect(Template::find($oldTemplateId))->toBeNull();
});