1
0
Files
es6-models/tests/decorators/custom-serializer.spec.ts
2020-07-17 14:08:02 -04:00

30 lines
869 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('Custom serlializer', () => {
it('should run custom seiralizer once', () => {
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' } });
});
});