import assert from 'assert';
import moment from 'moment'; // jshint ignore:line
import React from 'react'; // jshint ignore:line
import ThreadOptions from 'misago/components/threads-list/thread/options'; // jshint ignore:line
import Store from 'misago/services/store';
import * as testUtils from 'misago/utils/test-utils';
/* jshint ignore:start */
const thread = {
id: 123,
category: 3,
title: "Doloremque alias repudiandae magnam facilis eligendi.",
weight: 0,
top_category: 3,
replies: 2,
has_unapproved_posts: false,
started_on: moment("2016-04-17T16:37:42.317994Z"),
last_post: 68707,
last_poster_name: "Amya",
last_poster_url: "/user/amya-1522/",
last_post_on: moment("2016-04-17T16:37:42.364183Z"),
is_read: true,
is_unapproved: false,
is_hidden: false,
is_closed: false,
absolute_url: "/threads/not-implemented-yet-123/",
last_post_url: "/threads/not-implemented-yet-123/last/",
new_post_url: "/threads/not-implemented-yet-123/new/",
subscription: true,
api_url: "/api/threads/123/",
moderation: [true],
acl: {
can_edit: true,
can_reply: true,
can_hide: 2,
can_close: 1,
can_report: 1,
can_see_reports: 1,
can_move: 1,
can_pin: 2,
can_approve: 1
}
};
/* jshint ignore:end */
describe("Threads List Thread Options", function() {
afterEach(function() {
testUtils.unmountComponents();
});
it("renders", function(done) {
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
testUtils.onElement('#test-mount .thread-options', function() {
assert.ok(true, "component renders");
done();
});
});
it("hides selection when thread isnt moderable", function() {
/* jshint ignore:start */
const newThread = Object.assign({}, thread, {
moderation: []
})
testUtils.render();
/* jshint ignore:end */
assert.ok(!$('#test-mount .btn-checkbox').length,
"thread without moderation options is not selectable");
});
it("selects thread", function(done) {
Store._store = {
dispatch: function(action) {
assert.deepEqual(action, {
type: 'SELECT_ITEM',
item: 123
});
done();
}
};
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
testUtils.simulateClick('#test-mount .btn-checkbox');
});
it("deselects thread", function(done) {
Store._store = {
dispatch: function(action) {
assert.deepEqual(action, {
type: 'SELECT_ITEM',
item: 123
});
done();
}
};
/* jshint ignore:start */
testUtils.render();
/* jshint ignore:end */
testUtils.simulateClick('#test-mount .btn-checkbox');
});
});