build: Enable qunit/no-early-return,no-negated-ok and enforce
authorEd Sanders <esanders@wikimedia.org>
Tue, 5 Jun 2018 21:18:06 +0000 (22:18 +0100)
committerEd Sanders <esanders@wikimedia.org>
Tue, 5 Jun 2018 21:18:06 +0000 (22:18 +0100)
Change-Id: Ief1911517ae06545f842cbcbfd0cf3e815ac2b5b

tests/qunit/.eslintrc.json
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
tests/qunit/suites/resources/mediawiki.rcfilters/dm.FiltersViewModel.test.js
tests/qunit/suites/resources/mediawiki.rcfilters/dm.SavedQueryItemModel.test.js
tests/qunit/suites/resources/mediawiki.widgets/MediaSearch/mediawiki.widgets.APIResultsQueue.test.js

index d3aea5e..b741204 100644 (file)
@@ -14,6 +14,8 @@
                "operator-linebreak": 0,
                "quote-props": [ "error", "as-needed" ],
                "valid-jsdoc": 0,
+               "qunit/no-early-return": "error",
+               "qunit/no-negated-ok": "error",
                "qunit/require-expect": 0,
                "qunit/resolve-async": 0
        },
index 1d9a829..28799e9 100644 (file)
 
                this.server.respond( function ( request ) {
                        if ( window.FormData ) {
-                               assert.ok( !request.url.match( /action=/ ), 'Request has no query string' );
+                               assert.notOk( request.url.match( /action=/ ), 'Request has no query string' );
                                assert.ok( request.requestBody instanceof FormData, 'Request uses FormData body' );
                        } else {
-                               assert.ok( !request.url.match( /action=test/ ), 'Request has no query string' );
+                               assert.notOk( request.url.match( /action=test/ ), 'Request has no query string' );
                                assert.equal( request.requestBody, 'action=test&format=json', 'Request uses query string body' );
                        }
                        request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
                var api = new mw.Api();
 
                this.server.respond( function ( request ) {
-                       assert.ok( !request.url.match( /foo/ ), 'foo query parameter is not present' );
+                       assert.notOk( request.url.match( /foo/ ), 'foo query parameter is not present' );
                        assert.ok( request.url.match( /bar=true/ ), 'bar query parameter is present with value true' );
                        request.respond( 200, { 'Content-Type': 'application/json' }, '[]' );
                } );
index 2b42b5a..65ef43c 100644 (file)
 
                model.initializeFilters( definition );
 
-               assert.ok(
-                       !model.isHighlightEnabled(),
+               assert.equal(
+                       model.isHighlightEnabled(),
+                       false,
                        'Initially, highlight is disabled.'
                );
 
                model.toggleHighlight( true );
-               assert.ok(
+               assert.equal(
                        model.isHighlightEnabled(),
+                       true,
                        'Highlight is enabled on toggle.'
                );
 
                model.initializeFilters( shortFilterDefinition, null );
 
                model.emptyAllFilters();
-               assert.ok( model.areVisibleFiltersEmpty() );
+               assert.equal( model.areVisibleFiltersEmpty(), true );
 
                model.toggleFiltersSelected( {
                        group3__filter5: true // sticky
                } );
-               assert.ok( model.areVisibleFiltersEmpty() );
+               assert.equal( model.areVisibleFiltersEmpty(), true );
 
                model.toggleFiltersSelected( {
                        group1__filter1: true
                } );
-               assert.notOk( model.areVisibleFiltersEmpty() );
+               assert.equal( model.areVisibleFiltersEmpty(), false );
        } );
 }( mediaWiki, jQuery ) );
index 181e992..ee3be94 100644 (file)
@@ -41,8 +41,9 @@
                        'Item data is retained'
                );
 
-               assert.ok(
-                       !model.isDefault(),
+               assert.equal(
+                       model.isDefault(),
+                       false,
                        'Item default state is retained.'
                );
        } );
                        $.extend( true, {}, itemData )
                );
 
-               assert.ok(
-                       !model.isDefault(),
+               assert.equal(
+                       model.isDefault(),
+                       false,
                        'Default state represented when item initialized with default:false.'
                );
 
                model.toggleDefault( true );
-               assert.ok(
+               assert.equal(
                        model.isDefault(),
+                       true,
                        'Default state toggles to true successfully'
                );
 
                model.toggleDefault( false );
-               assert.ok(
-                       !model.isDefault(),
+               assert.equal(
+                       model.isDefault(),
+                       false,
                        'Default state toggles to false successfully'
                );
 
@@ -81,8 +85,9 @@
                        { default: true }
                );
 
-               assert.ok(
+               assert.equal(
                        model.isDefault(),
+                       true,
                        'Default state represented when item initialized with default:true.'
                );
        } );
index 92970bb..74ffe65 100644 (file)
@@ -116,9 +116,9 @@ QUnit.module( 'mediawiki.widgets.APIResultsQueue' );
                                assert.equal( queue.getQueueSize(), 3, 'Query 1: Remaining queue size.' );
 
                                // Check if sources are depleted
-                               assert.ok( !providers[ 0 ].isDepleted(), 'Query 1: Full provider not depleted.' );
-                               assert.ok( providers[ 1 ].isDepleted(), 'Query 1: Empty provider is depleted.' );
-                               assert.ok( providers[ 2 ].isDepleted(), 'Query 1: Single result provider is depleted.' );
+                               assert.equal( providers[ 0 ].isDepleted(), false, 'Query 1: Full provider not depleted.' );
+                               assert.equal( providers[ 1 ].isDepleted(), true, 'Query 1: Empty provider is depleted.' );
+                               assert.equal( providers[ 2 ].isDepleted(), true, 'Query 1: Single result provider is depleted.' );
 
                                // Ask for more results
                                return queue.get( 10 );
@@ -137,9 +137,9 @@ QUnit.module( 'mediawiki.widgets.APIResultsQueue' );
                                // Change the query
                                queue.setParams( { foo: 'baz' } );
                                // Check if sources are depleted
-                               assert.ok( !providers[ 0 ].isDepleted(), 'Query 2: Full provider not depleted.' );
-                               assert.ok( !providers[ 1 ].isDepleted(), 'Query 2: Empty provider not depleted.' );
-                               assert.ok( !providers[ 2 ].isDepleted(), 'Query 2: Single result provider not depleted.' );
+                               assert.equal( providers[ 0 ].isDepleted(), false, 'Query 2: Full provider not depleted.' );
+                               assert.equal( providers[ 1 ].isDepleted(), false, 'Query 2: Empty provider not depleted.' );
+                               assert.equal( providers[ 2 ].isDepleted(), false, 'Query 2: Single result provider not depleted.' );
 
                                return queue.get( 10 );
                        } )
@@ -148,9 +148,9 @@ QUnit.module( 'mediawiki.widgets.APIResultsQueue' );
                                assert.equal( data2.length, 10, 'Query 2: Results received.' );
                                assert.equal( queue.getQueueSize(), 3, 'Query 2: Remaining queue size.' );
                                // Check if sources are depleted
-                               assert.ok( !providers[ 0 ].isDepleted(), 'Query 2: Full provider not depleted.' );
-                               assert.ok( providers[ 1 ].isDepleted(), 'Query 2: Empty provider is not depleted.' );
-                               assert.ok( providers[ 2 ].isDepleted(), 'Query 2: Single result provider is not depleted.' );
+                               assert.equal( providers[ 0 ].isDepleted(), false, 'Query 2: Full provider not depleted.' );
+                               assert.equal( providers[ 1 ].isDepleted(), true, 'Query 2: Empty provider is not depleted.' );
+                               assert.equal( providers[ 2 ].isDepleted(), true, 'Query 2: Single result provider is not depleted.' );
                        } )
                        // Finish the async test
                        .then( done );
@@ -189,7 +189,7 @@ QUnit.module( 'mediawiki.widgets.APIResultsQueue' );
                biggerQueue.setParams( { foo: 'baz' } );
                biggerQueue.get( 10 )
                        .then( function () {
-                               assert.ok( !completed, 'Provider promises aborted.' );
+                               assert.equal( completed, false, 'Provider promises aborted.' );
                        } )
                        // Finish the async test
                        .then( done );