mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
139 lines
3.4 KiB
JavaScript
139 lines
3.4 KiB
JavaScript
import addTask from '../../../website/common/script/ops/addTask';
|
|
import {
|
|
generateUser,
|
|
} from '../../helpers/common.helper';
|
|
|
|
describe('shared.ops.addTask', () => {
|
|
let user;
|
|
|
|
beforeEach(() => {
|
|
user = generateUser();
|
|
user.habits = [];
|
|
user.todos = [];
|
|
user.dailys = [];
|
|
user.rewards = [];
|
|
});
|
|
|
|
it('adds an habit', () => {
|
|
const habit = addTask(user, {
|
|
body: {
|
|
type: 'habit',
|
|
text: 'habit',
|
|
down: false,
|
|
},
|
|
});
|
|
|
|
expect(user.tasksOrder.habits).to.eql([
|
|
habit._id,
|
|
]);
|
|
expect(habit._id).to.be.a('string');
|
|
expect(habit.text).to.equal('habit');
|
|
expect(habit.type).to.equal('habit');
|
|
expect(habit.up).to.equal(true);
|
|
expect(habit.down).to.equal(false);
|
|
expect(habit.history).to.eql([]);
|
|
expect(habit.checklist).to.not.exist;
|
|
expect(habit.frequency).to.equal('daily');
|
|
expect(habit.counterUp).to.equal(0);
|
|
expect(habit.counterDown).to.equal(0);
|
|
});
|
|
|
|
it('adds a habit when type is invalid', () => {
|
|
const habit = addTask(user, {
|
|
body: {
|
|
type: 'invalid',
|
|
text: 'habit',
|
|
down: false,
|
|
},
|
|
});
|
|
|
|
expect(user.tasksOrder.habits).to.eql([
|
|
habit._id,
|
|
]);
|
|
expect(habit._id).to.be.a('string');
|
|
expect(habit.text).to.equal('habit');
|
|
expect(habit.type).to.equal('habit');
|
|
expect(habit.up).to.equal(true);
|
|
expect(habit.down).to.equal(false);
|
|
expect(habit.history).to.eql([]);
|
|
expect(habit.checklist).to.not.exist;
|
|
});
|
|
|
|
it('adds a daily', () => {
|
|
const daily = addTask(user, {
|
|
body: {
|
|
type: 'daily',
|
|
text: 'daily',
|
|
},
|
|
});
|
|
|
|
expect(user.tasksOrder.dailys).to.eql([
|
|
daily._id,
|
|
]);
|
|
expect(daily._id).to.be.a('string');
|
|
expect(daily.type).to.equal('daily');
|
|
expect(daily.text).to.equal('daily');
|
|
expect(daily.history).to.eql([]);
|
|
expect(daily.checklist).to.eql([]);
|
|
expect(daily.completed).to.be.false;
|
|
expect(daily.up).to.not.exist;
|
|
});
|
|
|
|
it('adds a todo', () => {
|
|
const todo = addTask(user, {
|
|
body: {
|
|
type: 'todo',
|
|
text: 'todo',
|
|
},
|
|
});
|
|
|
|
expect(user.tasksOrder.todos).to.eql([
|
|
todo._id,
|
|
]);
|
|
expect(todo._id).to.be.a('string');
|
|
expect(todo.type).to.equal('todo');
|
|
expect(todo.text).to.equal('todo');
|
|
expect(todo.checklist).to.eql([]);
|
|
expect(todo.completed).to.be.false;
|
|
expect(todo.up).to.not.exist;
|
|
});
|
|
|
|
it('adds a reward', () => {
|
|
const reward = addTask(user, {
|
|
body: {
|
|
type: 'reward',
|
|
text: 'reward',
|
|
},
|
|
});
|
|
|
|
expect(user.tasksOrder.rewards).to.eql([
|
|
reward._id,
|
|
]);
|
|
expect(reward._id).to.be.a('string');
|
|
expect(reward.type).to.equal('reward');
|
|
expect(reward.text).to.equal('reward');
|
|
expect(reward.value).to.equal(10);
|
|
expect(reward.up).to.not.exist;
|
|
});
|
|
|
|
context('user preferences', () => {
|
|
it('respects newTaskEdit preference', () => {
|
|
user.preferences.newTaskEdit = true;
|
|
expect(addTask(user)._editing).to.be.ok;
|
|
expect(addTask(user)._edit).to.be.ok;
|
|
|
|
user.preferences.newTaskEdit = false;
|
|
expect(addTask(user)._editing).not.be.ok;
|
|
expect(addTask(user)._edit).to.not.be.ok;
|
|
});
|
|
|
|
it('respects advancedCollapsed preference', () => {
|
|
user.preferences.advancedCollapsed = true;
|
|
expect(addTask(user)._advanced).not.be.ok;
|
|
|
|
user.preferences.advancedCollapsed = false;
|
|
expect(addTask(user)._advanced).to.be.ok;
|
|
});
|
|
});
|
|
});
|