-
Notifications
You must be signed in to change notification settings - Fork 0
/
ISOMoney.comparisons.spec.ts
86 lines (74 loc) · 2.82 KB
/
ISOMoney.comparisons.spec.ts
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import { assert } from 'chai'
import { Money as ISOMoney } from '../lib'
describe('Comparisons', () => {
it('equals() correct for same money', () => {
const m0 = new ISOMoney('USD', 5000)
const m1 = new ISOMoney('USD', 5000)
assert.isTrue(m0.equals(m1))
assert.isTrue(m1.equals(m0))
})
it('equals() correct for different amount', () => {
const m0 = new ISOMoney('USD', 19999)
const m1 = new ISOMoney('USD', 5000)
assert.isFalse(m0.equals(m1))
assert.isFalse(m1.equals(m0))
})
it('equals() correct for different currencies', () => {
const m0 = new ISOMoney('USD', 19999)
const m1 = new ISOMoney('EUR', 19999)
assert.isFalse(m0.equals(m1))
assert.isFalse(m1.equals(m0))
})
it('equals() correct for different amount and currencies', () => {
const m0 = new ISOMoney('EUR', 19999)
const m1 = new ISOMoney('USD', 89000)
assert.isFalse(m0.equals(m1))
assert.isFalse(m1.equals(m0))
})
it('greaterThan() forbids comparing different currencies', () => {
const m0 = new ISOMoney('EUR', 19999)
const m1 = new ISOMoney('USD', 89000)
assert.throws(() => m0.greaterThan(m1), RangeError)
assert.throws(() => m1.greaterThan(m0), RangeError)
})
it('greaterThan() correct', () => {
const m0 = new ISOMoney('USD', 19999)
const m1 = new ISOMoney('USD', 89000)
assert.isTrue(m1.greaterThan(m0))
})
it('greaterThanOrEqual() true for similar amount values', () => {
const m0 = new ISOMoney('USD', 89000)
const m1 = new ISOMoney('USD', 89000)
assert.isTrue(m0.greaterThanOrEqual(m1))
assert.isTrue(m1.greaterThanOrEqual(m0))
})
it('greaterThanOrEqual() forbids comparing different currencies', () => {
const m0 = new ISOMoney('USD', 19999)
const m1 = new ISOMoney('EUR', 89000)
assert.throws(() => m0.greaterThanOrEqual(m1), RangeError)
assert.throws(() => m1.greaterThanOrEqual(m0), RangeError)
})
it('lessThan() forbids comparing different currencies', () => {
const m0 = new ISOMoney('EUR', 19999)
const m1 = new ISOMoney('USD', 89000)
assert.throws(() => m0.lessThan(m1), RangeError)
assert.throws(() => m1.lessThan(m0), RangeError)
})
it('lessThan() correct', () => {
const m0 = new ISOMoney('USD', 19999)
const m1 = new ISOMoney('USD', 89000)
assert.isTrue(m0.lessThan(m1))
})
it('lessThanOrEqual() true for similar amount values', () => {
const m0 = new ISOMoney('USD', 89000)
const m1 = new ISOMoney('USD', 89000)
assert.isTrue(m0.lessThanOrEqual(m1))
assert.isTrue(m1.lessThanOrEqual(m0))
})
it('lessThanOrEqual() forbids comparing different currencies', () => {
const m0 = new ISOMoney('USD', 19999)
const m1 = new ISOMoney('EUR', 89000)
assert.throws(() => m0.lessThanOrEqual(m1), RangeError)
assert.throws(() => m1.lessThanOrEqual(m0), RangeError)
})
})