diff --git a/spec/FieldsArray.ts b/spec/FieldsArray.ts index 2475108..5723259 100644 --- a/spec/FieldsArray.ts +++ b/spec/FieldsArray.ts @@ -40,6 +40,15 @@ describe("FieldsArray", () => { expect(fa[0]).toEqual({ key: "t1", value: "v1" }); }); + it("should preserve order of input items when adding fields", () => { + expect( + fa.push({ key: "t1", value: "v1" }, { key: "t2", value: "v2" }) + ).toBe(2); + expect(fa.length).toBe(2); + expect(fa[0]).toEqual({ key: "t1", value: "v1" }); + expect(fa[1]).toEqual({ key: "t2", value: "v2" }); + }); + it("should add the key to the pool", () => { fa.push({ key: "t1", value: "v1" }); diff --git a/src/FieldsArray.ts b/src/FieldsArray.ts index 4a4fc07..12f02f7 100644 --- a/src/FieldsArray.ts +++ b/src/FieldsArray.ts @@ -67,7 +67,7 @@ function registerWithValidation( let validItems: Schemas.Field[] = []; - for (let i = items.length, field: Schemas.Field; (field = items[--i]); ) { + for (const field of items) { try { Schemas.assertValidity( Schemas.Field,