fatlog
fatlog

Reputation: 1192

Testing Custom Modules with DOH

I'm trying to build some unit tests for an old JS file/module that is out of my control.

The JS module is built using the following pattern...

var myModule = {
    myMethod:function() {
    }
};

I am then trying to build a DOH test harness to test this. I tried the following...

require([
    "doh/runner",
    "../../myModules/myModule.js"
    ], function(doh) {
        console.log(doh);
        console.log(myModule);
    });

The file seems to be getting picked up fine but I can't reference anything in it. "console.log(myModule);" just returns undefined.

Anyone know how I can correctly include an external non dojo module JS file in a DOH test harness?

Thanks

Upvotes: 1

Views: 139

Answers (2)

Bucket
Bucket

Reputation: 7521

You need to declare myModule in the function callback to your require statement:

require([
    "doh/runner",
    "../../myModules/myModule"
], function(doh, myModule) { // <-- include myModule
    console.log(doh);
    console.log(myModule);
});

Just be sure that myModule.js returns your module.

Upvotes: 0

C Snover
C Snover

Reputation: 18766

Other than you shouldn’t be using DOH because it is deprecated (use Intern), there is no reason that you shouldn’t see myModule there. You are using a script address and not a module ID, which isn’t right, and you are using a relative path with a require call, which is also not right, but if either of these things were preventing the loader from finding and loading the script you are trying to load it should be throwing an error that you could see in the console. The only other possibility is you have somehow managed to build a built layer into this myModule script, in which case the entire script ends up wrapped in a closure and so using var foo will no longer define a global variable foo.

Upvotes: 1

Related Questions