From b2769c88417c6e2f11a8e3b8a75c3a62f21a42b1 Mon Sep 17 00:00:00 2001 From: Andrew Kemp Date: Wed, 3 Jun 2020 16:24:01 -0400 Subject: [PATCH] Added recursive serializer test --- tests/decorators/recursive.spec.ts | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 tests/decorators/recursive.spec.ts diff --git a/tests/decorators/recursive.spec.ts b/tests/decorators/recursive.spec.ts new file mode 100644 index 0000000..48a82e0 --- /dev/null +++ b/tests/decorators/recursive.spec.ts @@ -0,0 +1,30 @@ +import 'reflect-metadata'; +import { Serde } from "src/serde"; +import { Exclude } from 'src/decorators'; + +class NestedModel extends Serde { + name: string; + @Exclude() excluded: boolean; +} + +class ParentModel extends Serde { + 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' } }); + }); +}); \ No newline at end of file