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/ai.naniguide.com/tests/Feature/AdPublishLogFeatureTest.php
<?php

use App\Model\AdPublishLog;

test('ad publish log actions are valid constants', function () {
    expect(AdPublishLog::ACTION_PUBLISH)->toBe('publish');
    expect(AdPublishLog::ACTION_PAUSE)->toBe('pause');
    expect(AdPublishLog::ACTION_RESUME)->toBe('resume');
    expect(AdPublishLog::ACTION_UPDATE)->toBe('update');
    expect(AdPublishLog::ACTION_DELETE)->toBe('delete');
});

test('ad publish log statuses are valid constants', function () {
    expect(AdPublishLog::STATUS_PENDING)->toBe('pending');
    expect(AdPublishLog::STATUS_SUCCESS)->toBe('success');
    expect(AdPublishLog::STATUS_ERROR)->toBe('error');
});

test('ad publish log fillable fields are correct', function () {
    $log = new AdPublishLog();
    expect($log->getFillable())->toContain('ad_campaign_id', 'platform', 'action', 'status', 'request_data', 'response_data', 'error_message');
});

test('ad publish log casts are correct', function () {
    $log = new AdPublishLog();
    $casts = $log->getCasts();
    expect($casts['request_data'])->toBe('json');
    expect($casts['response_data'])->toBe('json');
});

test('ad publish log isSuccess helper works', function () {
    $log = new AdPublishLog();
    $log->status = AdPublishLog::STATUS_SUCCESS;
    expect($log->isSuccess())->toBeTrue();
    expect($log->isError())->toBeFalse();
});

test('ad publish log isError helper works', function () {
    $log = new AdPublishLog();
    $log->status = AdPublishLog::STATUS_ERROR;
    expect($log->isError())->toBeTrue();
    expect($log->isSuccess())->toBeFalse();
});

test('ad publish log can be created via factory', function () {
    $log = AdPublishLog::factory()->make([
        'ad_campaign_id' => 1,
    ]);
    expect($log->action)->toBeIn(['publish', 'pause', 'resume', 'update', 'delete']);
    expect($log->status)->toBeIn(['pending', 'success', 'error']);
});