1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- import moment from 'moment';
- import assert from 'assert';
- import reducer, { updateAvatar, dehydrate, dehydrateStatus } from 'misago/reducers/users';
- describe("Users Reducer", function() {
- it("dehydrates result", function() {
- let timestamp = moment().format();
- let state = reducer([], dehydrate([
- {
- something: 'ok',
- status: null
- },
- {
- something: 'okie',
- status: {
- last_click: timestamp,
- banned_until: timestamp
- }
- },
- ]));
- assert.equal(state[0].status, null, "reducer left empty status unchanged");
- assert.equal(state[0].something, 'ok', "other keys were unconverted");
- assert.equal(state[1].status.last_click.format(), timestamp,
- "reducer deserialized user's status");
- assert.equal(state[1].something, 'okie', "other keys were unconverted");
- });
- it("updates avatar", function() {
- let state = [
- {
- id: 123,
- status: null,
- avatar_hash: 'aabbccdd'
- }
- ];
- assert.deepEqual(reducer(state, updateAvatar({
- id: 123
- }, '11223344')), [
- {
- id: 123,
- status: null,
- avatar_hash: '11223344'
- }
- ], "reducer updates user avatar");
- assert.deepEqual(reducer(state, updateAvatar({
- id: 321
- }, '11223344')), [
- {
- id: 123,
- status: null,
- avatar_hash: 'aabbccdd'
- }
- ], "reducer validates user id");
- });
- });
- describe("Dehydrate User Status", function() {
- it("dehydrates status", function() {
- let timestamp = moment().format();
- let status = dehydrateStatus({
- some_key: true,
- last_click: timestamp,
- banned_until: null
- });
- assert.equal(status.some_key, true, "non-special key was preserved");
- assert.equal(status.last_click.format(), timestamp,
- "last click key was hydrated");
- assert.equal(status.banned_until, null, "ban date was hydrated");
- assert.equal(dehydrateStatus(null), null, "null state was handled");
- });
- });
|