123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- import assert from 'assert';
- import React from 'react'; // jshint ignore:line
- import store from 'misago/services/store';
- import { Modal } from 'misago/services/modal';
- import * as testUtils from 'misago/utils/test-utils';
- var modal = null;
- class TestModalA extends React.Component {
- render() {
- /* jshint ignore:start */
- return <div className="modal-dialog modal-a">
- <div className="modal-content">
- <div className="modal-header">
- <button type="button" className="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
- <h4 className="modal-title">Modal A</h4>
- </div>
- <div className="modal-body">
- <p>This is first test modal!</p>
- </div>
- <div className="modal-footer">
- <button type="button" className="btn btn-default" data-dismiss="modal">Close</button>
- </div>
- </div>
- </div>;
- /* jshint ignore:end */
- }
- }
- class TestModalB extends React.Component {
- render() {
- /* jshint ignore:start */
- return <div className="modal-dialog modal-b">
- <div className="modal-content">
- <div className="modal-header">
- <button type="button" className="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
- <h4 className="modal-title">Modal B</h4>
- </div>
- <div className="modal-body">
- <p>This is second test modal!</p>
- </div>
- <div className="modal-footer">
- <button type="button" className="btn btn-default" data-dismiss="modal">Close</button>
- </div>
- </div>
- </div>;
- /* jshint ignore:end */
- }
- }
- describe("Modal", function() {
- beforeEach(function() {
- modal = new Modal();
- modal.init(document.getElementById('modal-mount'));
- testUtils.initEmptyStore(store);
- });
- afterEach(function() {
- testUtils.unmountComponents();
- });
- it('shows component', function(done) {
- modal.show(TestModalA);
- window.setTimeout(function() {
- let element = $('#modal-mount .modal-a');
- assert.ok(element.length, "component was rendered");
- done();
- }, 400);
- });
- it('shows and cycles component', function(done) {
- modal.show(TestModalA);
- window.setTimeout(function() {
- let element = $('#modal-mount .modal-a');
- assert.ok(element.length, "component was rendered");
- modal.show(TestModalB);
- window.setTimeout(function() {
- let element = $('#modal-mount .modal-b');
- assert.ok(element.length, "component was toggled");
- done();
- }, 200);
- }, 400);
- });
- it('hides component', function(done) {
- modal.show(TestModalA);
- window.setTimeout(function() {
- let element = $('#modal-mount .modal-a');
- assert.ok(element.length, "component was rendered");
- modal.hide();
- let wait = function() {
- if($('#modal-mount').children().length === 0) {
- assert.ok(true, "modal was emptied");
- done();
- } else {
- window.setTimeout(wait, 100);
- }
- };
- wait();
- }, 400);
- });
- });
|