feat: [flow-tester] VariableBinder에 HR 관련 Faker 타입 추가

- koreanName: 한글 이름 생성 (ko_KR locale 활용)
- employeeCode: 사원코드 생성 (EMP-XXXXXX 형식)
- departmentName: 부서명 랜덤 생성
- positionName: 직급명 랜덤 생성
- dateRange: 날짜 범위 내 랜덤 날짜 생성

HR Employees CRUD 테스트에서 지원하지 않는 Faker 타입으로 인한
422 오류 및 연쇄적인 405 오류 해결

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-21 03:14:23 +09:00
parent aa1fd76a99
commit 0662a0bdd7

View File

@@ -258,6 +258,15 @@ private function generateFakerValue(string $type, string $params): string
'unit' => $faker->randomElement(['EA', 'SET', 'BOX', 'KG', 'M', 'L', 'PCS']),
'category' => $faker->randomElement(['원자재', '부품', '반제품', '완제품', '소모품']),
// HR 관련 (별칭 포함)
'koreanName' => $faker->name(), // ko_KR locale이므로 한글 이름 생성
'employeeCode' => $this->fakerEmployeeCode($paramList),
'departmentName' => $faker->randomElement(['개발팀', '영업팀', '인사팀', '재무팀', '마케팅팀', '기획팀']),
'positionName' => $faker->randomElement(['사원', '대리', '과장', '차장', '부장', '이사']),
// 날짜 범위 지원
'dateRange' => $this->fakerDateRange($faker, $paramList),
default => "{{faker.{$type}}}",
};
}
@@ -323,6 +332,38 @@ private function fakerProductName(FakerGenerator $faker): string
.$faker->numberBetween(100, 999);
}
/**
* 사원코드 생성 (PREFIX-XXXXXX 형식)
*
* 사용법: {{$faker.employeeCode}} → EMP-123456
* {{$faker.employeeCode:STAFF}} → STAFF-123456
* {{$faker.employeeCode:EMP:8}} → EMP-12345678
*/
private function fakerEmployeeCode(array $params): string
{
$prefix = $params[0] ?? 'EMP';
$length = isset($params[1]) ? (int) $params[1] : 6;
$digits = str_pad((string) random_int(0, (int) pow(10, $length) - 1), $length, '0', STR_PAD_LEFT);
return $prefix.'-'.$digits;
}
/**
* 날짜 범위 내 랜덤 날짜 생성
*
* 사용법: {{$faker.dateRange:2024-01-01:2024-12-31}}
* {{$faker.dateRange:2024-01-01}} → 2024-01-01 ~ 오늘
* {{$faker.dateRange}} → 최근 1년 내
*/
private function fakerDateRange(FakerGenerator $faker, array $params): string
{
$startDate = $params[0] ?? date('Y-m-d', strtotime('-1 year'));
$endDate = $params[1] ?? date('Y-m-d');
return $faker->dateTimeBetween($startDate, $endDate)->format('Y-m-d');
}
/**
* 현재 로그인 사용자의 API 토큰 조회
*/