import { createModel } from '../create-model' describe('create-model-definitions-test', () => { const Model1 = createModel({ user_id: { type: 'string' } }) const Model2 = createModel({ user1: { type: Model1 } }) const Model3 = createModel({ user2: { type: Model2 } }) const Model4 = createModel({ user3: { type: Model3 }, user4: { type: Model2, isArray: true } }) it('should create get definitions / references for each model in nested structure', () => { expect(Model4.usedReferences).toEqual(['m3', 'm2', 'm1', 'm2', 'm1']) }) it('should create new model with values 1', () => { const result = new Model2({ user1: { user_id: '123' } }) expect(result).toEqual({ user1: { user_id: '123' } }) }) it('should create new model with values 2', () => { const result = new Model3({ user2: { user1: { user_id: '123' } } }) expect(result).toEqual({ user2: { user1: { user_id: '123' } } }) }) it('should create new model with values 3', () => { const result = new Model4({ user3: { user2: { user1: { user_id: '123' } } } }) expect(result).toEqual({ user4: [], user3: { user2: { user1: { user_id: '123' } } } }) }) })