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']);
});