12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- import assert from 'assert';
- import React from 'react'; // jshint ignore:line
- import RegisterButton from 'misago/components/register-button'; // jshint ignore:line
- import misago from 'misago/index';
- import captcha from 'misago/services/captcha';
- import modal from 'misago/services/modal';
- import snackbar from 'misago/services/snackbar';
- import zxcvbn from 'misago/services/zxcvbn';
- import * as testUtils from 'misago/utils/test-utils';
- let snackbarStore = null;
- describe("RegisterButton", function() {
- beforeEach(function() {
- snackbarStore = testUtils.snackbarStoreMock();
- snackbar.init(snackbarStore);
- testUtils.initModal(modal);
- testUtils.contextClear(misago);
- /* jshint ignore:start */
- testUtils.render(<RegisterButton />);
- /* jshint ignore:end */
- });
- afterEach(function() {
- delete window.zxcvbn;
- testUtils.unmountComponents();
- });
- it("renders", function() {
- let element = $('#test-mount button');
- assert.ok(element.length, "component rendered");
- });
- it("alerts about closed registration", function(done) {
- misago._context = {
- SETTINGS: {
- account_activation: 'closed'
- }
- };
- snackbarStore.callback(function(message) {
- assert.deepEqual(message, {
- message: "New registrations are currently disabled.",
- type: 'info'
- }, "valid alert is raised");
- done();
- });
- testUtils.simulateClick('#test-mount button');
- });
- it("opens registration modal", function(done) {
- misago._context = {
- SETTINGS: {
- captcha_type: 'no',
- account_activation: 'none'
- }
- };
- captcha.init(misago, {}, {}, {});
- zxcvbn.init({
- include: function(file) {
- assert.equal(file, 'misago/js/zxcvbn.js', "zxcvbn.js is requested");
- window.setTimeout(function() {
- window.zxcvbn = function() {
- return 0;
- };
- }, 200);
- }
- });
- testUtils.simulateClick('#test-mount button');
- testUtils.onElement('#modal-mount .modal-register', function() {
- let element = $('#modal-mount .modal-register');
- assert.ok(element.length, "registration modal was opened");
- done();
- });
- });
- });
|