diff --git a/src/index.test.ts b/src/index.test.ts index f10fe34..0ad81ad 100644 --- a/src/index.test.ts +++ b/src/index.test.ts @@ -242,6 +242,26 @@ describe("omanyd", () => { id: savedThing.id, }); }); + + it("should save and return empty arrays", async () => { + interface Thing { + id: string; + list: string[]; + } + const ThingStore = Omanyd.define({ + name: "basicEmptyArray", + hashKey: "id", + schema: Joi.object({ + id: Omanyd.types.id(), + list: Joi.array().items(Joi.string()).default([]), + }), + }); + + await Omanyd.createTables(); + + const savedThing = await ThingStore.create({ list: [] }); + expect(savedThing.list).toEqual([]); + }); }); describe("range key", () => { diff --git a/src/index.ts b/src/index.ts index 5bfb1a6..41ebc43 100644 --- a/src/index.ts +++ b/src/index.ts @@ -35,7 +35,8 @@ export function define(options: Options) { async create(obj: Omit | T): Promise { const validated: T = await validator.validateAsync(obj); const result = await t.create(validated); - return result as unknown as T; + const validatedResult = await validator.validateAsync(result); + return validatedResult as unknown as T; }, async put(obj: T): Promise {