Skip to content

Commit 16c2594

Browse files
author
Michael Lunoe
committed
test(makeDefaultExport): testing makeDefaultExport option
1 parent 50b2d29 commit 16c2594

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

tests/all.js

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ module('loader.js api', {
5454
test('has api', function() {
5555
equal(typeof loader, 'object');
5656
equal(typeof loader.noConflict, 'function');
57+
equal(typeof loader.makeDefaultExport, 'boolean');
5758
equal(typeof require, 'function');
5859
equal(typeof define, 'function');
5960
strictEqual(define.amd, undefined);
@@ -403,6 +404,89 @@ test('deep nested relative import/export', function() {
403404
});
404405
});
405406

407+
test('assigns default when makeDefaultExport option enabled', function() {
408+
equal(loader.makeDefaultExport, true);
409+
410+
var theObject = {};
411+
define('foo', ['require', 'exports', 'module'], function() {
412+
return theObject;
413+
});
414+
ok(('default' in require('foo')));
415+
equal(require('foo'), theObject);
416+
equal(theObject.default, theObject);
417+
418+
var stats = statsForMonitor('loaderjs', tree);
419+
420+
deepEqual(stats, {
421+
findDeps: 1,
422+
define: 1,
423+
exports: 1,
424+
findModule: 2,
425+
modules: 1,
426+
reify: 1,
427+
require: 2,
428+
resolve: 0,
429+
resolveRelative: 0,
430+
pendingQueueLength: 1
431+
});
432+
});
433+
434+
test('doesn\'t assign default when makeDefaultExport option is disabled', function() {
435+
var _loaderMakeDefaultExport = loader.makeDefaultExport;
436+
loader.makeDefaultExport = false;
437+
var theObject = {};
438+
define('foo', ['require', 'exports', 'module'], function() {
439+
return theObject;
440+
});
441+
ok(!('default' in require('foo')));
442+
deepEqual(require('foo'), {});
443+
444+
var stats = statsForMonitor('loaderjs', tree);
445+
446+
deepEqual(stats, {
447+
findDeps: 1,
448+
define: 1,
449+
exports: 1,
450+
findModule: 2,
451+
modules: 1,
452+
reify: 1,
453+
require: 2,
454+
resolve: 0,
455+
resolveRelative: 0,
456+
pendingQueueLength: 1
457+
});
458+
459+
// clean up
460+
loader.makeDefaultExport = _loaderMakeDefaultExport;
461+
});
462+
463+
test('doesn\'t assign default when makeDefaultExport option is enabled and default is already defined', function() {
464+
equal(loader.makeDefaultExport, true);
465+
466+
var theObject = { default: 'bar' };
467+
define('foo', ['require', 'exports', 'module'], function() {
468+
return theObject;
469+
});
470+
ok(('default' in require('foo')));
471+
equal(require('foo').default, 'bar');
472+
deepEqual(require('foo'), { default: 'bar' });
473+
474+
var stats = statsForMonitor('loaderjs', tree);
475+
476+
deepEqual(stats, {
477+
findDeps: 1,
478+
define: 1,
479+
exports: 1,
480+
findModule: 3,
481+
modules: 1,
482+
reify: 1,
483+
require: 3,
484+
resolve: 0,
485+
resolveRelative: 0,
486+
pendingQueueLength: 1
487+
});
488+
});
489+
406490
test('incorrect lookup paths should fail', function() {
407491

408492
define('foo/isolated-container', [], function() {

0 commit comments

Comments
 (0)