123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- import assert from 'assert';
- import moment from 'moment';
- import reducer, { append, hydrate, patch, read, hydrateThread } from 'misago/reducers/threads';
- describe("Threads Reducer", function() {
- it("hydrates thread", function() {
- let timestamp = moment().format();
- let thread = hydrateThread({
- started_on: timestamp,
- last_post_on: timestamp,
- acl: {}
- });
- assert.equal(thread.started_on.format(), timestamp,
- "thread start date was hydrated");
- assert.equal(thread.last_post_on.format(), timestamp,
- "thread last reply date was hydrated");
- });
- it("hydrates threads list", function() {
- let timestamp = moment().format();
- let threads = reducer([], hydrate([
- {
- id: 1,
- started_on: timestamp,
- last_post_on: timestamp,
- acl: {}
- },
- {
- id: 3,
- started_on: timestamp,
- last_post_on: timestamp,
- acl: {}
- }
- ]));
- assert.equal(threads.length, 2,
- "two threads were hydrated and set as state");
- assert.equal(threads[0].started_on.format(), timestamp,
- "first thread was hydrated");
- assert.equal(threads[1].started_on.format(), timestamp,
- "second thread was hydrated");
- });
- it("appends threads to list", function() {
- let timestamp = moment().format();
- let threads = reducer([
- {
- id: 1,
- started_on: timestamp,
- last_post_on: timestamp,
- last_post: 4,
- acl: {}
- },
- {
- id: 3,
- started_on: timestamp,
- last_post_on: timestamp,
- last_post: 1,
- acl: {}
- }
- ], append([
- {
- id: 1,
- started_on: timestamp,
- last_post_on: timestamp,
- last_post: 5,
- acl: {}
- },
- {
- id: 2,
- started_on: timestamp,
- last_post_on: timestamp,
- last_post: 3,
- acl: {}
- }
- ]));
- assert.equal(threads.length, 3, "one thread was added to state");
- assert.equal(threads[0].id, 1, "first thread wasn't moved");
- assert.equal(threads[0].last_post, 5, "first thread was updated");
- assert.equal(threads[1].id, 2, "new thread was appended as second");
- assert.equal(threads[2].id, 3, "old second thread is now last");
- });
- it("patches thread", function() {
- let timestamp = moment().format();
- let threads = reducer([
- {
- id: 1,
- started_on: timestamp,
- last_post_on: timestamp,
- last_post: 4
- },
- {
- id: 3,
- started_on: timestamp,
- last_post_on: timestamp,
- last_post: 1
- }
- ], patch({id: 3}, {
- id: 3,
- patch: 'yep'
- }));
- assert.equal(threads.length, 2, "state length remained same");
- assert.equal(threads[0].patch, undefined, "first thread wasn't changed");
- assert.equal(threads[1].patch, 'yep', "second thread was patched");
- });
- it("marks threads as read", function() {
- let timestamp = moment().format();
- let threads = reducer([
- {
- id: 1,
- started_on: timestamp,
- last_post_on: timestamp,
- last_post: 4,
- is_read: false
- },
- {
- id: 3,
- started_on: timestamp,
- last_post_on: timestamp,
- last_post: 1,
- is_read: false
- }
- ], read());
- assert.equal(threads.length, 2, "state length remained same");
- assert.ok(threads[0].is_read, "first thread was marked as read");
- assert.ok(threads[1].is_read, "second thread was marked as read");
- });
- });
|