Question about jqUnit for non-kettle apps...

Tony Atkins tony at raisingthefloor.org
Fri May 9 11:39:55 EDT 2014


Hi, All:

Just another quick update, I ended up using jqUnit without the fluid test
harness and got it to cleanly spin up a stripped down express instance (no
session handling, only mounting the bit of the API that's being tested).

If anyone is doing something similar and curious, here's the code:

https://github.com/the-t-in-rtf/common-terms-registry/blob/master/express/api/search/tests/search-jqunit.js

Cheers,


Tony


On Fri, May 9, 2014 at 3:16 PM, Tony Atkins <tony at raisingthefloor.org>wrote:

> Hi, All:
>
> To partially answer my own question, if I just start with the node-jqUnit
> documentation <https://github.com/fluid-project/node-jqUnit>, I can do
> what I need as illustrated in this example:
>
> var fluid = require("infusion");
>>
>> var jqUnit = fluid.require("jqUnit");
>>
>> var setup = 0;
>>
>>
>>> console.log("setup");
>>
>> var setup = 1;
>>
>>
>>> jqUnit.module("Search API Tests");
>>
>>
>>> jqUnit.onAllTestsDone.addListener(function() {
>>
>>     var setup = -1;
>>
>>     console.log("teardown");
>>
>> });
>>
>>
>>> jqUnit.test("My test case", function() {
>>
>>         jqUnit.assertEquals("Setup has been run, but shutdown has not.",
>>> setup, 1);
>>
>>     }
>>
>> );
>>
>>
> The setup is done synchronously ahead of time and the teardown is executed
> after all tests are run.  I would still like to know what can be safely
> inserted into the testDef sequence used by the fluid test runner, and how
> to avoid running kettle, but for now I can at least write my tests.
>
> Cheers,
>
>
>
> Tony
>
>
> On Fri, May 9, 2014 at 2:11 PM, Tony Atkins <tony at raisingthefloor.org>wrote:
>
>> Hi, All:
>>
>> I am working on writing tests for things other than Kettle, such as
>> express and couchdb.  I have been using the following URLs as my starting
>> template:
>>
>> https://github.com/GPII/universal/blob/master/tests/all-tests.js
>> https://github.com/GPII/universal/blob/master/tests/DevelopmentTests.js
>>
>> After a quick tour from Antranig, I managed to get to the point where I
>> could run a sanity check (1=1) test, but in doing so I noticed that there
>> are a quite a few apparent unstated assumptions.  You must have certain
>> structures to use the test harness, and the errors returned if you lack
>> these things are not at all intuitive.
>>
>> Setting that aside, the key point is that I have two basic goals that I
>> have not yet been able to achieve:
>>
>> *1.  I do not want to run kettle.*
>>
>> I either want to know how not to run kettle at all, or how to create a
>> custom server.  If you omit the server from your test configuration, the
>> tests won't run at all.  I tried mocking kettle.server and using that
>> instead of kettle, but was unable to get that working either (the errors
>> were similar to those below, about "apply" methods on undefined).
>>
>> *2.  I want to call my own setup and teardown code before and after my
>> tests.*
>>
>> I would like to instantiate a pouchdb instance (for example) and then
>> start express before running my tests, and then tear down both after all
>> tests are run.  I can see that we have passthroughs to some qunit
>> functions, but not their setup and teardown functions.
>>
>> I tried calling my own gpii-registered functions from testDefs.sequence,
>> that seems to expect a function that is derived from a particular prototype
>> that includes an "apply" function:
>>
>> TypeError: Object #<Object> has no method 'apply'
>>
>>     at Object.fluid.invokeGlobalFunction
>>> (/Users/duhrer/Source/rtf/rtf-terms-registry/express/node_modules/infusion/src/framework/core/js/Fluid.js:943:25)
>>
>>
>> I have been unable to find a good example or documentation where anything
>> like this is done, and could use some help.
>>
>> If you'd like to see the code, it's here, and I have left it broken for
>> now:
>>
>> https://github.com/the-t-in-rtf/common-terms-registry
>>
>> Don't worry about the million other things that I swear I am working to
>> clean up.  Just navigate to the "express" directory and run "node
>> tests/all-tests.js" to see the error.
>>
>> Any ideas about what's wrong or (even better) suggestions about a
>> reasonable way to achieve the two goals (not running kettle, passing in
>> setup/teardown functions) would be greatly appreciated.
>>
>> Thanks,
>>
>>
>> Tony
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.idrc.ocad.ca/pipermail/fluid-work/attachments/20140509/63fb6232/attachment.html>


More information about the fluid-work mailing list