You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.8 KiB
77 lines
1.8 KiB
<!DOCTYPE html> |
|
<html lang="en"> |
|
<head> |
|
<meta charset="utf-8"> |
|
<title>Dojo loader mapping after build test</title> |
|
</head> |
|
<body> |
|
<script> |
|
var dojoConfig = { |
|
async: true, |
|
map: { |
|
'my/replacement/A': { |
|
'my/A': 'my/A' |
|
}, |
|
'*': { |
|
'my/A': 'my/replacement/A' |
|
} |
|
} |
|
}; |
|
</script> |
|
<script src="../../../dojo.js"></script> |
|
<script> |
|
// simulate a built layer, this is added to dojo.js by the builder |
|
require({ |
|
cache: { |
|
'my/replacement/A': function () { |
|
define([ '../A' ], function (A) { |
|
return { it: 'is a replacement module' }; |
|
}); |
|
}, |
|
'my/A': function () { |
|
define([ './B' ], function (B) { |
|
return { it: 'is the original module' }; |
|
}); |
|
}, |
|
'my/B': function () { |
|
define([], function () { |
|
return { it: 'is a module dependency' }; |
|
}); |
|
} |
|
} |
|
}); |
|
// consume pending cache, the following are added at the end of a built dojo.js in a closure |
|
require({ cache: {} }); |
|
!require.async && require(['dojo']); |
|
require.boot && require.apply(null, require.boot); |
|
|
|
require([ 'doh' ], function (doh) { |
|
// begin test: |
|
// moving modules from the pending cache to the module cache should ignore |
|
// any mapping, pathing, or alias rules |
|
|
|
doh.register('star-mapping', [ |
|
{ |
|
name: 'mapping after build', |
|
runTest: function (t) { |
|
var def = new doh.Deferred(); |
|
|
|
t.requireHandle = require.on('error', function (e) { |
|
def.errback(e); |
|
}); |
|
require(['my/A'], def.getTestCallback(function (A) { |
|
t.is('is a replacement module', A.it, 'A should be a replacement module'); |
|
})); |
|
|
|
return def; |
|
}, |
|
tearDown: function (t) { |
|
t.requireHandle.remove(); |
|
} |
|
} |
|
]); |
|
doh.runOnLoad(); |
|
}); |
|
</script> |
|
</body> |
|
</html>
|
|
|