Merge "resourceloader: Reduce severity of unknown page module warning"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 24 Sep 2019 00:56:30 +0000 (00:56 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 24 Sep 2019 00:56:30 +0000 (00:56 +0000)
resources/src/startup/mediawiki.js
tests/qunit/suites/resources/mediawiki/mediawiki.loader.test.js

index 6a6aa3d..f814d89 100644 (file)
                                        try {
                                                sortDependencies( modules[ i ], resolved );
                                        } catch ( err ) {
-                                               // This module is unknown or has unknown dependencies.
-                                               // Undo any incomplete resolutions made and keep going.
+                                               // This module is not currently known, or has invalid dependencies.
+                                               // Most likely due to a cached reference after the module was
+                                               // removed, otherwise made redundant, or omitted from the registry
+                                               // by the ResourceLoader "target" system.
                                                resolved = saved;
-                                               mw.trackError( 'resourceloader.exception', {
-                                                       exception: err,
-                                                       source: 'resolve'
-                                               } );
+                                               mw.log.warn( 'Skipped unresolvable module ' + modules[ i ] );
+                                               if ( modules[ i ] in registry ) {
+                                                       // If the module was known but had unknown or circular dependencies,
+                                                       // also track it as an error.
+                                                       mw.trackError( 'resourceloader.exception', {
+                                                               exception: err,
+                                                               source: 'resolve'
+                                                       } );
+                                               }
                                        }
                                }
                                return resolved;
index 4c6e7c9..59672f4 100644 (file)
 
        QUnit.test( '.load() - Error: Unregistered', function ( assert ) {
                var capture = [];
-               this.sandbox.stub( mw, 'track', function ( topic, data ) {
-                       capture.push( {
-                               topic: topic,
-                               error: data.exception && data.exception.message,
-                               source: data.source
-                       } );
+               this.sandbox.stub( mw.log, 'warn', function ( str ) {
+                       capture.push( str );
                } );
 
                mw.loader.load( 'test.load.unreg' );
-               assert.deepEqual(
-                       [ {
-                               topic: 'resourceloader.exception',
-                               error: 'Unknown module: test.load.unreg',
-                               source: 'resolve'
-                       } ],
-                       capture
-               );
+               assert.deepEqual( capture, [ 'Skipped unresolvable module test.load.unreg' ] );
        } );
 
        // Regression test for T36853