snf_core 0.2.95 → 0.2.98
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 +0 -42
- data/app/models/snf_core/quotation.rb +41 -0
- data/app/models/snf_core/user.rb +18 -19
- data/app/models/snf_core/virtual_account.rb +4 -4
- data/app/models/snf_core/virtual_account_transaction.rb +10 -10
- data/config/routes.rb +0 -3
- data/db/migrate/20250310122954_create_snf_core_virtual_accounts.rb +1 -1
- data/db/migrate/20250310143604_create_snf_core_item_requests.rb +5 -5
- data/db/migrate/20250312043359_create_snf_core_quotations.rb +14 -0
- data/lib/snf_core/version.rb +1 -1
- data/spec/dummy/db/schema.rb +14 -1
- data/spec/dummy/log/development.log +798 -0
- data/spec/dummy/log/test.log +16434 -0
- data/spec/dummy/tmp/storage/39/fi/39fibqwgi0xq9xbood6b68hlp4af +0 -0
- data/spec/dummy/tmp/storage/5m/j8/5mj8ypl6zxx8g3h7vqmu4p2la4pk +0 -0
- data/spec/dummy/tmp/storage/7u/5y/7u5ymxnw5e2jbr7037m2eth7qdkl +0 -0
- data/spec/dummy/tmp/storage/dw/75/dw75t7gej4irzb3hcqssl8w5vhde +0 -0
- data/spec/dummy/tmp/storage/dz/dq/dzdq3gkuy7tdiue1yqmciu86nzfg +0 -0
- data/spec/dummy/tmp/storage/iz/eu/izeu0nc2gf1beo8nvl7iblxc46oj +0 -0
- data/spec/dummy/tmp/storage/j4/ln/j4lnbjjufbp59yxsdetbqs0cyjia +0 -0
- data/spec/dummy/tmp/storage/l8/1u/l81unawd0p9c61x8k6ofq0y227yt +0 -0
- data/spec/dummy/tmp/storage/oh/ls/ohlsxs36tio52r2ydrbzez1u0w26 +0 -0
- data/spec/dummy/tmp/storage/qq/vt/qqvtf3h8ge74ce67gghth8ivch0g +0 -0
- data/spec/dummy/tmp/storage/uy/sl/uyslcroe2rycfyrrb5bhsfodzg5y +0 -0
- data/spec/dummy/tmp/storage/v5/c9/v5c9opt3yikmy2gwg4ftmde0vyt5 +0 -0
- data/spec/dummy/tmp/storage/za/ov/zaov1yasuhakxa5olzoed94khnf8 +0 -0
- data/spec/dummy/tmp/storage/zc/d6/zcd6d4lsb12obz7m7r6240qka8xw +0 -0
- data/spec/dummy/tmp/storage/zq/ts/zqtsmjmvozdu6y5i5d1n3kb9q0vw +0 -0
- data/spec/examples.txt +196 -189
- data/spec/factories/snf_core/quotations.rb +10 -0
- data/spec/models/snf_core/item_request_spec.rb +2 -2
- data/spec/models/snf_core/quotation_spec.rb +54 -0
- data/spec/models/snf_core/user_spec.rb +18 -19
- data/spec/models/snf_core/virtual_account_spec.rb +0 -1
- data/spec/models/snf_core/virtual_account_transaction_spec.rb +1 -1
- data/spec/requests/snf_core/auth_spec.rb +0 -84
- metadata +21 -2
@@ -41,7 +41,7 @@ module SnfCore
|
|
41
41
|
describe 'balance validation' do
|
42
42
|
it 'validates sufficient balance for transfer' do
|
43
43
|
from_account = create(:virtual_account, balance: 100)
|
44
|
-
transaction = build(:virtual_account_transaction,
|
44
|
+
transaction = build(:virtual_account_transaction,
|
45
45
|
from_account: from_account,
|
46
46
|
amount: 150
|
47
47
|
)
|
@@ -68,90 +68,6 @@ module SnfCore
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
describe "POST /reset_password_request" do
|
72
|
-
context 'with invalid email' do
|
73
|
-
it 'returns error for non-existent user' do
|
74
|
-
post '/snf_core/auth/reset_password_request', params: { auth: { email: 'nonexistent@email.com' } }
|
75
|
-
expect(response).to have_http_status(:unauthorized)
|
76
|
-
expect(json_response[:success]).to be false
|
77
|
-
expect(json_response[:error]).to eq("User doesn't exist")
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
describe "POST /reset_password" do
|
83
|
-
let(:reset_token) { SecureRandom.hex }
|
84
|
-
before { user.update(reset_password_token: reset_token) }
|
85
|
-
|
86
|
-
context 'with valid token' do
|
87
|
-
it 'successfully resets password' do
|
88
|
-
post '/snf_core/auth/reset_password', params: {
|
89
|
-
auth: {
|
90
|
-
reset_password_token: reset_token,
|
91
|
-
password: 'new_password123'
|
92
|
-
}
|
93
|
-
}
|
94
|
-
|
95
|
-
expect(response).to have_http_status(:success)
|
96
|
-
expect(json_response[:success]).to be true
|
97
|
-
expect(user.reload.reset_password_token).to be_nil
|
98
|
-
expect(user.password_changed).to be true
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
context 'with invalid token' do
|
103
|
-
it 'returns error for invalid token' do
|
104
|
-
post '/snf_core/auth/reset_password', params: {
|
105
|
-
auth: {
|
106
|
-
reset_password_token: 'invalid_token',
|
107
|
-
password: 'new_password123'
|
108
|
-
}
|
109
|
-
}
|
110
|
-
|
111
|
-
expect(response).to have_http_status(:unauthorized)
|
112
|
-
expect(json_response[:success]).to be false
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
describe "POST /change_password" do
|
118
|
-
let(:auth_token) { TokenService.new.encode({ user: user.as_json, role: role.name }) }
|
119
|
-
|
120
|
-
before do
|
121
|
-
allow_any_instance_of(ApplicationController).to receive(:current_user).and_return(user)
|
122
|
-
end
|
123
|
-
|
124
|
-
context 'with valid current password' do
|
125
|
-
it 'successfully changes password' do
|
126
|
-
post '/snf_core/auth/change_password', params: {
|
127
|
-
auth: {
|
128
|
-
password: 'password123',
|
129
|
-
new_password: 'new_password123'
|
130
|
-
}
|
131
|
-
}, headers: { 'Authorization': "Bearer #{auth_token}" }
|
132
|
-
|
133
|
-
expect(response).to have_http_status(:success)
|
134
|
-
expect(json_response[:success]).to be true
|
135
|
-
expect(user.reload.password_changed).to be true
|
136
|
-
end
|
137
|
-
end
|
138
|
-
|
139
|
-
context 'with invalid current password' do
|
140
|
-
it 'returns error for wrong current password' do
|
141
|
-
post '/snf_core/auth/change_password', params: {
|
142
|
-
auth: {
|
143
|
-
password: 'wrong_password',
|
144
|
-
new_password: 'new_password123'
|
145
|
-
}
|
146
|
-
}, headers: { 'Authorization': "Bearer #{auth_token}" }
|
147
|
-
|
148
|
-
expect(response).to have_http_status(:success)
|
149
|
-
expect(json_response[:success]).to be false
|
150
|
-
expect(json_response[:error]).to eq('Invalid password')
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|
154
|
-
|
155
71
|
|
156
72
|
describe "POST /signup" do
|
157
73
|
context 'with valid parameters' do
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snf_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.98
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Asrat
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-03-
|
10
|
+
date: 2025-03-12 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: active_model_serializers
|
@@ -303,6 +303,7 @@ files:
|
|
303
303
|
- app/models/snf_core/order.rb
|
304
304
|
- app/models/snf_core/order_item.rb
|
305
305
|
- app/models/snf_core/product.rb
|
306
|
+
- app/models/snf_core/quotation.rb
|
306
307
|
- app/models/snf_core/role.rb
|
307
308
|
- app/models/snf_core/store.rb
|
308
309
|
- app/models/snf_core/store_inventory.rb
|
@@ -339,6 +340,7 @@ files:
|
|
339
340
|
- db/migrate/20250310133249_create_snf_core_virtual_account_transactions.rb
|
340
341
|
- db/migrate/20250310143604_create_snf_core_item_requests.rb
|
341
342
|
- db/migrate/20250311000000_create_snf_core_account_transfers.rb
|
343
|
+
- db/migrate/20250312043359_create_snf_core_quotations.rb
|
342
344
|
- lib/snf_core.rb
|
343
345
|
- lib/snf_core/engine.rb
|
344
346
|
- lib/snf_core/version.rb
|
@@ -422,6 +424,7 @@ files:
|
|
422
424
|
- spec/dummy/tmp/storage/35/ov/35ovg8m7ij4fjqy3v4bh28e5hld2
|
423
425
|
- spec/dummy/tmp/storage/37/x2/37x2up33wqtrua85c089e6ltr49p
|
424
426
|
- spec/dummy/tmp/storage/38/wp/38wpttcqfkmm1sqh4rugrsli6arz
|
427
|
+
- spec/dummy/tmp/storage/39/fi/39fibqwgi0xq9xbood6b68hlp4af
|
425
428
|
- spec/dummy/tmp/storage/3i/8d/3i8dbcb1dk9ri0kumm3th8wo61gc
|
426
429
|
- spec/dummy/tmp/storage/3k/7z/3k7zlcd9fm2jwn99kinxpahrmm4u
|
427
430
|
- spec/dummy/tmp/storage/3o/2a/3o2ahddfby8aqgutow91vo4asm4f
|
@@ -450,6 +453,7 @@ files:
|
|
450
453
|
- spec/dummy/tmp/storage/5l/n8/5ln8h3958owro1x84wkcgdnu0jqc
|
451
454
|
- spec/dummy/tmp/storage/5m/0k/5m0k5zx08ouqos7rs09bpgmalspu
|
452
455
|
- spec/dummy/tmp/storage/5m/4n/5m4nvbe3vqwrdpy6hujr1oq5nolv
|
456
|
+
- spec/dummy/tmp/storage/5m/j8/5mj8ypl6zxx8g3h7vqmu4p2la4pk
|
453
457
|
- spec/dummy/tmp/storage/5n/ys/5nyszrcfj6fl2spwxjn1yea42ax0
|
454
458
|
- spec/dummy/tmp/storage/5o/sq/5osq7rdic48at5pkcoqdpf0ios2p
|
455
459
|
- spec/dummy/tmp/storage/5r/tv/5rtv2agppt9e52eg0oc81svs896e
|
@@ -481,6 +485,7 @@ files:
|
|
481
485
|
- spec/dummy/tmp/storage/78/5u/785ub96ra353qygeubpq4vlifjas
|
482
486
|
- spec/dummy/tmp/storage/7f/uh/7fuhzmriza5m3agsu0l0yovug7xi
|
483
487
|
- spec/dummy/tmp/storage/7g/z0/7gz0olv00p0i3xqdy3f4fa6e73u2
|
488
|
+
- spec/dummy/tmp/storage/7u/5y/7u5ymxnw5e2jbr7037m2eth7qdkl
|
484
489
|
- spec/dummy/tmp/storage/7v/55/7v55c4y5xdiw6qrvbdpmd63v4toz
|
485
490
|
- spec/dummy/tmp/storage/82/zv/82zvnds6te3el62i8vxv8rzkc4ms
|
486
491
|
- spec/dummy/tmp/storage/83/b1/83b1ejivo3bxawg0kv4f1jufwarp
|
@@ -556,8 +561,10 @@ files:
|
|
556
561
|
- spec/dummy/tmp/storage/dq/p8/dqp8o7eqfob92n81thzhj4mmviwf
|
557
562
|
- spec/dummy/tmp/storage/dr/1z/dr1z3xxvya5ywessdrhmk05b2apz
|
558
563
|
- spec/dummy/tmp/storage/dr/6z/dr6z0vwwsxqzw0kfkwl598uciyft
|
564
|
+
- spec/dummy/tmp/storage/dw/75/dw75t7gej4irzb3hcqssl8w5vhde
|
559
565
|
- spec/dummy/tmp/storage/dx/iu/dxiu87gi66esp528s27d805z6b1v
|
560
566
|
- spec/dummy/tmp/storage/dz/8f/dz8ftt7idroaj4i1e6dlwnmtuu9y
|
567
|
+
- spec/dummy/tmp/storage/dz/dq/dzdq3gkuy7tdiue1yqmciu86nzfg
|
561
568
|
- spec/dummy/tmp/storage/e2/uo/e2uoyhzlaj5538p6rjs37pbl0z9g
|
562
569
|
- spec/dummy/tmp/storage/e6/5h/e65haeyr0sglopfuo5chz55thi9z
|
563
570
|
- spec/dummy/tmp/storage/ef/ih/efihy3gyspz150a8mpmhvj01xr07
|
@@ -606,7 +613,9 @@ files:
|
|
606
613
|
- spec/dummy/tmp/storage/ir/zq/irzqn6i8886usqy6bcnsghmr01kg
|
607
614
|
- spec/dummy/tmp/storage/iu/p5/iup5sduqqzumtymzw6g75kmtj4kq
|
608
615
|
- spec/dummy/tmp/storage/iw/19/iw191t6h61ig4a68n3rk73vjvldc
|
616
|
+
- spec/dummy/tmp/storage/iz/eu/izeu0nc2gf1beo8nvl7iblxc46oj
|
609
617
|
- spec/dummy/tmp/storage/j0/jz/j0jz8g89xbvv61ou1cj7dztym5k3
|
618
|
+
- spec/dummy/tmp/storage/j4/ln/j4lnbjjufbp59yxsdetbqs0cyjia
|
610
619
|
- spec/dummy/tmp/storage/j6/ym/j6ymkvvvhcdf7snmc6cardtsy9nd
|
611
620
|
- spec/dummy/tmp/storage/j7/6x/j76x0oirv7i4t6p3blseuaknp7pw
|
612
621
|
- spec/dummy/tmp/storage/ja/gd/jagd3s4q6qfpo12dhrit2p49dyic
|
@@ -634,6 +643,7 @@ files:
|
|
634
643
|
- spec/dummy/tmp/storage/l4/ge/l4gelxdup4epl7lv9x5qyhatk2l6
|
635
644
|
- spec/dummy/tmp/storage/l5/3j/l53jq75i2ywyslq3wl999vl2jmyz
|
636
645
|
- spec/dummy/tmp/storage/l7/kw/l7kwoq4oqz0m8cr0i3y8gdjk7r33
|
646
|
+
- spec/dummy/tmp/storage/l8/1u/l81unawd0p9c61x8k6ofq0y227yt
|
637
647
|
- spec/dummy/tmp/storage/la/a6/laa6ye8vmuyl7m1gjpkcx19cdpzq
|
638
648
|
- spec/dummy/tmp/storage/lf/za/lfza3dsbodpk6z7iy09qbpl40frd
|
639
649
|
- spec/dummy/tmp/storage/li/di/lidigrxrlew69ebcfx5ubeb203ck
|
@@ -678,6 +688,7 @@ files:
|
|
678
688
|
- spec/dummy/tmp/storage/oc/zy/oczyqb5chp2fvo9kdu62c3y7pl5i
|
679
689
|
- spec/dummy/tmp/storage/oe/bq/oebq593a6bpwkbxpx6segtwyy0jy
|
680
690
|
- spec/dummy/tmp/storage/of/zt/ofzt1knekv9ft8direbw6fiaacvc
|
691
|
+
- spec/dummy/tmp/storage/oh/ls/ohlsxs36tio52r2ydrbzez1u0w26
|
681
692
|
- spec/dummy/tmp/storage/ol/u8/olu875ti78gguc82spdkt9z8tpii
|
682
693
|
- spec/dummy/tmp/storage/p5/4w/p54wycc6tln36b54yfsz2zk7hcdt
|
683
694
|
- spec/dummy/tmp/storage/p9/hd/p9hddsr7pgksgl6vuqgtkp1ad7x2
|
@@ -694,6 +705,7 @@ files:
|
|
694
705
|
- spec/dummy/tmp/storage/qn/1h/qn1hgmvsrnd8dkn4nvcyvqy3q2sb
|
695
706
|
- spec/dummy/tmp/storage/qo/zx/qozxdnemk1fwxcvhe1j10ys7mxcq
|
696
707
|
- spec/dummy/tmp/storage/qp/hi/qphia48836lod6l2ao5ca6ocd8ws
|
708
|
+
- spec/dummy/tmp/storage/qq/vt/qqvtf3h8ge74ce67gghth8ivch0g
|
697
709
|
- spec/dummy/tmp/storage/qs/jk/qsjkqiiarr85uobud0qsnnmpraol
|
698
710
|
- spec/dummy/tmp/storage/qw/7z/qw7zsf91njf7ga6454nrjpvddjn5
|
699
711
|
- spec/dummy/tmp/storage/r6/6f/r66f8sxtwvlk8c1ava46bgua5hn0
|
@@ -742,8 +754,10 @@ files:
|
|
742
754
|
- spec/dummy/tmp/storage/uq/jk/uqjkltli1s6vz51g6yu551ze48c1
|
743
755
|
- spec/dummy/tmp/storage/ur/f0/urf0ml010ripl9eks0kitboy5hko
|
744
756
|
- spec/dummy/tmp/storage/ux/te/uxtezp2rqztn4cernmn7477gukxe
|
757
|
+
- spec/dummy/tmp/storage/uy/sl/uyslcroe2rycfyrrb5bhsfodzg5y
|
745
758
|
- spec/dummy/tmp/storage/v1/a2/v1a2h0c0xy9cuejexqy3a8ix794i
|
746
759
|
- spec/dummy/tmp/storage/v4/yi/v4yieu5kcx0jz3ephiptzr46djev
|
760
|
+
- spec/dummy/tmp/storage/v5/c9/v5c9opt3yikmy2gwg4ftmde0vyt5
|
747
761
|
- spec/dummy/tmp/storage/v8/cs/v8csqmcgvc4z177g5hfmp7twf6ay
|
748
762
|
- spec/dummy/tmp/storage/va/sc/vascc4h0c7dv7uwwcn2wdvx6qyhy
|
749
763
|
- spec/dummy/tmp/storage/vb/z1/vbz124po6xcx6fbh4nefle8r6of3
|
@@ -790,11 +804,14 @@ files:
|
|
790
804
|
- spec/dummy/tmp/storage/z5/qs/z5qs5fq00igr3xv5izgcyhhsdw7y
|
791
805
|
- spec/dummy/tmp/storage/z5/sg/z5sgd1au9gcfkqb3kq82f3yry6a6
|
792
806
|
- spec/dummy/tmp/storage/z7/8n/z78nuzozxx53c7cpp3e4kt3nghaa
|
807
|
+
- spec/dummy/tmp/storage/za/ov/zaov1yasuhakxa5olzoed94khnf8
|
793
808
|
- spec/dummy/tmp/storage/zb/ke/zbkeh8j7fx7u3fqu28anb6mso6xz
|
809
|
+
- spec/dummy/tmp/storage/zc/d6/zcd6d4lsb12obz7m7r6240qka8xw
|
794
810
|
- spec/dummy/tmp/storage/zc/i3/zci3kt86sywh9q6u7xv7yt38xznu
|
795
811
|
- spec/dummy/tmp/storage/zf/bm/zfbmpgsfvuwwpvsa2i11z5x5usgp
|
796
812
|
- spec/dummy/tmp/storage/zk/3v/zk3vlz1al2rba9wlkzoa6p8wpli0
|
797
813
|
- spec/dummy/tmp/storage/zk/xs/zkxsr1zywhaydz0cep4eh8mmos46
|
814
|
+
- spec/dummy/tmp/storage/zq/ts/zqtsmjmvozdu6y5i5d1n3kb9q0vw
|
798
815
|
- spec/dummy/tmp/storage/zx/ur/zxuraz59df480azmknqbfeb37ktm
|
799
816
|
- spec/examples.txt
|
800
817
|
- spec/factories/snf_core/account_transfers.rb
|
@@ -809,6 +826,7 @@ files:
|
|
809
826
|
- spec/factories/snf_core/order_items.rb
|
810
827
|
- spec/factories/snf_core/orders.rb
|
811
828
|
- spec/factories/snf_core/products.rb
|
829
|
+
- spec/factories/snf_core/quotations.rb
|
812
830
|
- spec/factories/snf_core/roles.rb
|
813
831
|
- spec/factories/snf_core/store_inventories.rb
|
814
832
|
- spec/factories/snf_core/stores.rb
|
@@ -831,6 +849,7 @@ files:
|
|
831
849
|
- spec/models/snf_core/order_item_spec.rb
|
832
850
|
- spec/models/snf_core/order_spec.rb
|
833
851
|
- spec/models/snf_core/product_spec.rb
|
852
|
+
- spec/models/snf_core/quotation_spec.rb
|
834
853
|
- spec/models/snf_core/role_spec.rb
|
835
854
|
- spec/models/snf_core/store_inventory_spec.rb
|
836
855
|
- spec/models/snf_core/store_spec.rb
|