snf_core 0.2.94 → 0.2.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/snf_core/auth_controller.rb +12 -2
- data/app/models/snf_core/account_transfer.rb +37 -0
- data/app/models/snf_core/item_request.rb +27 -0
- data/app/models/snf_core/user.rb +7 -6
- data/app/models/snf_core/virtual_account.rb +41 -0
- data/app/models/snf_core/virtual_account_transaction.rb +52 -0
- data/db/migrate/20250310122954_create_snf_core_virtual_accounts.rb +22 -0
- data/db/migrate/20250310123127_add_kyc_attributes_to_user.rb +17 -0
- data/db/migrate/20250310133249_create_snf_core_virtual_account_transactions.rb +18 -0
- data/db/migrate/20250310143604_create_snf_core_item_requests.rb +14 -0
- data/db/migrate/20250311000000_create_snf_core_account_transfers.rb +21 -0
- data/lib/snf_core/version.rb +1 -1
- data/spec/dummy/db/schema.rb +117 -27
- data/spec/dummy/log/development.log +1820 -0
- data/spec/dummy/log/test.log +99021 -0
- data/spec/dummy/tmp/storage/00/ch/00ch4m884d5bnelqgd2ld1qig6ey +0 -0
- data/spec/dummy/tmp/storage/0s/ba/0sbase6mg5sgich6or97cg1faxlw +0 -0
- data/spec/dummy/tmp/storage/0x/uy/0xuyfqa0t08zr8vfm8p123o0s34t +0 -0
- data/spec/dummy/tmp/storage/1o/ts/1otsbrqkd6n4qiht1wabl7fhjnt3 +0 -0
- data/spec/dummy/tmp/storage/1v/54/1v542i134jpb9iwbq9m1v801y0ls +0 -0
- data/spec/dummy/tmp/storage/1y/46/1y4617uv2nrk9fa58zfv9xyixmfk +0 -0
- data/spec/dummy/tmp/storage/24/kq/24kq40q48k7jry3npyah0td4uend +0 -0
- data/spec/dummy/tmp/storage/28/ye/28yeusf04wxopqkg0bxki7mqo9ph +0 -0
- data/spec/dummy/tmp/storage/2r/hv/2rhvs6uca2ozrojfuub5d4qk0ugy +0 -0
- data/spec/dummy/tmp/storage/2w/r1/2wr14buxnrx4cee19gj6sefnbby5 +0 -0
- data/spec/dummy/tmp/storage/3k/7z/3k7zlcd9fm2jwn99kinxpahrmm4u +0 -0
- data/spec/dummy/tmp/storage/3o/2a/3o2ahddfby8aqgutow91vo4asm4f +0 -0
- data/spec/dummy/tmp/storage/46/zj/46zjkljy84qmg4ebes40e2zolzp7 +0 -0
- data/spec/dummy/tmp/storage/4f/fl/4fflxsg2pissq4960wfazyv9mgp1 +0 -0
- data/spec/dummy/tmp/storage/4l/6a/4l6ap3t705ektu02kabqobaq8huf +0 -0
- data/spec/dummy/tmp/storage/4m/3n/4m3n3r5zl2jevvvw3alq0omnnowk +0 -0
- data/spec/dummy/tmp/storage/4t/qc/4tqc587gmu2g7hgntrgjnhkw0e1u +0 -0
- data/spec/dummy/tmp/storage/4w/76/4w7656628v1p4mp87fqz3okc6ix4 +0 -0
- data/spec/dummy/tmp/storage/50/ct/50ctjwt8y93spjaef1b3rfnav9gb +0 -0
- data/spec/dummy/tmp/storage/5m/0k/5m0k5zx08ouqos7rs09bpgmalspu +0 -0
- data/spec/dummy/tmp/storage/5m/4n/5m4nvbe3vqwrdpy6hujr1oq5nolv +0 -0
- data/spec/dummy/tmp/storage/5r/tv/5rtv2agppt9e52eg0oc81svs896e +0 -0
- data/spec/dummy/tmp/storage/5s/b6/5sb6kux9jtdj4du9ihu32tc82s12 +0 -0
- data/spec/dummy/tmp/storage/5t/84/5t84ncnwqnv83rndaztqz1dsae3v +0 -0
- data/spec/dummy/tmp/storage/6h/9a/6h9a6bxecnlwx7zbb4dc33rmftee +0 -0
- data/spec/dummy/tmp/storage/6h/pd/6hpdw0r7w6vpcotirwqz1fv640kk +0 -0
- data/spec/dummy/tmp/storage/6i/dm/6idmnfdfriqdmvcvgreyeho4xgra +0 -0
- data/spec/dummy/tmp/storage/6n/3b/6n3bufdfx1tvls9lzm3g625l1lyk +0 -0
- data/spec/dummy/tmp/storage/78/5u/785ub96ra353qygeubpq4vlifjas +0 -0
- data/spec/dummy/tmp/storage/7v/55/7v55c4y5xdiw6qrvbdpmd63v4toz +0 -0
- data/spec/dummy/tmp/storage/83/yi/83yiflnj2evgqahmzgiavbywle7h +0 -0
- data/spec/dummy/tmp/storage/8a/02/8a02q8tcm3lowda8cvcjh18tka7i +0 -0
- data/spec/dummy/tmp/storage/8g/4a/8g4aarquz0mos9gxzq6j7xzwli09 +0 -0
- data/spec/dummy/tmp/storage/8k/0m/8k0mv7xql5lr89d0172izqplypwx +0 -0
- data/spec/dummy/tmp/storage/8n/lz/8nlzdb800dgr9iax1ez2ko4euh02 +0 -0
- data/spec/dummy/tmp/storage/8y/y2/8yy2kqz8sa11vh7naiomyofj30ox +0 -0
- data/spec/dummy/tmp/storage/92/hz/92hz15r26fs5wymc6tced4b08bh6 +0 -0
- data/spec/dummy/tmp/storage/9k/wj/9kwjdz4yw0jyzddj32u97xciot47 +0 -0
- data/spec/dummy/tmp/storage/a0/ve/a0veqfafcpy1hl6jvg6jc4qt08kr +0 -0
- data/spec/dummy/tmp/storage/ak/g9/akg9bg7fdwisycbclvmikbzl676j +0 -0
- data/spec/dummy/tmp/storage/ap/fs/apfsy6cp4mt4jsyiyscutqhv36id +0 -0
- data/spec/dummy/tmp/storage/b2/ux/b2uxv1pu0hjqty7779grby8qxzoo +0 -0
- data/spec/dummy/tmp/storage/bh/s1/bhs1yc1jo5vhc1u8lz7zme0sowln +0 -0
- data/spec/dummy/tmp/storage/c6/29/c6299u91u1tc5bc7eb24yq8k7xgk +0 -0
- data/spec/dummy/tmp/storage/cb/dh/cbdhbsxm7irfbsrniqvxnfukotka +0 -0
- data/spec/dummy/tmp/storage/dj/zr/djzriitbyq5sebmjs7nf0wqijzl2 +0 -0
- data/spec/dummy/tmp/storage/dk/z6/dkz6yvma826vmeofy924nzacyi6a +0 -0
- data/spec/dummy/tmp/storage/e6/5h/e65haeyr0sglopfuo5chz55thi9z +0 -0
- data/spec/dummy/tmp/storage/ez/kd/ezkdx2jgksxsm9fdwpx5qw8qd6hb +0 -0
- data/spec/dummy/tmp/storage/ft/pz/ftpzprhag9awyjvcac1xiqv9qngf +0 -0
- data/spec/dummy/tmp/storage/g1/fp/g1fprpwzsoltdd9atheqqbmt75w1 +0 -0
- data/spec/dummy/tmp/storage/g6/7r/g67rz6k8b5kmrfsk91e77d37vnfg +0 -0
- data/spec/dummy/tmp/storage/ik/r8/ikr86smhkvxy0yrqxjr0iubcuy5s +0 -0
- data/spec/dummy/tmp/storage/ip/yy/ipyyodp4f221bzp384ncz3alga7l +0 -0
- data/spec/dummy/tmp/storage/jc/jk/jcjkdsojvg0n7abwcfpscbkrlvoj +0 -0
- data/spec/dummy/tmp/storage/jd/ik/jdik45lk030wwyyfs9xy6m4q0sv9 +0 -0
- data/spec/dummy/tmp/storage/jo/34/jo34sgi1pzpkbryh3z6bmeccbada +0 -0
- data/spec/dummy/tmp/storage/jw/gm/jwgmfnb1z5jahut7upw5lwnh6orj +0 -0
- data/spec/dummy/tmp/storage/kv/7m/kv7mdo1kvqnagfcp1dit4pzrlugm +0 -0
- data/spec/dummy/tmp/storage/kz/ao/kzao8av3jxls3bjeal7bv2qefcq2 +0 -0
- data/spec/dummy/tmp/storage/lp/iz/lpizuy9o61mj9a6nsp66uhxmwifn +0 -0
- data/spec/dummy/tmp/storage/lu/ge/lugetp9a4lxzimpwttg2bkmrv1tf +0 -0
- data/spec/dummy/tmp/storage/m0/hl/m0hl9jcc1ra6ogfep0yxwon1n8e4 +0 -0
- data/spec/dummy/tmp/storage/md/94/md943ike1q6c3z19js6h89ghdqpd +0 -0
- data/spec/dummy/tmp/storage/mi/y2/miy2op7reeft1521or0hx3sa03qi +0 -0
- data/spec/dummy/tmp/storage/n4/6y/n46y5dyl1uf9ihlyp79fzdxny80f +0 -0
- data/spec/dummy/tmp/storage/ng/sy/ngsy8siky5us2x8cr54uxlzwoji5 +0 -0
- data/spec/dummy/tmp/storage/nq/9r/nq9rfa8upvcoyx92za4fhzrmob0t +0 -0
- data/spec/dummy/tmp/storage/nz/h5/nzh5f9vo9icpp0qvxvvm57ivsy85 +0 -0
- data/spec/dummy/tmp/storage/o3/3e/o33eo1zb3spyqgqbtugs43olucmj +0 -0
- data/spec/dummy/tmp/storage/oc/zy/oczyqb5chp2fvo9kdu62c3y7pl5i +0 -0
- data/spec/dummy/tmp/storage/of/zt/ofzt1knekv9ft8direbw6fiaacvc +0 -0
- data/spec/dummy/tmp/storage/ol/u8/olu875ti78gguc82spdkt9z8tpii +0 -0
- data/spec/dummy/tmp/storage/pe/xm/pexmtjvhiiepbza9928j2j0uo6ub +0 -0
- data/spec/dummy/tmp/storage/q4/wp/q4wpnk0ajsmg3nnpj2xja15tc1az +0 -0
- data/spec/dummy/tmp/storage/q7/48/q748a4a7d3qk28vajhbkli5tttsj +0 -0
- data/spec/dummy/tmp/storage/qg/qu/qgquu27ysijim1jv06k39a3c3opr +0 -0
- data/spec/dummy/tmp/storage/qo/zx/qozxdnemk1fwxcvhe1j10ys7mxcq +0 -0
- data/spec/dummy/tmp/storage/rg/hw/rghwbui1nfqvuuja4hqvzvwofucm +0 -0
- data/spec/dummy/tmp/storage/rj/4a/rj4a0t2xebuf22tyhuitu7x0h0ct +0 -0
- data/spec/dummy/tmp/storage/ro/gg/roggtjpn82v1pf5hi9c72ta6uxt7 +0 -0
- data/spec/dummy/tmp/storage/sd/b5/sdb5dbqjlz1nng8qaejdmh94h5kh +0 -0
- data/spec/dummy/tmp/storage/t6/h0/t6h0whv9denben7ktf5maaohv9dg +0 -0
- data/spec/dummy/tmp/storage/u8/dc/u8dc1at72gpsq6d2fqb81rku7xq9 +0 -0
- data/spec/dummy/tmp/storage/v8/cs/v8csqmcgvc4z177g5hfmp7twf6ay +0 -0
- data/spec/dummy/tmp/storage/vb/z1/vbz124po6xcx6fbh4nefle8r6of3 +0 -0
- data/spec/dummy/tmp/storage/vc/0v/vc0vb76xhipq8d5xrmqnnvlkbxhi +0 -0
- data/spec/dummy/tmp/storage/vc/eu/vceu8un4vczdune7r9oaihtx3l09 +0 -0
- data/spec/dummy/tmp/storage/vg/qn/vgqnfl62z1s3940ei2s9ifrjufiz +0 -0
- data/spec/dummy/tmp/storage/vz/qz/vzqz49sc3hfzbcaawqw6yuqzpocv +0 -0
- data/spec/dummy/tmp/storage/w1/9e/w19epnmenhmu0y14exloj2oskf53 +0 -0
- data/spec/dummy/tmp/storage/w4/k8/w4k8g0iv6qtdhzyw454un1d048hp +0 -0
- data/spec/dummy/tmp/storage/wv/8i/wv8iai6dxxh2wqwnj667p5rre1tn +0 -0
- data/spec/dummy/tmp/storage/xd/fp/xdfpr9gw2neskzyq6cfxyj2lsa47 +0 -0
- data/spec/dummy/tmp/storage/xh/4e/xh4e0tnk5ysrfndrhyu9u0ywueku +0 -0
- data/spec/dummy/tmp/storage/xj/d2/xjd2s558zk0eduk4f25ul4t29b2r +0 -0
- data/spec/dummy/tmp/storage/yi/r2/yir26w0pcj2268kp8biw0lcrnimz +0 -0
- data/spec/dummy/tmp/storage/yj/d7/yjd7k0ea2d8y6yjp8syfudd0qvhr +0 -0
- data/spec/dummy/tmp/storage/z0/il/z0ilfyp3hmqqn6alkocrt7y949ee +0 -0
- data/spec/dummy/tmp/storage/zc/i3/zci3kt86sywh9q6u7xv7yt38xznu +0 -0
- data/spec/examples.txt +192 -128
- data/spec/factories/snf_core/account_transfers.rb +27 -0
- data/spec/factories/snf_core/addresses.rb +1 -0
- data/spec/factories/snf_core/item_requests.rb +26 -0
- data/spec/factories/snf_core/users.rb +10 -1
- data/spec/factories/snf_core/virtual_account_transactions.rb +33 -0
- data/spec/factories/snf_core/virtual_accounts.rb +32 -0
- data/spec/models/snf_core/account_transfer_spec.rb +29 -0
- data/spec/models/snf_core/item_request_spec.rb +44 -0
- data/spec/models/snf_core/user_spec.rb +5 -8
- data/spec/models/snf_core/virtual_account_spec.rb +86 -0
- data/spec/models/snf_core/virtual_account_transaction_spec.rb +72 -0
- data/spec/requests/snf_core/auth_spec.rb +11 -1
- metadata +119 -2
data/spec/examples.txt
CHANGED
@@ -1,128 +1,192 @@
|
|
1
|
-
example_id
|
2
|
-
|
3
|
-
./spec/mailers/snf_core/auth_mailer_spec.rb[1:1]
|
4
|
-
./spec/models/snf_core/
|
5
|
-
./spec/models/snf_core/
|
6
|
-
./spec/models/snf_core/
|
7
|
-
./spec/models/snf_core/
|
8
|
-
./spec/models/snf_core/
|
9
|
-
./spec/models/snf_core/
|
10
|
-
./spec/models/snf_core/
|
11
|
-
./spec/models/snf_core/
|
12
|
-
./spec/models/snf_core/
|
13
|
-
./spec/models/snf_core/
|
14
|
-
./spec/models/snf_core/
|
15
|
-
./spec/models/snf_core/
|
16
|
-
./spec/models/snf_core/
|
17
|
-
./spec/models/snf_core/
|
18
|
-
./spec/models/snf_core/
|
19
|
-
./spec/models/snf_core/
|
20
|
-
./spec/models/snf_core/
|
21
|
-
./spec/models/snf_core/
|
22
|
-
./spec/models/snf_core/
|
23
|
-
./spec/models/snf_core/
|
24
|
-
./spec/models/snf_core/
|
25
|
-
./spec/models/snf_core/
|
26
|
-
./spec/models/snf_core/
|
27
|
-
./spec/models/snf_core/
|
28
|
-
./spec/models/snf_core/
|
29
|
-
./spec/models/snf_core/
|
30
|
-
./spec/models/snf_core/
|
31
|
-
./spec/models/snf_core/
|
32
|
-
./spec/models/snf_core/
|
33
|
-
./spec/models/snf_core/
|
34
|
-
./spec/models/snf_core/
|
35
|
-
./spec/models/snf_core/
|
36
|
-
./spec/models/snf_core/
|
37
|
-
./spec/models/snf_core/
|
38
|
-
./spec/models/snf_core/
|
39
|
-
./spec/models/snf_core/
|
40
|
-
./spec/models/snf_core/
|
41
|
-
./spec/models/snf_core/
|
42
|
-
./spec/models/snf_core/
|
43
|
-
./spec/models/snf_core/delivery_order_spec.rb[1:
|
44
|
-
./spec/models/snf_core/delivery_order_spec.rb[1:
|
45
|
-
./spec/models/snf_core/
|
46
|
-
./spec/models/snf_core/
|
47
|
-
./spec/models/snf_core/
|
48
|
-
./spec/models/snf_core/
|
49
|
-
./spec/models/snf_core/
|
50
|
-
./spec/models/snf_core/
|
51
|
-
./spec/models/snf_core/
|
52
|
-
./spec/models/snf_core/
|
53
|
-
./spec/models/snf_core/
|
54
|
-
./spec/models/snf_core/
|
55
|
-
./spec/models/snf_core/
|
56
|
-
./spec/models/snf_core/
|
57
|
-
./spec/models/snf_core/
|
58
|
-
./spec/models/snf_core/
|
59
|
-
./spec/models/snf_core/
|
60
|
-
./spec/models/snf_core/
|
61
|
-
./spec/models/snf_core/
|
62
|
-
./spec/models/snf_core/
|
63
|
-
./spec/models/snf_core/
|
64
|
-
./spec/models/snf_core/
|
65
|
-
./spec/models/snf_core/
|
66
|
-
./spec/models/snf_core/
|
67
|
-
./spec/models/snf_core/
|
68
|
-
./spec/models/snf_core/
|
69
|
-
./spec/models/snf_core/
|
70
|
-
./spec/models/snf_core/
|
71
|
-
./spec/models/snf_core/
|
72
|
-
./spec/models/snf_core/
|
73
|
-
./spec/models/snf_core/
|
74
|
-
./spec/models/snf_core/
|
75
|
-
./spec/models/snf_core/
|
76
|
-
./spec/models/snf_core/
|
77
|
-
./spec/models/snf_core/
|
78
|
-
./spec/models/snf_core/
|
79
|
-
./spec/models/snf_core/
|
80
|
-
./spec/models/snf_core/
|
81
|
-
./spec/models/snf_core/
|
82
|
-
./spec/models/snf_core/
|
83
|
-
./spec/models/snf_core/
|
84
|
-
./spec/models/snf_core/
|
85
|
-
./spec/models/snf_core/
|
86
|
-
./spec/models/snf_core/
|
87
|
-
./spec/models/snf_core/
|
88
|
-
./spec/models/snf_core/
|
89
|
-
./spec/models/snf_core/
|
90
|
-
./spec/models/snf_core/
|
91
|
-
./spec/models/snf_core/
|
92
|
-
./spec/models/snf_core/
|
93
|
-
./spec/models/snf_core/
|
94
|
-
./spec/models/snf_core/
|
95
|
-
./spec/models/snf_core/
|
96
|
-
./spec/models/snf_core/
|
97
|
-
./spec/models/snf_core/
|
98
|
-
./spec/models/snf_core/
|
99
|
-
./spec/models/snf_core/
|
100
|
-
./spec/models/snf_core/
|
101
|
-
./spec/models/snf_core/
|
102
|
-
./spec/models/snf_core/
|
103
|
-
./spec/models/snf_core/
|
104
|
-
./spec/models/snf_core/
|
105
|
-
./spec/models/snf_core/
|
106
|
-
./spec/models/snf_core/
|
107
|
-
./spec/models/snf_core/
|
108
|
-
./spec/models/snf_core/
|
109
|
-
./spec/models/snf_core/
|
110
|
-
./spec/models/snf_core/
|
111
|
-
./spec/models/snf_core/
|
112
|
-
./spec/models/snf_core/
|
113
|
-
./spec/models/snf_core/
|
114
|
-
./spec/models/snf_core/
|
115
|
-
./spec/models/snf_core/
|
116
|
-
./spec/models/snf_core/
|
117
|
-
./spec/
|
118
|
-
./spec/
|
119
|
-
./spec/
|
120
|
-
./spec/
|
121
|
-
./spec/
|
122
|
-
./spec/
|
123
|
-
./spec/
|
124
|
-
./spec/
|
125
|
-
./spec/
|
126
|
-
./spec/
|
127
|
-
./spec/
|
128
|
-
./spec/
|
1
|
+
example_id | status | run_time |
|
2
|
+
------------------------------------------------------------------- | ------- | --------------- |
|
3
|
+
./spec/mailers/snf_core/auth_mailer_spec.rb[1:1] | pending | 0.00001 seconds |
|
4
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:1] | passed | 0.02109 seconds |
|
5
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:2] | passed | 0.01908 seconds |
|
6
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:3] | passed | 0.0311 seconds |
|
7
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:4] | passed | 0.01886 seconds |
|
8
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:5] | passed | 0.02229 seconds |
|
9
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:6] | passed | 0.02134 seconds |
|
10
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:7] | passed | 0.01888 seconds |
|
11
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:8] | passed | 0.0385 seconds |
|
12
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:9] | passed | 0.01913 seconds |
|
13
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:10] | passed | 0.07187 seconds |
|
14
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:11:1] | passed | 0.02068 seconds |
|
15
|
+
./spec/models/snf_core/account_transfer_spec.rb[1:11:2] | passed | 0.02125 seconds |
|
16
|
+
./spec/models/snf_core/address_spec.rb[1:1] | passed | 0.00504 seconds |
|
17
|
+
./spec/models/snf_core/address_spec.rb[1:2] | passed | 0.00359 seconds |
|
18
|
+
./spec/models/snf_core/address_spec.rb[1:3] | passed | 0.00357 seconds |
|
19
|
+
./spec/models/snf_core/address_spec.rb[1:4] | passed | 0.00498 seconds |
|
20
|
+
./spec/models/snf_core/address_spec.rb[1:5] | passed | 0.00343 seconds |
|
21
|
+
./spec/models/snf_core/address_spec.rb[1:6] | passed | 0.00341 seconds |
|
22
|
+
./spec/models/snf_core/address_spec.rb[1:7] | passed | 0.00344 seconds |
|
23
|
+
./spec/models/snf_core/address_spec.rb[1:8] | passed | 0.0025 seconds |
|
24
|
+
./spec/models/snf_core/business_document_spec.rb[1:1] | passed | 0.0247 seconds |
|
25
|
+
./spec/models/snf_core/business_document_spec.rb[1:2] | passed | 0.07233 seconds |
|
26
|
+
./spec/models/snf_core/business_document_spec.rb[1:3] | passed | 0.02719 seconds |
|
27
|
+
./spec/models/snf_core/business_document_spec.rb[1:4] | passed | 0.04055 seconds |
|
28
|
+
./spec/models/snf_core/business_document_spec.rb[1:5] | passed | 0.0241 seconds |
|
29
|
+
./spec/models/snf_core/business_spec.rb[1:1] | passed | 0.00856 seconds |
|
30
|
+
./spec/models/snf_core/business_spec.rb[1:2] | passed | 0.00999 seconds |
|
31
|
+
./spec/models/snf_core/business_spec.rb[1:3] | passed | 0.01027 seconds |
|
32
|
+
./spec/models/snf_core/business_spec.rb[1:4] | passed | 0.01067 seconds |
|
33
|
+
./spec/models/snf_core/business_spec.rb[1:5] | passed | 0.00922 seconds |
|
34
|
+
./spec/models/snf_core/business_spec.rb[1:6] | passed | 0.00861 seconds |
|
35
|
+
./spec/models/snf_core/business_spec.rb[1:7] | passed | 0.01186 seconds |
|
36
|
+
./spec/models/snf_core/category_spec.rb[1:1] | passed | 0.0028 seconds |
|
37
|
+
./spec/models/snf_core/category_spec.rb[1:2] | passed | 0.00404 seconds |
|
38
|
+
./spec/models/snf_core/category_spec.rb[1:3] | passed | 0.0047 seconds |
|
39
|
+
./spec/models/snf_core/category_spec.rb[1:4] | passed | 0.014 seconds |
|
40
|
+
./spec/models/snf_core/customer_group_spec.rb[1:1] | passed | 0.01571 seconds |
|
41
|
+
./spec/models/snf_core/customer_group_spec.rb[1:2] | passed | 0.01518 seconds |
|
42
|
+
./spec/models/snf_core/customer_group_spec.rb[1:3] | passed | 0.02979 seconds |
|
43
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:1] | passed | 0.01796 seconds |
|
44
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:2] | passed | 0.0187 seconds |
|
45
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:3] | passed | 0.01852 seconds |
|
46
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:4] | passed | 0.01948 seconds |
|
47
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:5] | passed | 0.01994 seconds |
|
48
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:6] | passed | 0.01868 seconds |
|
49
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:7] | passed | 0.02885 seconds |
|
50
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:8:1] | passed | 0.01666 seconds |
|
51
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:8:2] | passed | 0.01912 seconds |
|
52
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:8:3] | passed | 0.01956 seconds |
|
53
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:8:4] | passed | 0.02008 seconds |
|
54
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:8:5] | passed | 0.02314 seconds |
|
55
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:8:6] | passed | 0.0381 seconds |
|
56
|
+
./spec/models/snf_core/delivery_order_spec.rb[1:8:7] | passed | 0.04972 seconds |
|
57
|
+
./spec/models/snf_core/group_spec.rb[1:1] | passed | 0.00939 seconds |
|
58
|
+
./spec/models/snf_core/group_spec.rb[1:2] | passed | 0.00911 seconds |
|
59
|
+
./spec/models/snf_core/group_spec.rb[1:3] | passed | 0.00915 seconds |
|
60
|
+
./spec/models/snf_core/item_request_spec.rb[1:1] | passed | 0.01144 seconds |
|
61
|
+
./spec/models/snf_core/item_request_spec.rb[1:2] | passed | 0.01046 seconds |
|
62
|
+
./spec/models/snf_core/item_request_spec.rb[1:3] | passed | 0.02247 seconds |
|
63
|
+
./spec/models/snf_core/item_request_spec.rb[1:4] | passed | 0.01143 seconds |
|
64
|
+
./spec/models/snf_core/item_request_spec.rb[1:5] | passed | 0.00914 seconds |
|
65
|
+
./spec/models/snf_core/item_request_spec.rb[1:6] | passed | 0.01251 seconds |
|
66
|
+
./spec/models/snf_core/item_request_spec.rb[1:7] | passed | 0.01192 seconds |
|
67
|
+
./spec/models/snf_core/item_request_spec.rb[1:8:1] | passed | 0.0031 seconds |
|
68
|
+
./spec/models/snf_core/item_request_spec.rb[1:8:2] | passed | 0.00302 seconds |
|
69
|
+
./spec/models/snf_core/item_request_spec.rb[1:9:1] | passed | 0.01047 seconds |
|
70
|
+
./spec/models/snf_core/item_request_spec.rb[1:9:2] | passed | 0.0111 seconds |
|
71
|
+
./spec/models/snf_core/order_item_spec.rb[1:1] | passed | 0.03603 seconds |
|
72
|
+
./spec/models/snf_core/order_item_spec.rb[1:2] | passed | 0.03656 seconds |
|
73
|
+
./spec/models/snf_core/order_item_spec.rb[1:3] | passed | 0.03345 seconds |
|
74
|
+
./spec/models/snf_core/order_item_spec.rb[1:4] | passed | 0.03833 seconds |
|
75
|
+
./spec/models/snf_core/order_item_spec.rb[1:5] | passed | 0.03666 seconds |
|
76
|
+
./spec/models/snf_core/order_item_spec.rb[1:6] | passed | 0.03614 seconds |
|
77
|
+
./spec/models/snf_core/order_item_spec.rb[1:7] | passed | 0.03381 seconds |
|
78
|
+
./spec/models/snf_core/order_item_spec.rb[1:8:1] | passed | 0.00863 seconds |
|
79
|
+
./spec/models/snf_core/order_item_spec.rb[1:8:2] | passed | 0.03361 seconds |
|
80
|
+
./spec/models/snf_core/order_item_spec.rb[1:8:3] | passed | 0.04325 seconds |
|
81
|
+
./spec/models/snf_core/order_item_spec.rb[1:9:1] | passed | 0.00872 seconds |
|
82
|
+
./spec/models/snf_core/order_item_spec.rb[1:9:2] | passed | 0.0084 seconds |
|
83
|
+
./spec/models/snf_core/order_item_spec.rb[1:10:1] | passed | 0.03548 seconds |
|
84
|
+
./spec/models/snf_core/order_item_spec.rb[1:10:2] | passed | 0.03659 seconds |
|
85
|
+
./spec/models/snf_core/order_spec.rb[1:1] | passed | 0.01785 seconds |
|
86
|
+
./spec/models/snf_core/order_spec.rb[1:2] | passed | 0.01775 seconds |
|
87
|
+
./spec/models/snf_core/order_spec.rb[1:3] | passed | 0.02093 seconds |
|
88
|
+
./spec/models/snf_core/order_spec.rb[1:4] | passed | 0.02037 seconds |
|
89
|
+
./spec/models/snf_core/order_spec.rb[1:5] | passed | 0.01695 seconds |
|
90
|
+
./spec/models/snf_core/order_spec.rb[1:6] | passed | 0.03397 seconds |
|
91
|
+
./spec/models/snf_core/order_spec.rb[1:7:1] | passed | 0.01637 seconds |
|
92
|
+
./spec/models/snf_core/order_spec.rb[1:7:2] | passed | 0.01752 seconds |
|
93
|
+
./spec/models/snf_core/order_spec.rb[1:7:3] | passed | 0.02406 seconds |
|
94
|
+
./spec/models/snf_core/order_spec.rb[1:7:4] | passed | 0.01949 seconds |
|
95
|
+
./spec/models/snf_core/order_spec.rb[1:7:5] | passed | 0.01742 seconds |
|
96
|
+
./spec/models/snf_core/order_spec.rb[1:7:6] | passed | 0.03264 seconds |
|
97
|
+
./spec/models/snf_core/order_spec.rb[1:8:1] | passed | 0.05418 seconds |
|
98
|
+
./spec/models/snf_core/order_spec.rb[1:8:2] | passed | 0.05357 seconds |
|
99
|
+
./spec/models/snf_core/order_spec.rb[1:8:3] | passed | 0.01866 seconds |
|
100
|
+
./spec/models/snf_core/product_spec.rb[1:1] | passed | 0.00474 seconds |
|
101
|
+
./spec/models/snf_core/product_spec.rb[1:2] | passed | 0.01012 seconds |
|
102
|
+
./spec/models/snf_core/product_spec.rb[1:3] | passed | 0.01511 seconds |
|
103
|
+
./spec/models/snf_core/product_spec.rb[1:4] | passed | 0.00678 seconds |
|
104
|
+
./spec/models/snf_core/product_spec.rb[1:5:1] | passed | 0.00407 seconds |
|
105
|
+
./spec/models/snf_core/product_spec.rb[1:5:2] | passed | 0.00595 seconds |
|
106
|
+
./spec/models/snf_core/role_spec.rb[1:1] | passed | 0.00391 seconds |
|
107
|
+
./spec/models/snf_core/role_spec.rb[1:2] | passed | 0.00439 seconds |
|
108
|
+
./spec/models/snf_core/role_spec.rb[1:3] | passed | 0.00404 seconds |
|
109
|
+
./spec/models/snf_core/role_spec.rb[1:4] | passed | 0.00261 seconds |
|
110
|
+
./spec/models/snf_core/role_spec.rb[1:5] | passed | 0.00263 seconds |
|
111
|
+
./spec/models/snf_core/store_inventory_spec.rb[1:1] | passed | 0.01641 seconds |
|
112
|
+
./spec/models/snf_core/store_inventory_spec.rb[1:2] | passed | 0.01581 seconds |
|
113
|
+
./spec/models/snf_core/store_inventory_spec.rb[1:3] | passed | 0.0151 seconds |
|
114
|
+
./spec/models/snf_core/store_inventory_spec.rb[1:4] | passed | 0.01767 seconds |
|
115
|
+
./spec/models/snf_core/store_inventory_spec.rb[1:5] | passed | 0.01481 seconds |
|
116
|
+
./spec/models/snf_core/store_inventory_spec.rb[1:6] | passed | 0.01552 seconds |
|
117
|
+
./spec/models/snf_core/store_inventory_spec.rb[1:7:1] | passed | 0.01581 seconds |
|
118
|
+
./spec/models/snf_core/store_spec.rb[1:1] | passed | 0.01234 seconds |
|
119
|
+
./spec/models/snf_core/store_spec.rb[1:2] | passed | 0.02275 seconds |
|
120
|
+
./spec/models/snf_core/store_spec.rb[1:3] | passed | 0.01161 seconds |
|
121
|
+
./spec/models/snf_core/store_spec.rb[1:4] | passed | 0.03176 seconds |
|
122
|
+
./spec/models/snf_core/store_spec.rb[1:5] | passed | 0.01362 seconds |
|
123
|
+
./spec/models/snf_core/user_role_spec.rb[1:1] | passed | 0.0087 seconds |
|
124
|
+
./spec/models/snf_core/user_role_spec.rb[1:2] | passed | 0.00824 seconds |
|
125
|
+
./spec/models/snf_core/user_role_spec.rb[1:3] | passed | 0.00895 seconds |
|
126
|
+
./spec/models/snf_core/user_spec.rb[1:1] | passed | 0.00674 seconds |
|
127
|
+
./spec/models/snf_core/user_spec.rb[1:2] | passed | 0.00844 seconds |
|
128
|
+
./spec/models/snf_core/user_spec.rb[1:3] | passed | 0.01008 seconds |
|
129
|
+
./spec/models/snf_core/user_spec.rb[1:4] | passed | 0.00963 seconds |
|
130
|
+
./spec/models/snf_core/user_spec.rb[1:5] | passed | 0.00664 seconds |
|
131
|
+
./spec/models/snf_core/user_spec.rb[1:6] | passed | 0.00746 seconds |
|
132
|
+
./spec/models/snf_core/user_spec.rb[1:7] | passed | 0.00979 seconds |
|
133
|
+
./spec/models/snf_core/user_spec.rb[1:8] | passed | 0.00969 seconds |
|
134
|
+
./spec/models/snf_core/user_spec.rb[1:9] | passed | 0.00872 seconds |
|
135
|
+
./spec/models/snf_core/user_spec.rb[1:10] | passed | 0.0072 seconds |
|
136
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:1] | passed | 0.01162 seconds |
|
137
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:2] | passed | 0.00919 seconds |
|
138
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:3] | passed | 0.0112 seconds |
|
139
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:4] | passed | 0.01136 seconds |
|
140
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:5] | passed | 0.01226 seconds |
|
141
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:6] | passed | 0.01004 seconds |
|
142
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:7] | passed | 0.00974 seconds |
|
143
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:8] | passed | 0.0106 seconds |
|
144
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:9] | passed | 0.02676 seconds |
|
145
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:10] | passed | 0.00974 seconds |
|
146
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:11] | passed | 0.01007 seconds |
|
147
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:12] | passed | 0.01405 seconds |
|
148
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:13] | passed | 0.01034 seconds |
|
149
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:14] | passed | 0.01046 seconds |
|
150
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:15:1] | passed | 0.00604 seconds |
|
151
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:15:2] | passed | 0.00416 seconds |
|
152
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:15:3] | passed | 0.00432 seconds |
|
153
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:15:4] | passed | 0.00476 seconds |
|
154
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:15:5] | passed | 0.0115 seconds |
|
155
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:15:6] | passed | 0.00384 seconds |
|
156
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:16:1] | passed | 0.00828 seconds |
|
157
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:16:2] | passed | 0.01364 seconds |
|
158
|
+
./spec/models/snf_core/virtual_account_spec.rb[1:16:3] | passed | 0.01541 seconds |
|
159
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:1] | passed | 0.0183 seconds |
|
160
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:2] | passed | 0.01812 seconds |
|
161
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:3] | passed | 0.03461 seconds |
|
162
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:4] | passed | 0.02092 seconds |
|
163
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:5] | passed | 0.02001 seconds |
|
164
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:6] | passed | 0.01834 seconds |
|
165
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:7] | passed | 0.0186 seconds |
|
166
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:8:1:1] | passed | 0.00387 seconds |
|
167
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:8:1:2] | passed | 0.00161 seconds |
|
168
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:8:1:3] | passed | 0.00195 seconds |
|
169
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:8:1:4] | passed | 0.00891 seconds |
|
170
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:8:2:1] | passed | 0.01071 seconds |
|
171
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:8:2:2] | passed | 0.01199 seconds |
|
172
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:9:1] | passed | 0.01798 seconds |
|
173
|
+
./spec/models/snf_core/virtual_account_transaction_spec.rb[1:10:1] | passed | 0.01718 seconds |
|
174
|
+
./spec/models/snf_core/wallet_spec.rb[1:1] | passed | 0.00908 seconds |
|
175
|
+
./spec/models/snf_core/wallet_spec.rb[1:2] | passed | 0.06784 seconds |
|
176
|
+
./spec/models/snf_core/wallet_spec.rb[1:3] | passed | 0.00934 seconds |
|
177
|
+
./spec/models/snf_core/wallet_spec.rb[1:4] | passed | 0.01063 seconds |
|
178
|
+
./spec/models/snf_core/wallet_spec.rb[1:5] | passed | 0.01134 seconds |
|
179
|
+
./spec/models/snf_core/wallet_spec.rb[1:6:1] | passed | 0.00936 seconds |
|
180
|
+
./spec/models/snf_core/wallet_spec.rb[1:6:2] | passed | 0.01703 seconds |
|
181
|
+
./spec/requests/snf_core/auth_spec.rb[1:1:1:1] | passed | 0.01217 seconds |
|
182
|
+
./spec/requests/snf_core/auth_spec.rb[1:1:2:1] | passed | 0.01576 seconds |
|
183
|
+
./spec/requests/snf_core/auth_spec.rb[1:1:2:2] | passed | 0.01078 seconds |
|
184
|
+
./spec/requests/snf_core/auth_spec.rb[1:1:2:3] | passed | 0.01098 seconds |
|
185
|
+
./spec/requests/snf_core/auth_spec.rb[1:2:1:1] | passed | 0.0021 seconds |
|
186
|
+
./spec/requests/snf_core/auth_spec.rb[1:3:1:1] | passed | 0.01356 seconds |
|
187
|
+
./spec/requests/snf_core/auth_spec.rb[1:3:2:1] | passed | 0.00886 seconds |
|
188
|
+
./spec/requests/snf_core/auth_spec.rb[1:4:1:1] | passed | 0.02754 seconds |
|
189
|
+
./spec/requests/snf_core/auth_spec.rb[1:4:2:1] | passed | 0.00999 seconds |
|
190
|
+
./spec/requests/snf_core/auth_spec.rb[1:5:1:1] | passed | 0.93234 seconds |
|
191
|
+
./spec/requests/snf_core/auth_spec.rb[1:5:2:1] | passed | 0.00958 seconds |
|
192
|
+
./spec/sample_spec.rb[1:1] | passed | 0.00071 seconds |
|
@@ -0,0 +1,27 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :account_transfer, class: 'SnfCore::AccountTransfer' do
|
3
|
+
source_account { association :user }
|
4
|
+
destination_account { association :user }
|
5
|
+
user { association :user }
|
6
|
+
amount { Faker::Number.decimal(l_digits: 3, r_digits: 2) }
|
7
|
+
reference_number { SecureRandom.hex(8).upcase }
|
8
|
+
status { :initiated }
|
9
|
+
transfer_type { :virtual_to_cbs }
|
10
|
+
description { Faker::Lorem.word }
|
11
|
+
failure_reason { nil }
|
12
|
+
completed_at { nil }
|
13
|
+
reversal_transfer_id { nil }
|
14
|
+
cbs_response_data { {} }
|
15
|
+
|
16
|
+
trait :virtual_to_virtual do
|
17
|
+
transfer_type { :virtual_to_virtual }
|
18
|
+
source_account { association :virtual_account }
|
19
|
+
destination_account { association :virtual_account }
|
20
|
+
end
|
21
|
+
|
22
|
+
trait :failed do
|
23
|
+
status { :failed }
|
24
|
+
failure_reason { 'Insufficient funds' }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :item_request, class: "SnfCore::ItemRequest" do
|
3
|
+
user
|
4
|
+
product
|
5
|
+
quantity { Faker::Number.between(from: 1, to: 10) }
|
6
|
+
requested_delivery_date { Faker::Date.forward(days: 14) }
|
7
|
+
notes { Faker::Lorem.paragraph }
|
8
|
+
status { :pending }
|
9
|
+
|
10
|
+
trait :approved do
|
11
|
+
status { :approved }
|
12
|
+
end
|
13
|
+
|
14
|
+
trait :rejected do
|
15
|
+
status { :rejected }
|
16
|
+
end
|
17
|
+
|
18
|
+
trait :fulfilled do
|
19
|
+
status { :fulfilled }
|
20
|
+
end
|
21
|
+
|
22
|
+
trait :cancelled do
|
23
|
+
status { :cancelled }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -3,10 +3,19 @@ FactoryBot.define do
|
|
3
3
|
first_name { Faker::Name.first_name }
|
4
4
|
middle_name { Faker::Name.middle_name }
|
5
5
|
last_name { Faker::Name.last_name }
|
6
|
-
|
6
|
+
password { Faker::Internet.password }
|
7
7
|
password_changed { false }
|
8
8
|
reset_password_token { Faker::Internet.password }
|
9
9
|
email { Faker::Internet.email }
|
10
10
|
phone_number { Faker::Alphanumeric.alpha(number: 10) }
|
11
|
+
kyc_status { :pending }
|
12
|
+
nationality { Faker::Address.country }
|
13
|
+
occupation { Faker::Job.title }
|
14
|
+
source_of_funds { Faker::Lorem.word }
|
15
|
+
gender { "male" }
|
16
|
+
date_of_birth { Date.today }
|
17
|
+
verified_by_id { nil }
|
18
|
+
verified_at { DateTime.now }
|
19
|
+
address
|
11
20
|
end
|
12
21
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :virtual_account_transaction, class: "SnfCore::VirtualAccountTransaction" do
|
3
|
+
association :from_account, factory: :virtual_account
|
4
|
+
association :to_account, factory: :virtual_account
|
5
|
+
amount { 100 }
|
6
|
+
transaction_type { :transfer }
|
7
|
+
status { :pending }
|
8
|
+
reference_number { "TXN-#{Time.current.strftime('%Y%m%d')}-#{SecureRandom.hex(4).upcase}" }
|
9
|
+
description { Faker::Lorem.sentence }
|
10
|
+
|
11
|
+
trait :deposit do
|
12
|
+
from_account { nil }
|
13
|
+
transaction_type { :deposit }
|
14
|
+
end
|
15
|
+
|
16
|
+
trait :withdrawal do
|
17
|
+
to_account { nil }
|
18
|
+
transaction_type { :withdrawal }
|
19
|
+
end
|
20
|
+
|
21
|
+
trait :completed do
|
22
|
+
status { :completed }
|
23
|
+
end
|
24
|
+
|
25
|
+
trait :failed do
|
26
|
+
status { :failed }
|
27
|
+
end
|
28
|
+
|
29
|
+
trait :reversed do
|
30
|
+
status { :reversed }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :virtual_account, class: "SnfCore::VirtualAccount" do
|
3
|
+
user
|
4
|
+
branch_code { "001" }
|
5
|
+
product_scheme { "1" }
|
6
|
+
voucher_type { "0" }
|
7
|
+
balance { 1000 }
|
8
|
+
interest_rate { 0.09 }
|
9
|
+
interest_type { :conventional }
|
10
|
+
active { true }
|
11
|
+
cbs_account_number { "CBS#{SecureRandom.hex(8)}" }
|
12
|
+
end
|
13
|
+
|
14
|
+
trait :interest_free do
|
15
|
+
interest_type { :interest_free }
|
16
|
+
interest_rate { 0.0 }
|
17
|
+
end
|
18
|
+
|
19
|
+
trait :preferential do
|
20
|
+
interest_type { :preferential }
|
21
|
+
interest_rate { 0.15 }
|
22
|
+
end
|
23
|
+
|
24
|
+
trait :custom do
|
25
|
+
interest_type { :custom }
|
26
|
+
interest_rate { 0.12 }
|
27
|
+
end
|
28
|
+
|
29
|
+
trait :inactive do
|
30
|
+
active { false }
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module SnfCore
|
4
|
+
RSpec.describe AccountTransfer, type: :model do
|
5
|
+
attributes = [
|
6
|
+
{ amount: %i[presence numericality] },
|
7
|
+
{ reference_number: %i[presence uniqueness] },
|
8
|
+
{ status: [ :presence ] },
|
9
|
+
{ transfer_type: [ :presence ] },
|
10
|
+
{ source_account: [ :belong_to ] },
|
11
|
+
{ destination_account: [ :belong_to ] },
|
12
|
+
{ user: [ :belong_to ] }
|
13
|
+
]
|
14
|
+
|
15
|
+
include_examples("model_shared_spec", :account_transfer, attributes)
|
16
|
+
|
17
|
+
describe "enums" do
|
18
|
+
it {
|
19
|
+
should define_enum_for(:status)
|
20
|
+
.with_values(initiated: 0, pending: 1, processing: 2, completed: 3, failed: 4, cancelled: 5, reversed: 6)
|
21
|
+
}
|
22
|
+
|
23
|
+
it {
|
24
|
+
should define_enum_for(:transfer_type)
|
25
|
+
.with_values(virtual_to_cbs: 0, cbs_to_virtual: 1, virtual_to_virtual: 2)
|
26
|
+
}
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
module SnfCore
|
4
|
+
RSpec.describe ItemRequest, type: :model do
|
5
|
+
attributes = [
|
6
|
+
{ user: :belong_to },
|
7
|
+
{ product: :belong_to },
|
8
|
+
{ quantity: [:presence, :numericality] },
|
9
|
+
{ requested_delivery_date: :presence },
|
10
|
+
{ status: :presence }
|
11
|
+
]
|
12
|
+
include_examples("model_shared_spec", :item_request, attributes)
|
13
|
+
|
14
|
+
describe 'validations' do
|
15
|
+
it 'validates quantity is greater than 0' do
|
16
|
+
item_request = build(:item_request, quantity: 0)
|
17
|
+
expect(item_request).not_to be_valid
|
18
|
+
expect(item_request.errors[:quantity]).to include('must be greater than 0')
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'validates requested_delivery_date is not in the past' do
|
22
|
+
item_request = build(:item_request, requested_delivery_date: Date.yesterday)
|
23
|
+
expect(item_request).not_to be_valid
|
24
|
+
expect(item_request.errors[:requested_delivery_date]).to include("can't be in the past")
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
describe 'status management' do
|
29
|
+
let(:request) { create(:item_request) }
|
30
|
+
|
31
|
+
it 'starts with pending status' do
|
32
|
+
expect(request.status).to eq('pending')
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'allows valid status transitions' do
|
36
|
+
valid_statuses = [:pending, :approved, :rejected, :fulfilled, :cancelled]
|
37
|
+
valid_statuses.each do |status|
|
38
|
+
request.status = status
|
39
|
+
expect(request).to be_valid
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -6,17 +6,14 @@ module SnfCore
|
|
6
6
|
{ first_name: :presence },
|
7
7
|
{ middle_name: :presence },
|
8
8
|
{ last_name: :presence },
|
9
|
+
{ address: :belong_to },
|
10
|
+
{ date_of_birth: :presence },
|
11
|
+
{ nationality: :presence },
|
9
12
|
{ phone_number: %i[presence uniqueness] }
|
10
13
|
]
|
11
14
|
include_examples("model_shared_spec", :user, attributes)
|
12
15
|
|
13
|
-
|
14
|
-
|
15
|
-
user = create(:user)
|
16
|
-
expect(user.wallet).to be_present
|
17
|
-
expect(user.wallet.balance).to eq(0.0)
|
18
|
-
expect(user.wallet.is_active).to be_truthy
|
19
|
-
end
|
20
|
-
end
|
16
|
+
it { is_expected.to belong_to(:verified_by).class_name('User').optional }
|
17
|
+
|
21
18
|
end
|
22
19
|
end
|