Render saved Studio results directly by ID without an editor
This commit is contained in:
@@ -19,6 +19,7 @@ if(process.argv.includes('--finalize')){
|
||||
const final={canonical:base+'/explore/'+canonical,documentEntries:category?.total??null,legacyCompatible:!documentFailure,testRecordsArchived:results.length};
|
||||
await writeFile('/tmp/studio-library/final-verification.json',JSON.stringify(final,null,2));console.log(JSON.stringify(final));if(documentFailure)throw documentFailure;
|
||||
}else{
|
||||
for(const path of ['/studio/template-layout','/studio/template-layout?id=invalid'])assert.equal((await fetch(base+path)).status,404);
|
||||
const catalog=await api('/studio/api/layouts');assert.equal(catalog.layouts.length,28);
|
||||
const note=(await api('/api/notes/8eb8c76500580f7a4b56ba3c')).entry;
|
||||
const asset=note.coverAssetId||note.assets.find(a=>a.kind==='image').id;
|
||||
@@ -29,10 +30,11 @@ for(const layoutId of ['standard-01','ref-17']){
|
||||
const p={texts:{T01:{value:'API 验收 · 原生页面',fontFamily:'serif',fontWeight:600}},images:{I01:{assetId:asset,fit:'cover',cropX:35,cropY:65,zoom:1.2}},added:[{id:'user-api-check',kind:'text',role:'扩展正文',box:[10,120,60,9],direction:'horizontal',text:'通过 HTTP 保存并恢复',reading:'custom'}],layers:{'user-api-check':{z:20,rotation:2}}};
|
||||
let d=(await api('/api/studio/designs',{schemaVersion:1,layoutId,name:'API 验收 '+layoutId,parameters:p},'POST',201)).design;
|
||||
const id=d.id,postId=d.postId;
|
||||
assert.equal(d.url,'/studio/template-layout?id='+id);assert.equal(d.renderUrl,d.url);
|
||||
results.push({layoutId,id,url:d.url,revision:d.revision,postId,parameters:p});
|
||||
await writeFile('/tmp/studio-library/verification.json',JSON.stringify({results,preview:{asset,bytes,type:'image/webp'},pages:0},null,2));
|
||||
assert.deepEqual((await api('/api/studio/designs/'+id)).design.parameters,d.parameters);
|
||||
const html=await fetch(base+d.url).then(r=>r.text());assert.ok(html.includes('API 验收'));assert.ok(html.includes('user-api-check'));assert.ok(html.includes('/api/preview?'));assert.ok(!html.includes('src="/api/media/'));
|
||||
const html=await fetch(base+d.url).then(r=>r.text());assert.ok(html.includes('API 验收'));assert.ok(html.includes('user-api-check'));assert.ok(html.includes('/api/preview?'));assert.ok(!html.includes('src="/api/media/'));assert.ok(!/page-tools|workbench-top|contenteditable|编辑页面/.test(html));
|
||||
d=(await api('/api/studio/designs/'+id,{name:'API 验收修订 '+layoutId,parameters:p,revision:d.revision},'PATCH')).design;
|
||||
assert.equal(d.postId,postId);assert.equal(d.revision,2);
|
||||
await api('/api/studio/designs/'+id,{name:'过期写入',parameters:{},revision:1},'PATCH',409);
|
||||
|
||||
Reference in New Issue
Block a user