File size: 1,227 Bytes
b59aa07
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { describe, expect, test } from "vitest";
import { amountIsValid } from "#/utils/amount-is-valid";

describe("amountIsValid", () => {
  describe("fails", () => {
    test("when the amount is negative", () => {
      expect(amountIsValid("-5")).toBe(false);
      expect(amountIsValid("-25")).toBe(false);
    });

    test("when the amount is zero", () => {
      expect(amountIsValid("0")).toBe(false);
    });

    test("when an empty string is passed", () => {
      expect(amountIsValid("")).toBe(false);
      expect(amountIsValid("     ")).toBe(false);
    });

    test("when a non-numeric value is passed", () => {
      expect(amountIsValid("abc")).toBe(false);
      expect(amountIsValid("1abc")).toBe(false);
      expect(amountIsValid("abc1")).toBe(false);
    });

    test("when an amount less than the minimum is passed", () => {
      // test assumes the minimum is 10
      expect(amountIsValid("9")).toBe(false);
      expect(amountIsValid("9.99")).toBe(false);
    });

    test("when an amount more than the maximum is passed", () => {
      // test assumes the minimum is 25000
      expect(amountIsValid("25001")).toBe(false);
      expect(amountIsValid("25000.01")).toBe(false);
    });
  });
});