@@ -185,28 +185,63 @@ def self.detailed_trace?(q)
185185 check_snapshot ( data , "example-rails-#{ Rails ::VERSION ::MAJOR } -#{ Rails ::VERSION ::MINOR } .json" )
186186 end
187187
188- it "filters params with ActiveSupport " do
188+ it "filters params with Rails.application.config.filter_parameters " do
189189 query_str = 'query getStuff { secretField(cipher: "abcdef") { greeting } }'
190- res = PerfettoSchema . execute ( query_str , validate : false )
190+ res = PerfettoSchema . execute ( query_str )
191191 json = res . context . query . current_trace . write ( file : nil , debug_json : true )
192192 assert trace_includes? ( json , "abcdef" )
193193 refute trace_includes? ( json , "FILTERED" )
194194
195- prev_fp = ActiveSupport . filter_parameters
196- ActiveSupport . filter_parameters = [ "cipher" ]
195+ if Rails . application . present?
196+ prev_fp = Rails . application . config . filter_parameters
197+ Rails . application . config . filter_parameters = [ "ciph" ]
198+ else
199+ Rails . application = OpenStruct . new ( config : OpenStruct . new ( filter_parameters : [ "ciph" ] ) )
200+ end
197201 res = PerfettoSchema . execute ( query_str )
198202 json = res . context . query . current_trace . write ( file : nil , debug_json : true )
199203 refute trace_includes? ( json , "abcdef" )
200- assert trace_includes? ( json , "[FILTERED]" )
204+ assert trace_includes? ( json , "FILTERED" )
205+ ensure
206+ if prev_fp
207+ Rails . application . config . filter_parameters = prev_fp
208+ else
209+ Rails . application = nil
210+ end
211+ end
201212
202- ActiveSupport . filter_parameters = [ "password" ]
203- res = PerfettoSchema . execute ( 'query getStuff { secretField(input: [[{ password: "jklmn" }]]) { greeting } }' )
213+ it "filters params with ActiveSupport" do
214+ query_str = 'query getStuff { secretField(cipher: "abcdef") { greeting } }'
215+ res = PerfettoSchema . execute ( query_str )
204216 json = res . context . query . current_trace . write ( file : nil , debug_json : true )
205- assert trace_includes? ( json , "password" ) , "Name is retained"
206- refute trace_includes? ( json , "jklmn" ) , "Value is removed"
207- assert_includes json , "[FILTERED]"
208- ensure
209- ActiveSupport . filter_parameters = prev_fp
217+ assert trace_includes? ( json , "abcdef" )
218+ refute trace_includes? ( json , "FILTERED" )
219+
220+ query_str = 'query getStuff { secretField(cipher: "abcdef") { greeting } }'
221+ res = PerfettoSchema . execute ( query_str )
222+ json = res . context . query . current_trace . write ( file : nil , debug_json : true )
223+ assert trace_includes? ( json , "abcdef" )
224+ refute trace_includes? ( json , "FILTERED" )
225+
226+ if ActiveSupport . respond_to? ( :filter_parameters= )
227+ begin
228+ prev_fp = ActiveSupport . filter_parameters
229+ ActiveSupport . filter_parameters = [ "cipher" ]
230+ res = PerfettoSchema . execute ( query_str )
231+ json = res . context . query . current_trace . write ( file : nil , debug_json : true )
232+ refute trace_includes? ( json , "abcdef" )
233+ assert trace_includes? ( json , "[FILTERED]" )
234+
235+ ActiveSupport . filter_parameters = [ "password" ]
236+ res = PerfettoSchema . execute ( 'query getStuff { secretField(input: [[{ password: "jklmn" }]]) { greeting } }' )
237+ json = res . context . query . current_trace . write ( file : nil , debug_json : true )
238+ assert trace_includes? ( json , "password" ) , "Name is retained"
239+ refute trace_includes? ( json , "jklmn" ) , "Value is removed"
240+ assert_includes json , "[FILTERED]"
241+ ensure
242+ ActiveSupport . filter_parameters = prev_fp
243+ end
244+ end
210245 end
211246
212247 it "filters params without ActiveSupport" do
0 commit comments