@@ -298,10 +298,44 @@ describe('Services', () => {
298298 expect ( result [ 0 ] ( null , 'context' ) ) . to . equal ( 'foo' ) ;
299299 } ) ;
300300
301- it ( 'returns undefined for unknown object-based filter config' , ( ) => {
302- const result = getServiceFilters ( { } , [ { notFound : 'bar' } ] ) ;
301+ context ( 'parameters passed to filters' , ( ) => {
302+ let serviceLoadedFilters ;
303+ let passedDOM ;
304+ let passedContext ;
303305
304- expect ( result ) . to . be . undefined ;
306+ before ( ( ) => {
307+ serviceLoadedFilters = { testParamsFilter : ( dom , params , context ) => ( { dom, params, context } ) } ;
308+ passedDOM = '<div>test</div>' ;
309+ passedContext = { location : 'https://example.com' } ;
310+ } ) ;
311+
312+ const testParameterPassing = params => {
313+ const serviceDeclaredFilters = [ { testParamsFilter : params } ] ;
314+ const [ loadedFilter ] = getServiceFilters ( serviceLoadedFilters , serviceDeclaredFilters ) ;
315+ const filterResult = loadedFilter ( passedDOM , passedContext ) ;
316+
317+ expect ( filterResult . params ) . to . deep . equal ( params ) ;
318+ expect ( filterResult . dom ) . to . equal ( passedDOM ) ;
319+ expect ( filterResult . context ) . to . equal ( passedContext ) ;
320+ } ;
321+
322+ context ( 'as a string' , ( ) => {
323+ it ( 'passes parameters correctly' , ( ) => {
324+ testParameterPassing ( 'param' ) ;
325+ } ) ;
326+ } ) ;
327+
328+ context ( 'as an array' , ( ) => {
329+ it ( 'passes parameters correctly' , ( ) => {
330+ testParameterPassing ( [ 'param1' , 'param2' ] ) ;
331+ } ) ;
332+ } ) ;
333+
334+ context ( 'as an object' , ( ) => {
335+ it ( 'passes parameters correctly' , ( ) => {
336+ testParameterPassing ( { param1 : 'param1' , param2 : 'param2' } ) ;
337+ } ) ;
338+ } ) ;
305339 } ) ;
306340 } ) ;
307341
0 commit comments