@@ -283,52 +283,49 @@ describe("world-packs primitives", () => {
283283 assert . deepEqual ( version , [ 2 , 0 , 1 ] ) ;
284284 } ) ;
285285
286- it ( "scanDestOccupancy / readPackDirOccupancy:完整与残缺 manifest" , async ( ) => {
287- const { scanDestOccupancy, readPackDirOccupancy, formatWorldPackFolderName } = await import (
288- "./dist/world-packs.js"
289- ) ;
290- const parent = path . join ( tmp , "occupancy-scan" ) ;
291- const fullName = formatWorldPackFolderName ( "Full" , "resource" ) ;
292- const brokenName = formatWorldPackFolderName ( "Broken" , "behavior" ) ;
293- const fullDir = path . join ( parent , fullName ) ;
294- const brokenDir = path . join ( parent , brokenName ) ;
286+ it ( "scanDestOccupancy 走 readPackDirOccupancy(完整 + 残缺 header)" , async ( ) => {
287+ const { scanDestOccupancy, readPackDirOccupancy } = await import ( "./dist/world-packs.js" ) ;
288+ const dest = path . join ( tmp , "occupancy-dry" ) ;
289+ const fullDir = path . join ( dest , "[RP] Full" ) ;
295290 writeManifest ( fullDir , {
296291 name : "Full Pack" ,
297- uuid : "11111111-1111-1111-1111-111111111111 " ,
298- version : [ 2 , 3 , 4 ] ,
292+ uuid : "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa " ,
293+ version : [ 2 , 1 , 0 ] ,
299294 type : "resources" ,
300295 } ) ;
301- fs . mkdirSync ( brokenDir , { recursive : true } ) ;
296+ const partialDir = path . join ( dest , "[RP] Partial" ) ;
297+ fs . mkdirSync ( partialDir , { recursive : true } ) ;
302298 fs . writeFileSync (
303- path . join ( brokenDir , "manifest.json" ) ,
299+ path . join ( partialDir , "manifest.json" ) ,
304300 JSON . stringify ( {
305301 format_version : 2 ,
306302 header : {
307- name : "Broken Pack " ,
308- uuid : "22222222-2222-2222-2222-222222222222 " ,
309- version : [ 9 , 0 , 1 ] ,
303+ name : "Partial " ,
304+ uuid : "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb " ,
305+ version : [ 3 , 0 , 0 ] ,
310306 } ,
311307 modules : [ ] ,
312308 } )
313309 ) ;
314310
315311 const fullFacts = readPackDirOccupancy ( fullDir ) ;
316- assert . equal ( fullFacts ?. uuid , "11111111-1111-1111-1111-111111111111" ) ;
317- assert . deepEqual ( fullFacts ?. version , [ 2 , 3 , 4 ] ) ;
312+ assert . equal ( fullFacts ?. uuid , "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" ) ;
313+ assert . deepEqual ( fullFacts ?. version , [ 2 , 1 , 0 ] ) ;
314+ assert . equal ( fullFacts ?. name , "Full Pack" ) ;
318315 assert . equal ( fullFacts ?. kind , "resource" ) ;
319316
320- const brokenFacts = readPackDirOccupancy ( brokenDir ) ;
321- assert . equal ( brokenFacts ?. uuid , "22222222-2222-2222-2222-222222222222 " ) ;
322- assert . deepEqual ( brokenFacts ?. version , [ 9 , 0 , 1 ] ) ;
323- assert . equal ( brokenFacts ?. kind , undefined ) ;
317+ const partialFacts = readPackDirOccupancy ( partialDir ) ;
318+ assert . equal ( partialFacts ?. uuid , "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb " ) ;
319+ assert . deepEqual ( partialFacts ?. version , [ 3 , 0 , 0 ] ) ;
320+ assert . equal ( partialFacts ?. kind , undefined ) ;
324321
325- const occ = scanDestOccupancy ( parent ) ;
322+ const occ = scanDestOccupancy ( dest ) ;
326323 assert . equal ( occ . length , 2 ) ;
327- const byFolder = Object . fromEntries ( occ . map ( ( o ) => [ o . folderName , o ] ) ) ;
328- assert . equal ( byFolder [ fullName ] ?. uuid , "11111111-1111-1111-1111-111111111111 ") ;
329- assert . equal ( byFolder [ fullName ] ?. kind , "resource" ) ;
330- assert . equal ( byFolder [ brokenName ] ?. uuid , "22222222-2222-2222-2222-222222222222" ) ;
331- assert . equal ( byFolder [ brokenName ] ?. kind , undefined ) ;
324+ const byUuid = new Map ( occ . map ( ( o ) => [ o . uuid , o ] ) ) ;
325+ assert . equal ( byUuid . get ( "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" ) ?. name , "Full Pack ") ;
326+ assert . equal ( byUuid . get ( "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" ) ?. kind , "resource" ) ;
327+ assert . equal ( byUuid . get ( "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" ) ?. version ?. [ 0 ] , 3 ) ;
328+ assert . equal ( byUuid . get ( "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" ) ?. name , undefined ) ;
332329 } ) ;
333330
334331 it ( "decidePackInstallPlan 表驱动" , async ( ) => {
0 commit comments