123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- import moment from 'moment';
- import assert from 'assert';
- import { updateAvatar, updateUsername } from 'misago/reducers/users';
- import reducer, { addNameChange, hydrate, append } from 'misago/reducers/username-history';
- describe("Username History Reducer", function() {
- it("hydrates result", function() {
- let timestamp = moment().format();
- let state = reducer([], hydrate([
- {
- id: 1,
- something: 'ok',
- changed_on: timestamp
- }
- ]));
- assert.equal(state[0].changed_on.format(), timestamp,
- "reducer converted changed_on timestamp to moment.js object");
- assert.equal(state[0].something, 'ok', "other keys were unconverted");
- });
- it("appends result", function() {
- let timestamp = moment().format();
- let state = reducer([
- {
- id: 1,
- order: 'first',
- changed_on: timestamp
- }
- ], append([
- {
- id: 2,
- order: 'second',
- changed_on: timestamp
- }
- ]));
- assert.equal(state[0].order, 'first', "original item was kept");
- assert.equal(state[1].order, 'second', "new item was appended");
- });
- it("prepends namechange", function() {
- let user = {
- username: 'Bob'
- };
- let changedBy = {
- id: 123,
- username: 'Weebl',
- };
- let state = reducer([{
- something: 'ok'
- }], addNameChange({username: 'Nopp'}, user, changedBy));
- assert.equal(state[0].new_username, 'Nopp',
- "reducer inserted new username to store");
- assert.equal(state[0].old_username, 'Bob',
- "reducer inserted old username to store");
- assert.equal(state[0].changed_by, changedBy,
- "reducer preserved change author");
- assert.equal(state[0].changed_by_username, 'Weebl',
- "reducer preserved username from change author");
- assert.equal(state[1].something, 'ok', "old entries were pushed down");
- });
- it("updates avatar", function() {
- let state = [
- {
- changed_by: {
- id: 123,
- avatar_hash: 'aabbccdd'
- }
- }
- ];
- assert.deepEqual(reducer(state, updateAvatar({
- id: 123
- }, '11223344')), [
- {
- changed_by: {
- id: 123,
- avatar_hash: '11223344'
- }
- }
- ], "reducer updates change author avatar");
- assert.deepEqual(reducer(state, updateAvatar({
- id: 321
- }, '11223344')), [
- {
- changed_by: {
- id: 123,
- avatar_hash: 'aabbccdd'
- }
- }
- ], "reducer validates change author id");
- });
- it("updates username", function() {
- let state = [
- {
- changed_by: {
- id: 123,
- username: 'Bob',
- slug: 'bob'
- }
- }
- ];
- assert.deepEqual(reducer(state, updateUsername({
- id: 123
- }, 'Weebl', 'weebl')), [
- {
- changed_by: {
- id: 123,
- username: 'Weebl',
- slug: 'weebl'
- }
- }
- ], "reducer updates change author username");
- assert.deepEqual(reducer(state, updateUsername({
- id: 321
- }, 'Weebl', 'weebl')), [
- {
- changed_by: {
- id: 123,
- username: 'Bob',
- slug: 'bob'
- }
- }
- ], "reducer validates change author id");
- });
- });
|