<?php
require __DIR__.'/oracle.php';require __DIR__.'/fixture-oracle.php';$state=$source();$pre=json_decode(file_get_contents(__DIR__.'/private-preflight.json'),true);$spec=[['label'=>'own_list','method'=>'lists','params'=>['staff_uuid'=>$scope['staff_uuid'],'page'=>1]],['label'=>'own_info','method'=>'info','params'=>['uuid'=>$state['rows'][0]['uuid']]]];$original=array_values(array_filter(json_decode(file_get_contents(__DIR__.'/private-spec.json'),true),static function($s){return strpos($s['label'],'own_')!==0;}));$save('private-spec.json',array_merge($original,$spec));$base=json_decode(file_get_contents(__DIR__.'/private-suite.json'),true);$headers=$base['item'][0]['item'][0]['request']['header'];$items=[];
foreach($spec as $s){$head=$headers;foreach($head as &$h)if($h['key']==='X-CDX-Case')$h['value']=$s['label'];unset($h);$head[]=['key'=>'X-CDX-Phase','value'=>'own-original'];$list=$s['method']==='lists';$expected=$list?['code'=>0,'message'=>'获取数据成功','data'=>['rows'=>array_map($listProjection,$state['rows']),'content'=>$state['ext'][0]['content'],'total'=>2]]:['code'=>0,'message'=>'查询成功','data'=>$infoProjection($state['rows'][0])];$tests=["pm.test('HTTP200',()=>pm.response.to.have.status(200));","const b=pm.response.json();","pm.test('business code0',()=>pm.expect(b.code).to.eql(0));","pm.test('complete native original fields values types and count',()=>pm.expect(b).to.deep.eql(".json_encode($expected,JSON_UNESCAPED_UNICODE)."));"];
if(!$list){$tests[]="pm.test('MySQL seconds create_time',()=>pm.expect(b.data.create_time).to.match(/^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$/));";$tests[]="pm.test('legacy id JSON integer',()=>{pm.expect(b.data.id).to.be.a('number');pm.expect(Number.isInteger(b.data.id)).to.eql(true);});";}else $tests[]="pm.test('six fields and date-only test_time',()=>b.data.rows.forEach(r=>{pm.expect(Object.keys(r)).to.have.lengthOf(6);pm.expect(r.test_time).to.match(/^\\d{4}-\\d{2}-\\d{2}$/);}));";
$items[]=['id'=>$s['label'],'name'=>$s['label'],'type'=>'http','metaInfo'=>['type'=>'HTTP'],'request'=>['method'=>'POST','header'=>$head,'url'=>'http://127.0.0.1:'.($lane==='B'?18321:18322).'/p/syllabusEvaluate/'.$s['method'],'body'=>['mode'=>'urlencoded','urlencoded'=>array_map(static function($k,$v){return ['key'=>$k,'value'=>(string)$v,'type'=>'text'];},array_keys($s['params']),array_values($s['params']))]],'event'=>[['listen'=>'test','script'=>['type'=>'text/javascript','exec'=>$tests]]]];}
$save('private-own-suite.json',['apifoxCli'=>'2.2.8','info'=>['name'=>'SyllabusEvaluate '.$lane.' own fixture'],'item'=>[['name'=>'Only marked Staff own read','item'=>$items]]]);echo json_encode(['lane'=>$lane,'cases'=>2,'rows'=>2,'ext'=>1,'source_sha256'=>$hash($state)]),"\n";
