@ -7,20 +7,20 @@ var fs = require('fs');
console . error ( 'load test-module-loading.js' ) ;
// assert that this is the main module.
assert . e qual( require . main . id , '.' , 'main module should have id of \'.\'' ) ;
assert . e qual( require . main , module , 'require.main should === module' ) ;
assert . e qual( process . mainModule , module ,
'process.mainModule should === module' ) ;
assert . strictE qual( require . main . id , '.' , 'main module should have id of \'.\'' ) ;
assert . strictE qual( require . main , module , 'require.main should === module' ) ;
assert . strictE qual( process . mainModule , module ,
'process.mainModule should === module' ) ;
// assert that it's *not* the main module in the required module.
require ( '../fixtures/not-main-module.js' ) ;
// require a file with a request that includes the extension
var a_js = require ( '../fixtures/a.js' ) ;
assert . e qual( 42 , a_js . number ) ;
assert . strictE qual( 42 , a_js . number ) ;
// require a file without any extensions
var foo_no_ext = require ( '../fixtures/foo' ) ;
assert . e qual( 'ok' , foo_no_ext . foo ) ;
assert . strictE qual( 'ok' , foo_no_ext . foo ) ;
var a = require ( '../fixtures/a' ) ;
var c = require ( '../fixtures/b/c' ) ;
@ -31,54 +31,54 @@ var d3 = require(path.join(__dirname, '../fixtures/b/d'));
// Relative
var d4 = require ( '../fixtures/b/d' ) ;
assert . e qual( false , false , 'testing the test program.' ) ;
assert . strictE qual( false , false , 'testing the test program.' ) ;
assert . ok ( a . A instanceof Function ) ;
assert . e qual( 'A' , a . A ( ) ) ;
assert . strictE qual( 'A' , a . A ( ) ) ;
assert . ok ( a . C instanceof Function ) ;
assert . e qual( 'C' , a . C ( ) ) ;
assert . strictE qual( 'C' , a . C ( ) ) ;
assert . ok ( a . D instanceof Function ) ;
assert . e qual( 'D' , a . D ( ) ) ;
assert . strictE qual( 'D' , a . D ( ) ) ;
assert . ok ( d . D instanceof Function ) ;
assert . e qual( 'D' , d . D ( ) ) ;
assert . strictE qual( 'D' , d . D ( ) ) ;
assert . ok ( d2 . D instanceof Function ) ;
assert . e qual( 'D' , d2 . D ( ) ) ;
assert . strictE qual( 'D' , d2 . D ( ) ) ;
assert . ok ( d3 . D instanceof Function ) ;
assert . e qual( 'D' , d3 . D ( ) ) ;
assert . strictE qual( 'D' , d3 . D ( ) ) ;
assert . ok ( d4 . D instanceof Function ) ;
assert . e qual( 'D' , d4 . D ( ) ) ;
assert . strictE qual( 'D' , d4 . D ( ) ) ;
assert . ok ( ( new a . SomeClass ( ) ) instanceof c . SomeClass ) ;
console . error ( 'test index.js modules ids and relative loading' ) ;
const one = require ( '../fixtures/nested-index/one' ) ;
const two = require ( '../fixtures/nested-index/two' ) ;
assert . notEqual ( one . hello , two . hello ) ;
assert . notStrict Equal ( one . hello , two . hello ) ;
console . error ( 'test index.js in a folder with a trailing slash' ) ;
const three = require ( '../fixtures/nested-index/three' ) ;
const threeFolder = require ( '../fixtures/nested-index/three/' ) ;
const threeIndex = require ( '../fixtures/nested-index/three/index.js' ) ;
assert . e qual( threeFolder , threeIndex ) ;
assert . notEqual ( threeFolder , three ) ;
assert . strictE qual( threeFolder , threeIndex ) ;
assert . notStrict Equal ( threeFolder , three ) ;
console . error ( 'test package.json require() loading' ) ;
assert . e qual( require ( '../fixtures/packages/main' ) . ok , 'ok' ,
'Failed loading package' ) ;
assert . e qual( require ( '../fixtures/packages/main-index' ) . ok , 'ok' ,
'Failed loading package with index.js in main subdir' ) ;
assert . strictE qual( require ( '../fixtures/packages/main' ) . ok , 'ok' ,
'Failed loading package' ) ;
assert . strictE qual( require ( '../fixtures/packages/main-index' ) . ok , 'ok' ,
'Failed loading package with index.js in main subdir' ) ;
console . error ( 'test cycles containing a .. path' ) ;
const root = require ( '../fixtures/cycles/root' ) ;
const foo = require ( '../fixtures/cycles/folder/foo' ) ;
assert . e qual( root . foo , foo ) ;
assert . e qual( root . sayHello ( ) , root . hello ) ;
assert . strictE qual( root . foo , foo ) ;
assert . strictE qual( root . sayHello ( ) , root . hello ) ;
console . error ( 'test node_modules folders' ) ;
// asserts are in the fixtures files themselves,
@ -97,23 +97,24 @@ try {
require ( '../fixtures/throws_error' ) ;
} catch ( e ) {
errorThrown = true ;
assert . e qual( 'blah' , e . message ) ;
assert . strictE qual( 'blah' , e . message ) ;
}
assert . e qual( require ( 'path' ) . dirname ( __ filename ) , __ dirname ) ;
assert . strictE qual( require ( 'path' ) . dirname ( __ filename ) , __ dirname ) ;
console . error ( 'load custom file types with extensions' ) ;
require . extensions [ '.test' ] = function ( module , filename ) {
var content = fs . readFileSync ( filename ) . toString ( ) ;
assert . e qual( 'this is custom source\n' , content ) ;
assert . strictE qual( 'this is custom source\n' , content ) ;
content = content . replace ( 'this is custom source' ,
'exports.test = \'passed\'' ) ;
module . _ compile ( content , filename ) ;
} ;
assert . e qual( require ( '../fixtures/registerExt' ) . test , 'passed' ) ;
assert . strictE qual( require ( '../fixtures/registerExt' ) . test , 'passed' ) ;
// unknown extension, load as .js
assert . equal ( require ( '../fixtures/registerExt.hello.world' ) . test , 'passed' ) ;
assert . strictEqual ( require ( '../fixtures/registerExt.hello.world' ) . test ,
'passed' ) ;
console . error ( 'load custom file types that return non-strings' ) ;
require . extensions [ '.test' ] = function ( module , filename ) {
@ -122,16 +123,16 @@ require.extensions['.test'] = function(module, filename) {
} ;
} ;
assert . e qual( require ( '../fixtures/registerExt2' ) . custom , 'passed' ) ;
assert . strictE qual( require ( '../fixtures/registerExt2' ) . custom , 'passed' ) ;
assert . e qual( require ( '../fixtures/foo' ) . foo , 'ok' ,
'require module with no extension' ) ;
assert . strictE qual( require ( '../fixtures/foo' ) . foo , 'ok' ,
'require module with no extension' ) ;
// Should not attempt to load a directory
try {
require ( '../fixtures/empty' ) ;
} catch ( err ) {
assert . e qual( err . message , 'Cannot find module \'../fixtures/empty\'' ) ;
assert . strictE qual( err . message , 'Cannot find module \'../fixtures/empty\'' ) ;
}
// Check load order is as expected
@ -143,31 +144,31 @@ const msg = 'Load order incorrect.';
require . extensions [ '.reg' ] = require . extensions [ '.js' ] ;
require . extensions [ '.reg2' ] = require . extensions [ '.js' ] ;
assert . e qual( require ( loadOrder + 'file1' ) . file1 , 'file1' , msg ) ;
assert . e qual( require ( loadOrder + 'file2' ) . file2 , 'file2.js' , msg ) ;
assert . strictE qual( require ( loadOrder + 'file1' ) . file1 , 'file1' , msg ) ;
assert . strictE qual( require ( loadOrder + 'file2' ) . file2 , 'file2.js' , msg ) ;
try {
require ( loadOrder + 'file3' ) ;
} catch ( e ) {
// Not a real .node module, but we know we require'd the right thing.
assert . ok ( e . message . replace ( /\\/g , '/' ) . match ( /file3\.node/ ) ) ;
}
assert . e qual( require ( loadOrder + 'file4' ) . file4 , 'file4.reg' , msg ) ;
assert . e qual( require ( loadOrder + 'file5' ) . file5 , 'file5.reg2' , msg ) ;
assert . e qual( require ( loadOrder + 'file6' ) . file6 , 'file6/index.js' , msg ) ;
assert . strictE qual( require ( loadOrder + 'file4' ) . file4 , 'file4.reg' , msg ) ;
assert . strictE qual( require ( loadOrder + 'file5' ) . file5 , 'file5.reg2' , msg ) ;
assert . strictE qual( require ( loadOrder + 'file6' ) . file6 , 'file6/index.js' , msg ) ;
try {
require ( loadOrder + 'file7' ) ;
} catch ( e ) {
assert . ok ( e . message . replace ( /\\/g , '/' ) . match ( /file7\/index\.node/ ) ) ;
}
assert . e qual( require ( loadOrder + 'file8' ) . file8 , 'file8/index.reg' , msg ) ;
assert . e qual( require ( loadOrder + 'file9' ) . file9 , 'file9/index.reg2' , msg ) ;
assert . strictE qual( require ( loadOrder + 'file8' ) . file8 , 'file8/index.reg' , msg ) ;
assert . strictE qual( require ( loadOrder + 'file9' ) . file9 , 'file9/index.reg2' , msg ) ;
// make sure that module.require() is the same as
// doing require() inside of that module.
var parent = require ( '../fixtures/module-require/parent/' ) ;
var child = require ( '../fixtures/module-require/child/' ) ;
assert . e qual( child . loaded , parent . loaded ) ;
assert . strictE qual( child . loaded , parent . loaded ) ;
// #1357 Loading JSON files with require()
@ -256,29 +257,29 @@ assert.throws(function() {
process . on ( 'exit' , function ( ) {
assert . ok ( a . A instanceof Function ) ;
assert . e qual( 'A done' , a . A ( ) ) ;
assert . strictE qual( 'A done' , a . A ( ) ) ;
assert . ok ( a . C instanceof Function ) ;
assert . e qual( 'C done' , a . C ( ) ) ;
assert . strictE qual( 'C done' , a . C ( ) ) ;
assert . ok ( a . D instanceof Function ) ;
assert . e qual( 'D done' , a . D ( ) ) ;
assert . strictE qual( 'D done' , a . D ( ) ) ;
assert . ok ( d . D instanceof Function ) ;
assert . e qual( 'D done' , d . D ( ) ) ;
assert . strictE qual( 'D done' , d . D ( ) ) ;
assert . ok ( d2 . D instanceof Function ) ;
assert . e qual( 'D done' , d2 . D ( ) ) ;
assert . strictE qual( 'D done' , d2 . D ( ) ) ;
assert . e qual( true , errorThrown ) ;
assert . strictE qual( true , errorThrown ) ;
console . log ( 'exit' ) ;
} ) ;
// #1440 Loading files with a byte order marker.
assert . e qual( 42 , require ( '../fixtures/utf8-bom.js' ) ) ;
assert . e qual( 42 , require ( '../fixtures/utf8-bom.json' ) ) ;
assert . strictE qual( 42 , require ( '../fixtures/utf8-bom.js' ) ) ;
assert . strictE qual( 42 , require ( '../fixtures/utf8-bom.json' ) ) ;
// Error on the first line of a module should
// have the correct line number