added watermark settings tab on the branding page and added more package details to the billing page, added a new guest notifications page
This commit is contained in:
125
tests/Unit/Support/WatermarkConfigResolverTest.php
Normal file
125
tests/Unit/Support/WatermarkConfigResolverTest.php
Normal file
@@ -0,0 +1,125 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Support;
|
||||
|
||||
use App\Models\Event;
|
||||
use App\Models\EventPackage;
|
||||
use App\Models\Package;
|
||||
use App\Support\WatermarkConfigResolver;
|
||||
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||
use Tests\TestCase;
|
||||
|
||||
class WatermarkConfigResolverTest extends TestCase
|
||||
{
|
||||
use RefreshDatabase;
|
||||
|
||||
public function test_watermark_is_disabled_when_package_blocks_it(): void
|
||||
{
|
||||
$package = Package::factory()->create([
|
||||
'watermark_allowed' => false,
|
||||
'branding_allowed' => true,
|
||||
]);
|
||||
|
||||
$event = Event::factory()->create([
|
||||
'settings' => [
|
||||
'watermark' => [
|
||||
'mode' => 'custom',
|
||||
'asset' => 'branding/custom.png',
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
EventPackage::create([
|
||||
'event_id' => $event->id,
|
||||
'package_id' => $package->id,
|
||||
'purchased_price' => $package->price,
|
||||
'purchased_at' => now(),
|
||||
]);
|
||||
|
||||
$event->load('eventPackages.package');
|
||||
$event->setRelation('eventPackage', $event->eventPackages->first());
|
||||
|
||||
$config = WatermarkConfigResolver::resolve($event);
|
||||
|
||||
$this->assertSame('none', $config['type']);
|
||||
$this->assertSame('none', $config['policy']);
|
||||
}
|
||||
|
||||
public function test_branding_locked_forces_base_watermark(): void
|
||||
{
|
||||
$package = Package::factory()->create([
|
||||
'watermark_allowed' => true,
|
||||
'branding_allowed' => false,
|
||||
]);
|
||||
|
||||
$event = Event::factory()->create([
|
||||
'settings' => [
|
||||
'watermark' => [
|
||||
'mode' => 'custom',
|
||||
'asset' => 'branding/custom.png',
|
||||
'position' => 'top-left',
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
EventPackage::create([
|
||||
'event_id' => $event->id,
|
||||
'package_id' => $package->id,
|
||||
'purchased_price' => $package->price,
|
||||
'purchased_at' => now(),
|
||||
]);
|
||||
|
||||
$event->load('eventPackages.package');
|
||||
$event->setRelation('eventPackage', $event->eventPackages->first());
|
||||
|
||||
$config = WatermarkConfigResolver::resolve($event);
|
||||
|
||||
$this->assertSame('base', $config['type']);
|
||||
$this->assertSame(config('watermark.base.asset'), $config['asset']);
|
||||
$this->assertSame(config('watermark.base.position'), $config['position']);
|
||||
}
|
||||
|
||||
public function test_custom_watermark_is_returned_when_allowed(): void
|
||||
{
|
||||
$package = Package::factory()->create([
|
||||
'watermark_allowed' => true,
|
||||
'branding_allowed' => true,
|
||||
]);
|
||||
|
||||
$event = Event::factory()->create([
|
||||
'settings' => [
|
||||
'watermark' => [
|
||||
'mode' => 'custom',
|
||||
'asset' => 'branding/custom.png',
|
||||
'position' => 'top-center',
|
||||
'opacity' => 0.8,
|
||||
'scale' => 0.5,
|
||||
'padding' => 24,
|
||||
'offset_x' => 10,
|
||||
'offset_y' => -5,
|
||||
],
|
||||
],
|
||||
]);
|
||||
|
||||
EventPackage::create([
|
||||
'event_id' => $event->id,
|
||||
'package_id' => $package->id,
|
||||
'purchased_price' => $package->price,
|
||||
'purchased_at' => now(),
|
||||
]);
|
||||
|
||||
$event->load('eventPackages.package');
|
||||
$event->setRelation('eventPackage', $event->eventPackages->first());
|
||||
|
||||
$config = WatermarkConfigResolver::resolve($event);
|
||||
|
||||
$this->assertSame('custom', $config['type']);
|
||||
$this->assertSame('top-center', $config['position']);
|
||||
$this->assertSame('branding/custom.png', $config['asset']);
|
||||
$this->assertEquals(0.8, $config['opacity']);
|
||||
$this->assertEquals(0.5, $config['scale']);
|
||||
$this->assertEquals(24, $config['padding']);
|
||||
$this->assertEquals(10, $config['offset_x']);
|
||||
$this->assertEquals(-5, $config['offset_y']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user