Files
habitica/test/common/libs/taskClasses.test.js
2016-04-09 21:13:16 +00:00

83 lines
2.5 KiB
JavaScript

import taskClasses from '../../../common/script/libs/taskClasses';
describe('taskClasses', () => {
let task = {};
let filters = {};
let result;
describe('a todo task', () => {
beforeEach(() => {
task = { type: 'todo', _editing: false, tags: { a: false } };
});
it('is hidden', () => {
filters = { a: true };
result = taskClasses(task, filters, 0, Number(new Date()), false, true);
expect(result).to.eql('hidden');
});
it('is beingEdited', () => {
task._editing = true;
result = taskClasses(task, filters);
expect(result.split(' ').indexOf('beingEdited')).to.not.eql(-1);
});
it('is completed', () => {
task.completed = true;
result = taskClasses(task, filters);
expect(result.split(' ').indexOf('completed')).to.not.eql(-1);
task.completed = false;
result = taskClasses(task, filters);
expect(result.split(' ').indexOf('completed')).to.eql(-1);
expect(result.split(' ').indexOf('uncompleted')).to.not.eql(-1);
});
});
describe('a daily task', () => {
it('is completed', () => {
task = { type: 'daily' };
result = taskClasses(task);
expect(result.split(' ').indexOf('completed')).to.not.eql(-1);
});
it('is uncompleted'); // this requires stubbing the internal dependency shouldDo in taskClasses
});
describe('a habit', () => {
it('that is wide', () => {
task = { type: 'habit', up: true, down: true };
result = taskClasses(task);
expect(result.split(' ').indexOf('habit-wide')).to.not.eql(-1);
});
it('that is narrow', () => {
task = { type: 'habit' };
result = taskClasses(task);
expect(result.split(' ').indexOf('habit-narrow')).to.not.eql(-1);
});
});
describe('varies based on priority', () => {
it('trivial', () => {
task.priority = 0.1;
result = taskClasses(task);
expect(result.split(' ').indexOf('difficulty-trivial')).to.not.eql(-1);
});
it('hard', () => {
task.priority = 2;
result = taskClasses(task);
expect(result.split(' ').indexOf('difficulty-hard')).to.not.eql(-1);
});
});
describe('varies based on value', () => {
it('color-worst', () => {
task.value = -30;
result = taskClasses(task);
expect(result.split(' ').indexOf('color-worst')).to.not.eql(-1);
});
it('color-neutral', () => {
task.value = 0;
result = taskClasses(task);
expect(result.split(' ').indexOf('color-neutral')).to.not.eql(-1);
});
});
});