1
0
Files
es6-models/tests/decorators/recursive.spec.ts

30 lines
846 B
TypeScript

import 'reflect-metadata';
import { Serde } from "src/serde";
import { Exclude } from 'src/decorators';
class NestedModel extends Serde<NestedModel> {
name: string;
@Exclude() excluded: boolean;
}
class ParentModel extends Serde<ParentModel> {
name: string;
nested: NestedModel;
@Exclude() excluded: boolean;
}
describe('Nested Models', () => {
it('should serialze', () => {
const testModel = new ParentModel().deserialize({
name: 'parent model',
excluded: true,
nested: new NestedModel().deserialize({
name: 'nested model',
excluded: true
})
});
const serializedModel = testModel.serialize();
expect(serializedModel).toEqual({ name: 'parent model', nested: { name: 'nested model' } });
});
});