import assert from "assert"; import * as Sealgen from "../../index.js"; const { Fields } = Sealgen; describe("number field", () => { const ctx = {} as any; it("validation logic", async () => { const required = new Fields.NumberField(true, 0); const not_required = new Fields.NumberField(false, 0); assert.strictEqual((await required.isValueValid(ctx, 42)).valid, true); assert.strictEqual((await required.isValueValid(ctx, "42")).valid, true); assert.strictEqual((await required.isValueValid(ctx, "notvalid")).valid, false); assert.strictEqual((await not_required.isValueValid(ctx, "")).valid, true); }); it("parse function", async () => { const required = new Fields.NumberField(true, 0); const decimal_digits = new Fields.NumberField(true, 0, { decimalDigits: 1 }); const number_as_string_response = await required.parse(ctx, "42"); const number_response = await required.parse(ctx, 42); const not_a_number_response = await required.parse(ctx, "notanumber"); const decimal_number_response = await decimal_digits.parse(ctx, 42.42); assert.strictEqual(number_as_string_response.parsable, true); assert.strictEqual(number_as_string_response.parsed_value, 42); assert.strictEqual(number_response.parsable, true); assert.strictEqual(number_response.parsed_value, 42); assert.strictEqual(not_a_number_response.parsable, false); assert.strictEqual(not_a_number_response.error, "Please enter a number"); assert.strictEqual(decimal_number_response.parsable, true); assert.strictEqual(decimal_number_response.parsed_value, 42.4); }); });