|
1 | | -import { describe, it, expect } from "vitest"; |
| 1 | +import { describe, it, expect, test } from "vitest"; |
2 | 2 |
|
3 | 3 | import Validator from "../validator"; |
4 | 4 | import containsNonAlphanumeric from "../rules/containsNonAlphanumeric"; |
5 | 5 | import email from "../rules/email"; |
| 6 | +import minimumValue from "../rules/minimumValue"; |
6 | 7 | import required from "../rules/required"; |
7 | 8 | import type { |
8 | 9 | RuleConfiguration, |
@@ -293,4 +294,20 @@ describe("Validator", () => { |
293 | 294 | expect(result.rules.notEmpty.value).toBe(""); |
294 | 295 | expect(JSON.stringify(result.rules.notEmpty.custom)).toBe(JSON.stringify({ value: " ", trimmed: "" })); |
295 | 296 | }); |
| 297 | + |
| 298 | + test.each([0, -0])("should succeed when validation rules arguments are 0 (number)", (args) => { |
| 299 | + const validator = new Validator(); |
| 300 | + validator.setRule("minimumValue", minimumValue); |
| 301 | + const result: ValidationResult = validator.validate("age", 0, { minimumValue: args }); |
| 302 | + expect(result.isValid).toBe(true); |
| 303 | + expect(result.rules.minimumValue.severity).toBe("information"); |
| 304 | + }); |
| 305 | + |
| 306 | + it.concurrent("should succeed when validation rules arguments are 0 (BigInt)", () => { |
| 307 | + const validator = new Validator(); |
| 308 | + validator.setRule("minimumValue", minimumValue); |
| 309 | + const result: ValidationResult = validator.validate("age", 0, { minimumValue: BigInt(0) }); |
| 310 | + expect(result.isValid).toBe(true); |
| 311 | + expect(result.rules.minimumValue.severity).toBe("information"); |
| 312 | + }); |
296 | 313 | }); |
0 commit comments