import assert from 'assert';
import React from 'react'; // jshint ignore:line
import store from 'misago/services/store';
import { MobileNavbarDropdown } from 'misago/services/mobile-navbar-dropdown';
import * as testUtils from 'misago/utils/test-utils';
var dropdown = null;
class TestComponentA extends React.Component {
render() {
/* jshint ignore:start */
return
This is first test dropdown!
;
/* jshint ignore:end */
}
}
class TestComponentB extends React.Component {
render() {
/* jshint ignore:start */
return
This is second test dropdown!
;
/* jshint ignore:end */
}
}
describe("Dropdown", function() {
beforeEach(function() {
dropdown = new MobileNavbarDropdown();
dropdown.init(document.getElementById('dropdown-mount'));
store.constructor();
store.addReducer('test', function(state={}, action=null) { return {}; }, {}); // jshint ignore:line
store.init();
});
afterEach(function() {
testUtils.unmountComponents();
});
it('shows component', function(done) {
dropdown.show(TestComponentA);
window.setTimeout(function() {
let element = $('#dropdown-mount .dropdown-a');
assert.ok(element.length, "component was rendered");
done();
}, 100);
});
it('shows and cycles component', function(done) {
dropdown.show(TestComponentA);
window.setTimeout(function() {
let element = $('#dropdown-mount .dropdown-a');
assert.ok(element.length, "component was rendered");
dropdown.show(TestComponentB);
}, 100);
window.setTimeout(function() {
let element = $('#dropdown-mount .dropdown-b');
assert.ok(element.length, "component was toggled");
done();
}, 300);
});
});