blob: 912c47b90fc7454a227828e0eebe5a5bef936bc7 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
var document = require('global/document');
var hg = require('mercury');
module.exports = setup;
// Wraps up functioanility for embedding a component in the document and setting
// up some test cleanup to run after t.end() is called.
//
// SEE: http://git.io/vmR3O
function setup(component, callback) {
var div = document.createElement('div');
document.body.appendChild(div);
var state = component.state();
var initial = state();
var remove = hg.app(div, state, render);
return function fn(t) {
t.once('end', function() {
state.set(initial);
document.body.removeChild(div);
remove();
});
callback(t, state);
};
function render(state) {
return hg.partial(component.render, state, state.channels);
}
}