t32-import-lifecycle.mjs 943 B

1234567891011121314151617
  1. import assert from 'node:assert/strict'
  2. import { register } from 'node:module'
  3. register('./t32-delay-model-loader.mjs', import.meta.url)
  4. const { syncPipeLayer, clearPipeLayer } = await import('../../../src/modules/cockpit/services/cesiumPipeLayer.js')
  5. const sources = []
  6. const viewer = { scene:{primitives:{}}, isDestroyed:()=>false, dataSources:{
  7. getByName:(name)=>sources.filter(s=>s.name===name),
  8. add:async(source)=>{sources.push(source);return source},
  9. } }
  10. const network={pipes:[{code:'p',industry:'GAS',diameter:200,positions:[[110.39,28.44],[110.4,28.44]]}],components:[]}
  11. const pending=syncPipeLayer(viewer,network)
  12. await new Promise(setImmediate)
  13. await clearPipeLayer(viewer)
  14. await pending
  15. assert.equal(globalThis.t32AdapterCreates || 0,0,'cleared layer must not create a delayed model adapter')
  16. assert.equal(sources[0].entities.values.length,0)
  17. console.log('PASS clear during first model import cannot resurrect old objects')