import {RelationField, ResourceSchema} from '../system'; import {PrimitiveMapping} from '../system'; import {loadUniverseYaml, resolveSchema} from './universe'; export const universeDef = ` id: c5facbc9dcb9c39ac34b989a8e75de6a name: vision description: Universe vision created on June 27, 2022. bases: - base - data dependencies: - base objects: - base.object - base.object#relation - base.object#relation/ - base.object#relation/data - base.object/ - base.object/data - canvas_point - canvas_point#auto - canvas_point#image - canvas_point#model_point - canvas_point#pos_x - canvas_point#pos_y - canvas_point@auto - canvas_point@pos_x - canvas_point@pos_y - data.@boolean - data.@boolean/ - data.@data - data.@data/ - data.@float - data.@float/ - data.@integer - data.@integer/ - data.@string - data.@string/ - image - image#format - image#jpeg_preview_128 - image#png_preview_24 - image@format - image@jpeg_preview_128 - image@png_preview_24 - jpeg_image - model - model@name - model_point - model_point#model - png_image - test@string_value info: - mapping: base.object type: model object: 6175bd7feb04b2824d338cbacea26056 description: Model object automatically created from system module base. - mapping: base.object#relation type: field object: 001d543f5a330ac188c889d6db938ded description: Field object#relation automatically created from system module base. - mapping: base.object#relation/ type: field object: 960be78e6fb5422e90213ee81ea737a2 description: Field object#relation automatically created from system module base. - mapping: base.object#relation/data type: field object: a7d7af65b931b303a73eb3210b1ae567 description: Field object#relation automatically created from system module base. - mapping: base.object/ type: model object: b9404c2aba1c64a679f3b9cae8738042 description: Model object automatically created from system module base. - mapping: base.object/data type: model object: 75b11a3bd4d63665f69c99ac76fa4037 description: Model object automatically created from system module base. - mapping: canvas_point type: model object: f622bddd8d110194c8dfa34e3b223465 description: Model canvas_point created by vision. - mapping: canvas_point#auto type: field object: adfed19dc597a0832ce400bd421f495b description: Field canvas_point#auto created by vision. - mapping: canvas_point#image type: field object: 622d2f90b51fbfe1e920c377759d432a description: Field canvas_point#image created by vision. - mapping: canvas_point#model_point type: field object: 8d975b4fabedd11fa76a456c3fe11b05 description: Field canvas_point#model_point created by vision. - mapping: canvas_point#pos_x type: field object: 9684d84b3982b50f27ef28c68d67cc5b description: Field canvas_point#pos_x created by vision. - mapping: canvas_point#pos_y type: field object: 31937c8397a03bf6cdedad8b26f661b8 description: Field canvas_point#pos_y created by vision. - mapping: canvas_point@auto type: value object: c1e2c5fa81d4cab5b1221c2adf1f53aa description: Extension of @boolean created by vision. - mapping: canvas_point@pos_x type: value object: 2f235a71e94ddc5793f754b0c7fa5051 description: Extension of @float created by vision. - mapping: canvas_point@pos_y type: value object: 977e253d5d9bb3e2d4107c7a034a55b0 description: Extension of @float created by vision. - mapping: data.@boolean type: value object: ac16eb451663e8d397a533861a560d43 description: Value type @boolean automatically created from system module data. - mapping: data.@boolean/ type: value object: bec24bf08afdfc5858a5e634cad72311 description: Value type @boolean automatically created from system module data. - mapping: data.@data type: value object: 247780bba08f2b7192b370a523db28bb description: Value type @data automatically created from system module data. - mapping: data.@data/ type: value object: aa0863f666a9abf9e565b0e233eb1dc0 description: Value type @data automatically created from system module data. - mapping: data.@float type: value object: 6702e888dff8799aa560e03412034c71 description: Value type @float automatically created from system module data. - mapping: data.@float/ type: value object: 569648b1bc04237d6fab8956cbc66b5c description: Value type @float automatically created from system module data. - mapping: data.@integer type: value object: 8ddb63b31f071a98d9417ccf519cc771 description: Value type @integer automatically created from system module data. - mapping: data.@integer/ type: value object: a0c29856570e43273639b541897bfa40 description: Value type @integer automatically created from system module data. - mapping: data.@string type: value object: 5bb0502469db3bfeace2b791e62c2765 description: Value type @string automatically created from system module data. - mapping: data.@string/ type: value object: 5b82628d7fb9aa60299a13b5cae88db8 description: Value type @string automatically created from system module data. - mapping: image type: model object: e026442af20824080447f1fb1a870552 description: Model image created by User_145042351df34f8a. - mapping: image#format type: field object: 274980fa86a8ca914bb941712d4f6e81 description: Field image#format created by vision. - mapping: image#jpeg_preview_128 type: field object: 9a14dfdd76186b4c91b9077cace55b69 description: Field image#jpeg_preview_128 created by vision. - mapping: image#png_preview_24 type: field object: ff561465dee3fa565d0d011be671d714 description: Field image#png_preview_24 created by vision. - mapping: image@format type: value object: b933afac9c048faee4dc0c9ac58c7b16 description: Extension of @string created by vision. - mapping: image@jpeg_preview_128 type: value object: 3d124dd1d1baebf0940262217bf50c44 description: Extension of @data created by vision. - mapping: image@png_preview_24 type: value object: 65cf4557036cad47f2bf12833de58e83 description: Extension of @data created by vision. - mapping: jpeg_image type: model object: eadf78b50710a908ff67a14a799c8b8c description: Model jpeg_image created by vision. - mapping: model type: model object: a99c636d75fb2c0795411134940d55ea description: Model model created by vision. - mapping: model@name type: value object: 5c6f623408e5f92230d72270d88ff79b description: Extension of @string created by vision. - mapping: model_point type: model object: 81c36c9e3552614a2053e5e8f4148fee description: Model model_point created by vision. - mapping: model_point#model type: field object: 9c8f233ada04d3b8410192e49a4a36b6 description: Field model_point#model created by vision. - mapping: png_image type: model object: 4c456dc607450d7dfe4ff76405bc9b8c description: Model png_image created by vision. - mapping: test@string_value type: value object: df5970619c8fd0047361f14d5494533c relations: - base.object#relation:base.object:base.object - base.object#relation/:base.object/:base.object - base.object#relation/data:base.object/data:base.object - canvas_point#auto:canvas_point:canvas_point@auto - canvas_point#image:canvas_point:image - canvas_point#model_point:canvas_point:model_point - canvas_point#pos_x:canvas_point:canvas_point@pos_x - canvas_point#pos_y:canvas_point:canvas_point@pos_y - image#format:image:image@format - image#jpeg_preview_128:image:image@jpeg_preview_128 - image#png_preview_24:image:image@png_preview_24 - model_point#model:model_point:model abstractions: - base.object:base.object#relation - base.object:base.object/data - base.object#relation:base.object#relation/data - base.object#relation/:canvas_point#auto - base.object#relation/:canvas_point#image - base.object#relation/:canvas_point#model_point - base.object#relation/:canvas_point#pos_x - base.object#relation/:canvas_point#pos_y - base.object#relation/:image#format - base.object#relation/:image#jpeg_preview_128 - base.object#relation/:image#png_preview_24 - base.object#relation/:model_point#model - base.object#relation/data:base.object#relation/ - base.object/:base.object#relation/ - base.object/:canvas_point - base.object/:data.@data/ - base.object/:image - base.object/:model - base.object/:model_point - base.object/data:base.object#relation/data - base.object/data:base.object/ - base.object/data:data.@data - data.@boolean:data.@boolean/ - data.@boolean/:canvas_point@auto - data.@data:data.@boolean - data.@data:data.@data/ - data.@data:data.@float - data.@data:data.@integer - data.@data:data.@string - data.@data/:data.@boolean/ - data.@data/:data.@float/ - data.@data/:data.@integer/ - data.@data/:data.@string/ - data.@data/:image@jpeg_preview_128 - data.@data/:image@png_preview_24 - data.@float:data.@float/ - data.@float/:canvas_point@pos_x - data.@float/:canvas_point@pos_y - data.@integer:data.@integer/ - data.@string:data.@string/ - data.@string/:image@format - data.@string/:model@name - data.@string/:test@string_value - image:jpeg_image - image:png_image interfaces: [] endpoints: [] `; test('getResource filtering and ordering works', async () => { const universe = loadUniverseYaml(universeDef); expect(universe).toBeTruthy(); if (!universe) { return; } expect(universe.resolve('base.object#relation/')).toBeTruthy(); const schema = new ResourceSchema(); schema .addField('relId', 'id', 'hex', 'base.object#relation/', new PrimitiveMapping()) .addField('relName', 'name', 'string', 'base.object#relation/', new PrimitiveMapping()) .addField('rel', 'id', 'hex', 'base.object#relation/', new PrimitiveMapping()); resolveSchema(universe, schema); expect((schema.fields[0] as RelationField).relation).toEqual(universe.resolve('base.object#relation/')); }); test('getModels works', async () => { const universe = loadUniverseYaml(universeDef); expect(universe).toBeTruthy(); if (!universe) { return; } expect(universe.models.size).toBeGreaterThan(0); expect(universe.fields.size).toBeGreaterThan(0); const model = universe.getModel('model_point'); expect(model?.getIdentifier()).toEqual('vision.model_point/vision'); expect(model?.targetFields.size).toEqual(1); expect(model?.originFields.size).toEqual(1); });