BEGIN;SELECTplan(8);---------------------------------------------------------------------------------- 1. 함수 존재 여부--------------------------------------------------------------------------------SELECThas_function('public','generate_random_slug',ARRAY[]::TEXT[],'function generate_random_slug() should exist');SELECTfunction_returns('public','generate_random_slug',ARRAY[]::TEXT[],'text','generate_random_slug() should return text');---------------------------------------------------------------------------------- 2. 반환값 길이 검증 (nanoid size=21)--------------------------------------------------------------------------------SELECTis(length(generate_random_slug()),21,'slug length should be 21');---------------------------------------------------------------------------------- 3. 허용된 알파벳만 포함하는지 검증 (0-9, a-z)--------------------------------------------------------------------------------SELECTmatches(generate_random_slug(),'^[0-9a-z]{21}$','slug should only contain lowercase alphanumeric characters (0-9, a-z)');---------------------------------------------------------------------------------- 4. 대문자·특수문자 미포함 검증--------------------------------------------------------------------------------SELECTdoesnt_match(generate_random_slug(),'[A-Z_\-]','slug should not contain uppercase letters, underscores, or hyphens');---------------------------------------------------------------------------------- 5. 호출마다 고유한 값 생성 검증--------------------------------------------------------------------------------SELECTisnt(generate_random_slug(),generate_random_slug(),'consecutive calls should return different values');---------------------------------------------------------------------------------- 6. 대량 생성 시 고유성 검증 (1000건)--------------------------------------------------------------------------------SELECTis((SELECTCOUNT(DISTINCTgenerate_random_slug())FROMgenerate_series(1,1000)),1000::BIGINT,'1000 generated slugs should all be unique');---------------------------------------------------------------------------------- 7. NULL·빈 문자열이 아닌지 검증--------------------------------------------------------------------------------SELECTisnt(generate_random_slug(),NULL,'slug should not be NULL');SELECTfinish();ROLLBACK;