dwayne-test-utils v1.1.0
dwayne-test-utils
Small test plugin for testing Dwayne in node environment (though it works in browser environment as well).
The module exports doc, html, body and head vars (which are
equal to the ones, that Dwayne exports in browser env, and are
generated with a help of jsdom in
node env).
It exports initApp and deferTest functions as well.
API
initApp(block)
The module creates a div container for a test app. The function
returns a function which, when called once, initializes the app and,
when called twice, removes it. Example:
import { initApp } from 'dwayne-test-utils';
import { strictEqual } from 'assert';
import { Block } from 'dwayne';
class App extends Block {}
describe('some test', () => {
let remove;
before(remove = initApp(App));
after(remove);
it('should test something', () => {
// access root block through global.$app
// access container through global.$container
strictEqual(a, b);
});
});test(done, testFn)
The function calls testFn inside try/catch block. If the call
was successful, done is called without arguments, and if it wasn't
it's called with the error argument. Example:
import { test } from 'dwayne-test-utils';
import { strictEqual } from 'assert';
describe('it should test events', () => {
it('should test something inside a callback', (done) => {
action(() => {
test(done, () => {
strictEqual(a, b);
});
});
});
});deferTest(done, testFn, interval)
The function calls testFn in interval milliseconds inside
try/catch block. If the call was successful, done is called
without arguments, and if it wasn't it's called with the error
argument. Example:
import { deferTest } from 'dwayne-test-utils';
import { strictEqual } from 'assert';
describe('it should test events', () => {
it('should handle clicks', (done) => {
deferTest(done, () => {
strictEqual(a, b);
}, 100);
container
.find('div')
.dispatch('click');
});
});