Files
ECShopX/tests/RegistrationRecordInfoShowFieldsStructureTest.php
wanghai 449d51c8bd 4.10.0
2026-07-24 17:52:44 +08:00

48 lines
2.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/**
* registration-record-show-fields报名详情 activity_info 透传 show_fieldsTC-1/TC-2
*/
use SelfserviceBundle\Services\RegistrationRecordService;
class RegistrationRecordInfoShowFieldsStructureTest extends TestCase
{
private function methodBody(string $class, string $method): string
{
$ref = new ReflectionMethod($class, $method);
$file = $ref->getFileName();
$this->assertNotFalse($file);
$lines = file($file, FILE_IGNORE_NEW_LINES);
$this->assertIsArray($lines);
$slice = array_slice($lines, $ref->getStartLine() - 1, $ref->getEndLine() - $ref->getStartLine() + 1);
return implode("\n", $slice);
}
/**
* TC-1getRocordInfo 方法体透传 show_fields且不对 show_fields 做 json_decode。
*/
public function testGetRocordInfoActivityInfoPassesShowFieldsWithoutJsonDecode(): void
{
$body = $this->methodBody(RegistrationRecordService::class, 'getRocordInfo');
$this->assertStringContainsString("'show_fields' => \$activity_info['show_fields']", $body);
$this->assertStringNotContainsString("json_decode(\$activity_info['show_fields']", $body);
$this->assertStringNotContainsString('json_decode($activity_info["show_fields"]', $body);
}
/**
* TC-2getRocordInfo 保留既有字段getRocordList 同样透传 show_fields。
*/
public function testGetRocordInfoKeepsExistingFieldsAndListDoesNotPassShowFields(): void
{
$infoBody = $this->methodBody(RegistrationRecordService::class, 'getRocordInfo');
$this->assertStringContainsString("'is_offline_verify' => \$activity_info['is_offline_verify']", $infoBody);
$this->assertStringContainsString("'area_name' => \$area_name", $infoBody);
$listBody = $this->methodBody(RegistrationRecordService::class, 'getRocordList');
$this->assertStringContainsString("'show_fields' => \$activity_info['show_fields']", $listBody);
$this->assertStringNotContainsString("json_decode(\$activity_info['show_fields']", $listBody);
}
}