snf_core 0.2.95 → 0.2.97

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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/snf_core/auth_controller.rb +0 -42
  3. data/app/models/snf_core/quotation.rb +41 -0
  4. data/app/models/snf_core/user.rb +18 -19
  5. data/app/models/snf_core/virtual_account.rb +4 -4
  6. data/app/models/snf_core/virtual_account_transaction.rb +10 -10
  7. data/config/routes.rb +0 -3
  8. data/db/migrate/20250310122954_create_snf_core_virtual_accounts.rb +1 -1
  9. data/db/migrate/20250310143604_create_snf_core_item_requests.rb +5 -5
  10. data/db/migrate/20250312043359_create_snf_core_quotations.rb +14 -0
  11. data/lib/snf_core/version.rb +1 -1
  12. data/spec/dummy/db/schema.rb +14 -1
  13. data/spec/dummy/log/development.log +798 -0
  14. data/spec/dummy/log/test.log +11106 -0
  15. data/spec/dummy/tmp/storage/5m/j8/5mj8ypl6zxx8g3h7vqmu4p2la4pk +0 -0
  16. data/spec/dummy/tmp/storage/dw/75/dw75t7gej4irzb3hcqssl8w5vhde +0 -0
  17. data/spec/dummy/tmp/storage/dz/dq/dzdq3gkuy7tdiue1yqmciu86nzfg +0 -0
  18. data/spec/dummy/tmp/storage/j4/ln/j4lnbjjufbp59yxsdetbqs0cyjia +0 -0
  19. data/spec/dummy/tmp/storage/l8/1u/l81unawd0p9c61x8k6ofq0y227yt +0 -0
  20. data/spec/dummy/tmp/storage/oh/ls/ohlsxs36tio52r2ydrbzez1u0w26 +0 -0
  21. data/spec/dummy/tmp/storage/qq/vt/qqvtf3h8ge74ce67gghth8ivch0g +0 -0
  22. data/spec/dummy/tmp/storage/v5/c9/v5c9opt3yikmy2gwg4ftmde0vyt5 +0 -0
  23. data/spec/dummy/tmp/storage/za/ov/zaov1yasuhakxa5olzoed94khnf8 +0 -0
  24. data/spec/dummy/tmp/storage/zc/d6/zcd6d4lsb12obz7m7r6240qka8xw +0 -0
  25. data/spec/examples.txt +196 -189
  26. data/spec/factories/snf_core/quotations.rb +10 -0
  27. data/spec/models/snf_core/item_request_spec.rb +2 -2
  28. data/spec/models/snf_core/quotation_spec.rb +54 -0
  29. data/spec/models/snf_core/user_spec.rb +18 -19
  30. data/spec/models/snf_core/virtual_account_spec.rb +0 -1
  31. data/spec/models/snf_core/virtual_account_transaction_spec.rb +1 -1
  32. data/spec/requests/snf_core/auth_spec.rb +0 -84
  33. metadata +16 -2
@@ -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.95
4
+ version: 0.2.97
5
5
  platform: ruby
6
6
  authors:
7
7
  - Asrat
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-03-11 00:00:00.000000000 Z
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
@@ -450,6 +452,7 @@ files:
450
452
  - spec/dummy/tmp/storage/5l/n8/5ln8h3958owro1x84wkcgdnu0jqc
451
453
  - spec/dummy/tmp/storage/5m/0k/5m0k5zx08ouqos7rs09bpgmalspu
452
454
  - spec/dummy/tmp/storage/5m/4n/5m4nvbe3vqwrdpy6hujr1oq5nolv
455
+ - spec/dummy/tmp/storage/5m/j8/5mj8ypl6zxx8g3h7vqmu4p2la4pk
453
456
  - spec/dummy/tmp/storage/5n/ys/5nyszrcfj6fl2spwxjn1yea42ax0
454
457
  - spec/dummy/tmp/storage/5o/sq/5osq7rdic48at5pkcoqdpf0ios2p
455
458
  - spec/dummy/tmp/storage/5r/tv/5rtv2agppt9e52eg0oc81svs896e
@@ -556,8 +559,10 @@ files:
556
559
  - spec/dummy/tmp/storage/dq/p8/dqp8o7eqfob92n81thzhj4mmviwf
557
560
  - spec/dummy/tmp/storage/dr/1z/dr1z3xxvya5ywessdrhmk05b2apz
558
561
  - spec/dummy/tmp/storage/dr/6z/dr6z0vwwsxqzw0kfkwl598uciyft
562
+ - spec/dummy/tmp/storage/dw/75/dw75t7gej4irzb3hcqssl8w5vhde
559
563
  - spec/dummy/tmp/storage/dx/iu/dxiu87gi66esp528s27d805z6b1v
560
564
  - spec/dummy/tmp/storage/dz/8f/dz8ftt7idroaj4i1e6dlwnmtuu9y
565
+ - spec/dummy/tmp/storage/dz/dq/dzdq3gkuy7tdiue1yqmciu86nzfg
561
566
  - spec/dummy/tmp/storage/e2/uo/e2uoyhzlaj5538p6rjs37pbl0z9g
562
567
  - spec/dummy/tmp/storage/e6/5h/e65haeyr0sglopfuo5chz55thi9z
563
568
  - spec/dummy/tmp/storage/ef/ih/efihy3gyspz150a8mpmhvj01xr07
@@ -607,6 +612,7 @@ files:
607
612
  - spec/dummy/tmp/storage/iu/p5/iup5sduqqzumtymzw6g75kmtj4kq
608
613
  - spec/dummy/tmp/storage/iw/19/iw191t6h61ig4a68n3rk73vjvldc
609
614
  - spec/dummy/tmp/storage/j0/jz/j0jz8g89xbvv61ou1cj7dztym5k3
615
+ - spec/dummy/tmp/storage/j4/ln/j4lnbjjufbp59yxsdetbqs0cyjia
610
616
  - spec/dummy/tmp/storage/j6/ym/j6ymkvvvhcdf7snmc6cardtsy9nd
611
617
  - spec/dummy/tmp/storage/j7/6x/j76x0oirv7i4t6p3blseuaknp7pw
612
618
  - spec/dummy/tmp/storage/ja/gd/jagd3s4q6qfpo12dhrit2p49dyic
@@ -634,6 +640,7 @@ files:
634
640
  - spec/dummy/tmp/storage/l4/ge/l4gelxdup4epl7lv9x5qyhatk2l6
635
641
  - spec/dummy/tmp/storage/l5/3j/l53jq75i2ywyslq3wl999vl2jmyz
636
642
  - spec/dummy/tmp/storage/l7/kw/l7kwoq4oqz0m8cr0i3y8gdjk7r33
643
+ - spec/dummy/tmp/storage/l8/1u/l81unawd0p9c61x8k6ofq0y227yt
637
644
  - spec/dummy/tmp/storage/la/a6/laa6ye8vmuyl7m1gjpkcx19cdpzq
638
645
  - spec/dummy/tmp/storage/lf/za/lfza3dsbodpk6z7iy09qbpl40frd
639
646
  - spec/dummy/tmp/storage/li/di/lidigrxrlew69ebcfx5ubeb203ck
@@ -678,6 +685,7 @@ files:
678
685
  - spec/dummy/tmp/storage/oc/zy/oczyqb5chp2fvo9kdu62c3y7pl5i
679
686
  - spec/dummy/tmp/storage/oe/bq/oebq593a6bpwkbxpx6segtwyy0jy
680
687
  - spec/dummy/tmp/storage/of/zt/ofzt1knekv9ft8direbw6fiaacvc
688
+ - spec/dummy/tmp/storage/oh/ls/ohlsxs36tio52r2ydrbzez1u0w26
681
689
  - spec/dummy/tmp/storage/ol/u8/olu875ti78gguc82spdkt9z8tpii
682
690
  - spec/dummy/tmp/storage/p5/4w/p54wycc6tln36b54yfsz2zk7hcdt
683
691
  - spec/dummy/tmp/storage/p9/hd/p9hddsr7pgksgl6vuqgtkp1ad7x2
@@ -694,6 +702,7 @@ files:
694
702
  - spec/dummy/tmp/storage/qn/1h/qn1hgmvsrnd8dkn4nvcyvqy3q2sb
695
703
  - spec/dummy/tmp/storage/qo/zx/qozxdnemk1fwxcvhe1j10ys7mxcq
696
704
  - spec/dummy/tmp/storage/qp/hi/qphia48836lod6l2ao5ca6ocd8ws
705
+ - spec/dummy/tmp/storage/qq/vt/qqvtf3h8ge74ce67gghth8ivch0g
697
706
  - spec/dummy/tmp/storage/qs/jk/qsjkqiiarr85uobud0qsnnmpraol
698
707
  - spec/dummy/tmp/storage/qw/7z/qw7zsf91njf7ga6454nrjpvddjn5
699
708
  - spec/dummy/tmp/storage/r6/6f/r66f8sxtwvlk8c1ava46bgua5hn0
@@ -744,6 +753,7 @@ files:
744
753
  - spec/dummy/tmp/storage/ux/te/uxtezp2rqztn4cernmn7477gukxe
745
754
  - spec/dummy/tmp/storage/v1/a2/v1a2h0c0xy9cuejexqy3a8ix794i
746
755
  - spec/dummy/tmp/storage/v4/yi/v4yieu5kcx0jz3ephiptzr46djev
756
+ - spec/dummy/tmp/storage/v5/c9/v5c9opt3yikmy2gwg4ftmde0vyt5
747
757
  - spec/dummy/tmp/storage/v8/cs/v8csqmcgvc4z177g5hfmp7twf6ay
748
758
  - spec/dummy/tmp/storage/va/sc/vascc4h0c7dv7uwwcn2wdvx6qyhy
749
759
  - spec/dummy/tmp/storage/vb/z1/vbz124po6xcx6fbh4nefle8r6of3
@@ -790,7 +800,9 @@ files:
790
800
  - spec/dummy/tmp/storage/z5/qs/z5qs5fq00igr3xv5izgcyhhsdw7y
791
801
  - spec/dummy/tmp/storage/z5/sg/z5sgd1au9gcfkqb3kq82f3yry6a6
792
802
  - spec/dummy/tmp/storage/z7/8n/z78nuzozxx53c7cpp3e4kt3nghaa
803
+ - spec/dummy/tmp/storage/za/ov/zaov1yasuhakxa5olzoed94khnf8
793
804
  - spec/dummy/tmp/storage/zb/ke/zbkeh8j7fx7u3fqu28anb6mso6xz
805
+ - spec/dummy/tmp/storage/zc/d6/zcd6d4lsb12obz7m7r6240qka8xw
794
806
  - spec/dummy/tmp/storage/zc/i3/zci3kt86sywh9q6u7xv7yt38xznu
795
807
  - spec/dummy/tmp/storage/zf/bm/zfbmpgsfvuwwpvsa2i11z5x5usgp
796
808
  - spec/dummy/tmp/storage/zk/3v/zk3vlz1al2rba9wlkzoa6p8wpli0
@@ -809,6 +821,7 @@ files:
809
821
  - spec/factories/snf_core/order_items.rb
810
822
  - spec/factories/snf_core/orders.rb
811
823
  - spec/factories/snf_core/products.rb
824
+ - spec/factories/snf_core/quotations.rb
812
825
  - spec/factories/snf_core/roles.rb
813
826
  - spec/factories/snf_core/store_inventories.rb
814
827
  - spec/factories/snf_core/stores.rb
@@ -831,6 +844,7 @@ files:
831
844
  - spec/models/snf_core/order_item_spec.rb
832
845
  - spec/models/snf_core/order_spec.rb
833
846
  - spec/models/snf_core/product_spec.rb
847
+ - spec/models/snf_core/quotation_spec.rb
834
848
  - spec/models/snf_core/role_spec.rb
835
849
  - spec/models/snf_core/store_inventory_spec.rb
836
850
  - spec/models/snf_core/store_spec.rb