-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdashboard.bats
126 lines (104 loc) · 3.28 KB
/
dashboard.bats
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
#!/usr/bin/env bats
load "helpers"
setup_file() {
start_server
login_superadmin
}
teardown_file() {
stop_server
}
wait_for_pending_facilities(){
exec_admin_graphql 'dashboard'
pending_facilities=$(read_value 'pending_facilities')
new_pending_facilities=$(graphql_output '.data.dashboard.pendingFacilities')
[[ "$new_pending_facilities" != "$pending_facilities" ]] || exit 1
}
wait_for_active_facilities(){
exec_admin_graphql 'dashboard'
active_facilities=$(read_value 'active_facilities')
new_active_facilities=$(graphql_output '.data.dashboard.activeFacilities')
[[ "$new_active_facilities" != "$active_facilities" ]] || exit 1
}
wait_for_total_disbursed() {
exec_admin_graphql 'dashboard'
total_disbursed=$(read_value 'total_disbursed')
new_total_disbursed=$(graphql_output '.data.dashboard.totalDisbursed')
[[ "$new_total_disbursed" != "$total_disbursed" ]] || exit 1
}
@test "dashboard: counts facilities" {
customer_id=$(create_customer)
exec_admin_graphql 'dashboard'
pending_facilities=$(graphql_output '.data.dashboard.pendingFacilities')
[[ "$pending_facilities" != "null" ]] || exit 1
cache_value 'pending_facilities' "$pending_facilities"
facility=100000
variables=$(
jq -n \
--arg customerId "$customer_id" \
--argjson facility "$facility" \
'{
input: {
customerId: $customerId,
facility: $facility,
terms: {
annualRate: "12",
accrualInterval: "END_OF_MONTH",
incurrenceInterval: "END_OF_DAY",
duration: { period: "MONTHS", units: 3 },
liquidationCvl: "105",
marginCallCvl: "125",
initialCvl: "140"
}
}
}'
)
exec_admin_graphql 'credit-facility-create' "$variables"
credit_facility_id=$(graphql_output '.data.creditFacilityCreate.creditFacility.creditFacilityId')
retry 60 wait_for_pending_facilities
exec_admin_graphql 'dashboard'
active_facilities=$(graphql_output '.data.dashboard.activeFacilities')
[[ "$active_facilities" != "null" ]] || exit 1
cache_value 'active_facilities' "$active_facilities"
variables=$(
jq -n \
--arg credit_facility_id "$credit_facility_id" \
'{
input: {
creditFacilityId: $credit_facility_id,
collateral: 50000000,
}
}'
)
exec_admin_graphql 'credit-facility-collateral-update' "$variables"
retry 60 wait_for_active_facilities
exec_admin_graphql 'dashboard'
total_disbursed=$(graphql_output '.data.dashboard.totalDisbursed')
cache_value 'total_disbursed' "$total_disbursed"
amount=50000
variables=$(
jq -n \
--arg creditFacilityId "$credit_facility_id" \
--argjson amount "$amount" \
'{
input: {
creditFacilityId: $creditFacilityId,
amount: $amount,
}
}'
)
exec_admin_graphql 'credit-facility-disbursal-initiate' "$variables"
disbursal_index=$(graphql_output '.data.creditFacilityDisbursalInitiate.disbursal.index')
variables=$(
jq -n \
--arg creditFacilityId "$credit_facility_id" \
--argjson disbursalIdx "$disbursal_index" \
'{
input: {
creditFacilityId: $creditFacilityId,
disbursalIdx: $disbursalIdx,
}
}'
)
exec_admin_graphql 'credit-facility-disbursal-confirm' "$variables"
retry 60 wait_for_total_disbursed
}