import { describe, it, assert, expect } from 'vitest' import SDK, { SDKCollection, SDKModel, SDKSchema, SDKModelSchema } from '../src/index.js' describe('Schema', () => { describe('construction', () => { it ('should be typed', () => { interface User { name: string, } interface UserModel extends User {} class UserModel extends SDKModel { } class UserSchema extends SDKModelSchema { } const schema = new UserSchema(UserModel, { properties: { id: {type: 'string'}, name: {type: 'string'} }, required: ['id', 'name'] }); const optionalName = schema.optional(['name']); expect(optionalName.required).toEqual(['id']); expect(schema.required).toEqual(['id', 'name']); expect(optionalName).not.toBe(schema) const z = schema.addProperties({ zogg: { type: 'string' } }) z.properties.zogg }) }) })