UNPKG

@speckle/objectloader2

Version:

This is an updated objectloader for the Speckle viewer written in typescript

106 lines 5.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /* eslint-disable camelcase */ const vitest_1 = require("vitest"); const objectLoader2Factory_js_1 = require("./objectLoader2Factory.js"); (0, vitest_1.describe)('ObjectLoader2Factory', () => { let testObjects; (0, vitest_1.beforeEach)(() => { testObjects = [ { id: 'root-id', speckle_type: 'Base', __closure: { 'child-1': 1, 'child-2': 2 } }, { id: 'child-1', speckle_type: 'Base' }, { id: 'child-2', speckle_type: 'Base' } ]; }); (0, vitest_1.describe)('createFromObjects', () => { (0, vitest_1.it)('should create ObjectLoader2 from array of objects', async () => { const loader = objectLoader2Factory_js_1.ObjectLoader2Factory.createFromObjects(testObjects); (0, vitest_1.expect)(loader).toBeDefined(); // Test that we can get the root object const rootObject = await loader.getRootObject(); (0, vitest_1.expect)(rootObject?.baseId).toBe('root-id'); (0, vitest_1.expect)(rootObject?.base?.speckle_type).toBe('Base'); await loader.disposeAsync(); }); (0, vitest_1.it)('should use first object as root', async () => { const loader = objectLoader2Factory_js_1.ObjectLoader2Factory.createFromObjects(testObjects); const rootObject = await loader.getRootObject(); (0, vitest_1.expect)(rootObject?.baseId).toBe('root-id'); (0, vitest_1.expect)(rootObject?.base?.__closure).toEqual({ 'child-1': 1, 'child-2': 2 }); await loader.disposeAsync(); }); (0, vitest_1.it)('should allow iteration over all objects', async () => { const loader = objectLoader2Factory_js_1.ObjectLoader2Factory.createFromObjects(testObjects); const objects = []; for await (const obj of loader.getObjectIterator()) { objects.push(obj); } (0, vitest_1.expect)(objects).toHaveLength(3); (0, vitest_1.expect)(objects[0].id).toBe('root-id'); await loader.disposeAsync(); }); (0, vitest_1.it)('should get total object count correctly', async () => { const loader = objectLoader2Factory_js_1.ObjectLoader2Factory.createFromObjects(testObjects); const totalCount = await loader.getTotalObjectCount(); (0, vitest_1.expect)(totalCount).toBe(3); // root + 2 children await loader.disposeAsync(); }); (0, vitest_1.it)('should handle empty objects array', () => { (0, vitest_1.expect)(() => { objectLoader2Factory_js_1.ObjectLoader2Factory.createFromObjects([]); }).toThrow(); }); (0, vitest_1.it)('should get individual objects by id', async () => { const loader = objectLoader2Factory_js_1.ObjectLoader2Factory.createFromObjects(testObjects); const rootObj = await loader.getObject({ id: 'root-id' }); (0, vitest_1.expect)(rootObj.id).toBe('root-id'); (0, vitest_1.expect)(rootObj.speckle_type).toBe('Base'); const child1 = await loader.getObject({ id: 'child-1' }); (0, vitest_1.expect)(child1.id).toBe('child-1'); const child2 = await loader.getObject({ id: 'child-2' }); (0, vitest_1.expect)(child2.id).toBe('child-2'); await loader.disposeAsync(); }); (0, vitest_1.it)('should get individual objects by id that does not exist', async () => { const loader = objectLoader2Factory_js_1.ObjectLoader2Factory.createFromObjects(testObjects); const rootObj = await loader.getObject({ id: 'root-id' }); (0, vitest_1.expect)(rootObj.id).toBe('root-id'); (0, vitest_1.expect)(rootObj.speckle_type).toBe('Base'); const getObjectPromise = loader.getObject({ id: 'child-11111' }); await (0, vitest_1.expect)(getObjectPromise).rejects.toThrow(); await loader.disposeAsync(); }); }); (0, vitest_1.describe)('createFromJSON', () => { (0, vitest_1.it)('should create ObjectLoader2 from JSON string', async () => { const json = JSON.stringify(testObjects); const loader = objectLoader2Factory_js_1.ObjectLoader2Factory.createFromJSON(json); (0, vitest_1.expect)(loader).toBeDefined(); const rootObject = await loader.getRootObject(); (0, vitest_1.expect)(rootObject?.baseId).toBe('root-id'); await loader.disposeAsync(); }); (0, vitest_1.it)('should handle invalid JSON', () => { (0, vitest_1.expect)(() => { objectLoader2Factory_js_1.ObjectLoader2Factory.createFromJSON('invalid json'); }).toThrow(); }); }); }); //# sourceMappingURL=objectLoader2Factory.test.js.map