34 lines
1.1 KiB
PHP
34 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\Console;
|
|
|
|
use App\Console\Commands\SyncStoreViolations;
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
/**
|
|
* 店铺违规同步:上游视图扩展列(违规原因/处置方式)的自动探测。
|
|
*/
|
|
class StoreViolationsSyncExtraColumnsTest extends TestCase
|
|
{
|
|
public function test_picks_no_columns_when_upstream_only_has_base_fields(): void
|
|
{
|
|
$this->assertSame([], SyncStoreViolations::pickExtraColumns([
|
|
'id', 'shop_name', 'violation_no', 'violation_date', 'deadline',
|
|
'violation_content', 'status', 'window_name', 'platform', 'crawl_date',
|
|
]));
|
|
}
|
|
|
|
public function test_picks_exact_and_alternative_column_names_case_insensitively(): void
|
|
{
|
|
$this->assertSame(
|
|
['violation_reason' => 'violation_reason', 'disposition' => 'disposition'],
|
|
SyncStoreViolations::pickExtraColumns(['id', 'violation_reason', 'disposition']),
|
|
);
|
|
|
|
$this->assertSame(
|
|
['violation_reason' => 'reason', 'disposition' => 'handling_method'],
|
|
SyncStoreViolations::pickExtraColumns(['Reason', 'HANDLING_METHOD']),
|
|
);
|
|
}
|
|
}
|