import {describe, test, expect} from 'vitest' import { decodeUniqueCollectionFromProperties, encodeCollectionSchemaToProperties } from "../../schema/tools/collection" import { dungeonsAndHeroesSchema } from '../samples/dungeonsAndHeroes.sample'; import {UniqueCollectionSchemaDecoded, UniqueCollectionSchemaToCreate} from "../../schema"; import {DecodingResult} from "../../schema/schemaUtils"; const testDecodedSchema = (expected: UniqueCollectionSchemaToCreate | UniqueCollectionSchemaToCreate, actual: DecodingResult): void => { const { result, error } = actual; expect(error).toBeFalsy(); expect(result!.schemaName).toEqual(expected.schemaName) expect(result!.schemaVersion).toEqual(expected.schemaVersion) expect(result!.attributesSchemaVersion).toEqual(expected.attributesSchemaVersion) expect(result!.attributesSchema).toEqual(expected.attributesSchema) } describe('encode and decode unique schema', () => { test('Schema with attributes', async () => { const encoded = encodeCollectionSchemaToProperties(dungeonsAndHeroesSchema) const decodingResult = await decodeUniqueCollectionFromProperties(1, encoded); testDecodedSchema(dungeonsAndHeroesSchema, decodingResult) }) test('Schema without attributes', async () => { const schema: UniqueCollectionSchemaToCreate = { ...dungeonsAndHeroesSchema, attributesSchema: undefined }; const encoded = encodeCollectionSchemaToProperties(schema) const decodingResult = await decodeUniqueCollectionFromProperties(1, encoded); testDecodedSchema(schema, decodingResult) }) })