33require 'spec_helper'
44
55RSpec . describe TypedParams ::Formatters do
6- describe '.register' do
7- after { TypedParams ::Formatters . unregister ( :test ) }
6+ after { TypedParams ::Formatters . unregister ( :test ) }
87
8+ describe '.register' do
99 it 'should register format' do
1010 format = TypedParams ::Formatters . register ( :test ,
11- transform : -> k , v { [ k , v ] } ,
11+ transform : -> params { params } ,
1212 )
1313
1414 expect ( TypedParams ::Formatters . formats [ :test ] ) . to eq format
1515 end
1616
1717 it 'should not register a duplicate format' do
1818 format = TypedParams ::Formatters . register ( :test ,
19- transform : -> k , v { [ k , v ] } ,
19+ transform : -> params { params } ,
2020 )
2121
22- expect { TypedParams ::Formatters . register ( :test , transform : -> k , v { [ k , v ] } ) }
22+ expect { TypedParams ::Formatters . register ( :test , transform : -> params { params } ) }
2323 . to raise_error ArgumentError
2424 end
2525 end
2626
2727 describe '.unregister' do
2828 it 'should unregister format' do
29- TypedParams ::Formatters . register ( :test , transform : -> k , v { [ k , v ] } , )
29+ TypedParams ::Formatters . register ( :test , transform : -> params { params } )
3030 TypedParams ::Formatters . unregister ( :test )
3131
3232 expect ( TypedParams ::Formatters . formats [ :test ] ) . to be_nil
4040 expect ( format . format ) . to eq :jsonapi
4141 end
4242 end
43- end
43+
44+ it 'should use format' do
45+ TypedParams ::Formatters . register ( :test ,
46+ transform : -> params { params . deep_transform_keys { _1 . to_s . camelize ( :lower ) . to_sym } } ,
47+ )
48+
49+ schema = TypedParams ::Schema . new ( type : :hash ) do
50+ format :test
51+
52+ param :foo_bar , type : :string
53+ end
54+
55+ params = TypedParams ::Parameterizer . new ( schema :) . call (
56+ value : { foo_bar : 'baz' } ,
57+ )
58+
59+ expect ( params . unwrap ) . to eq ( fooBar : 'baz' )
60+ end
61+ end
0 commit comments