X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=tests%2Fqunit%2Fsuites%2Fresources%2Fmediawiki.rcfilters%2Fdm.FiltersViewModel.test.js;h=58e4d29c423539fd9a41da359891499d92160bd3;hp=5212ee9ce62fb5bc2422a68cda5868150c942d63;hb=24ebca2251f94a20acee53e583d65aa7fac2c15d;hpb=bc213a9d46cdaa2f7724b043378656804a791b59 diff --git a/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js b/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js index 5212ee9ce6..58e4d29c42 100644 --- a/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js +++ b/tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js @@ -57,12 +57,39 @@ }, { name: 'group4', type: 'single_option', - default: 'option1', + default: 'option2', filters: [ { name: 'option1', label: 'group4option1-label', description: 'group4option1-desc' }, { name: 'option2', label: 'group4option2-label', description: 'group4option2-desc' }, { name: 'option3', label: 'group4option3-label', description: 'group4option3-desc' } ] + }, { + name: 'group5', + type: 'single_option', + filters: [ + { name: 'option1', label: 'group5option1-label', description: 'group5option1-desc' }, + { name: 'option2', label: 'group5option2-label', description: 'group5option2-desc' }, + { name: 'option3', label: 'group5option3-label', description: 'group5option3-desc' } + ] + }, { + name: 'group6', + type: 'boolean', + isSticky: true, + filters: [ + { name: 'group6option1', label: 'group6option1-label', description: 'group6option1-desc' }, + { name: 'group6option2', label: 'group6option2-label', description: 'group6option2-desc', default: true }, + { name: 'group6option3', label: 'group6option3-label', description: 'group6option3-desc', default: true } + ] + }, { + name: 'group7', + type: 'single_option', + isSticky: true, + default: 'group7option2', + filters: [ + { name: 'group7option1', label: 'group7option1-label', description: 'group7option1-desc' }, + { name: 'group7option2', label: 'group7option2-label', description: 'group7option2-desc' }, + { name: 'group7option3', label: 'group7option3-label', description: 'group7option3-desc' } + ] } ], viewsDefinition = { namespaces: { @@ -90,7 +117,12 @@ filter5: '1', filter6: '0', group3: 'filter8', - group4: 'option1', + group4: 'option2', + group5: 'option1', + group6option1: '0', + group6option2: '1', + group6option3: '1', + group7: 'group7option2', namespace: '' }, baseParamRepresentation = { @@ -101,7 +133,12 @@ filter5: '0', filter6: '0', group3: '', - group4: '', + group4: 'option2', + group5: 'option1', + group6option1: '0', + group6option2: '1', + group6option3: '1', + group7: 'group7option2', namespace: '' }, baseFilterRepresentation = { @@ -114,9 +151,20 @@ group3__filter7: false, group3__filter8: false, group3__filter9: false, + // The 'single_value' type of group can't have empty value; it's either + // the default given or the first item that will get the truthy value group4__option1: false, - group4__option2: false, + group4__option2: true, // Default group4__option3: false, + group5__option1: true, // No default set, first item is default value + group5__option2: false, + group5__option3: false, + group6__group6option1: false, + group6__group6option2: true, + group6__group6option3: true, + group7__group7option1: false, + group7__group7option2: true, + group7__group7option3: false, namespace__0: false, namespace__1: false, namespace__2: false, @@ -133,8 +181,17 @@ group3__filter8: { selected: false, conflicted: false, included: false }, group3__filter9: { selected: false, conflicted: false, included: false }, group4__option1: { selected: false, conflicted: false, included: false }, - group4__option2: { selected: false, conflicted: false, included: false }, + group4__option2: { selected: true, conflicted: false, included: false }, group4__option3: { selected: false, conflicted: false, included: false }, + group5__option1: { selected: true, conflicted: false, included: false }, + group5__option2: { selected: false, conflicted: false, included: false }, + group5__option3: { selected: false, conflicted: false, included: false }, + group6__group6option1: { selected: false, conflicted: false, included: false }, + group6__group6option2: { selected: true, conflicted: false, included: false }, + group6__group6option3: { selected: true, conflicted: false, included: false }, + group7__group7option1: { selected: false, conflicted: false, included: false }, + group7__group7option2: { selected: true, conflicted: false, included: false }, + group7__group7option3: { selected: false, conflicted: false, included: false }, namespace__0: { selected: false, conflicted: false, included: false }, namespace__1: { selected: false, conflicted: false, included: false }, namespace__2: { selected: false, conflicted: false, included: false }, @@ -208,6 +265,20 @@ defaultParameters, 'Default parameters are stored properly per filter and group' ); + + // Change sticky filter + model.toggleFiltersSelected( { + group7__group7option1: true + } ); + + // Make sure defaults have changed + assert.deepEqual( + model.getDefaultParams(), + $.extend( true, {}, defaultParameters, { + group7: 'group7option1' + } ), + 'Default parameters are stored properly per filter and group' + ); } ); QUnit.test( 'Finding matching filters', function ( assert ) { @@ -557,7 +628,7 @@ assert.deepEqual( model.getFiltersFromParameters( {} ), baseFilterRepresentation, - 'Empty parameter query results in an object representing all filters set to false' + 'Empty parameter query results in an object representing all filters set to their base state' ); assert.deepEqual( @@ -705,7 +776,8 @@ assert.deepEqual( model.getSelectedState(), $.extend( {}, baseFilterRepresentation, { - group4__option1: true + group4__option1: true, + group4__option2: false } ), 'A \'single_option\' parameter reflects a single selected value.' );