require(deps, callback) で呼び出せる事を想定している。pathMapper というオプションを一つだけ持っている。pathMapper はoptionalで、Buster.JSのpathsをAMD用のIDに変換する。pathMapper のデフォルトの動作は、 /test/my-test.js を test/my-test に変換する。(最初の’/’と拡張子を削除する。)/busterjs-shodan/extensions/buster-amd/buster.js
var config = module.exports;
config["buster-amd"] = {
environment: "browser",
rootPath: ".",
sources: ["src/main.js"],
tests: ["test/*test.js"],
libs: ["lib/require.js"],
extensions: [require("buster-amd")],
"buster-amd": {
// pathMapper: function (path) {
// return path.replace(/\.js$/, "").replace(/^\//, "");
// }
}
};
/busterjs-shodan/extensions/buster-amd/lib/require.js
RequireJS(http://requirejs.org/)を利用
/busterjs-shodan/extensions/buster-amd/src/main.js
define([], function() {
return { name: "module" };
});
/busterjs-shodan/extensions/buster-amd/test/amd-test.js
define(["src/main"], function (mod) {
buster.testCase("some test", {
"test that fails":function () {
assert.match(mod, {name:"wrong name"});
},
"test that succeeds":function () {
assert.match(mod, {name:"module"});
}
});
});
buster-amdの内部動作については、
/buster/load-all.js をロードする様に設定する。/buster/load-all.js がロードされたタイミングで require(deps, callback) を返す。本機能は ramp-resources の機能を利用している。
/buster/load-all.js は以下の様なJavaScriptを生成して返している。
require(['test/amd-test'], function(t0) {
console.log('loading');
buster.run();
});