burnchart/test/projects.js

209 lines
4.4 KiB
JavaScript

import { assert } from 'chai';
import projects from '../src/js/stores/projectsStore.js';
export default {
'projects - initializes empty': (done) => {
assert.deepEqual(projects.get('list'), []);
done();
},
'projects - sorts on new milestones': (done) => {
projects.set({ 'list': [], 'index': [] });
let project = {
'owner': 'radekstepan',
'name': 'burnchart'
};
let milestone = {
'title': '1.0.0',
'stats': {}
};
projects.push('list', project);
projects.addMilestone(project, milestone);
assert.deepEqual(projects.get('index'), [[0, 0]]);
done();
},
'projects - sort by progress': (done) => {
projects.set({ 'list': [], 'index': [], 'sortBy': 'progress' });
let project = {
'owner': 'radekstepan',
'name': 'burnchart'
};
let milestone1 = {
'title': '1.0.0',
'stats': {
'progress': {
'points': 5
}
}
};
let milestone2 = {
'title': '2.0.0',
'stats': {
'progress': {
'points': 7
}
}
};
projects.push('list', project);
projects.addMilestone(project, milestone1);
projects.addMilestone(project, milestone2);
assert.deepEqual(projects.get('index'), [[0, 1], [0, 0]]);
done();
},
'projects - sort by priority': (done) => {
projects.set({ 'list': [], 'index': [], 'sortBy': 'priority' });
let project = {
'owner': 'radekstepan',
'name': 'burnchart'
};
let milestone1 = {
'title': '1.0.0',
'stats': {
'progress': {
'points': 2,
'time': 1
},
'days': 2
}
};
let milestone2 = {
'title': '2.0.0',
'stats': {
'progress': {
'points': 2,
'time': 1
},
'days': 3
}
};
let milestone3 = {
'title': '3.0.0',
'stats': {
'progress': {
'points': 1,
'time': 2
},
'days': 4
}
};
projects.push('list', project);
projects.addMilestone(project, milestone1);
projects.addMilestone(project, milestone2);
projects.addMilestone(project, milestone3);
assert.deepEqual(projects.get('index'), [[0, 2], [0, 0], [0, 1]]);
done();
},
'projects - sort by priority defaults': (done) => {
projects.set({ 'list': [], 'index': [], 'sortBy': 'priority' });
let project = {
'owner': 'radekstepan',
'name': 'burnchart'
};
let milestone1 = {
'title': '1.0.0',
'stats': {
'progress': {
'points': 3
}
}
};
let milestone2 = {
'title': '2.0.0',
'stats': {
'progress': {
'points': 2
}
}
};
let milestone3 = {
'title': '3.0.0',
'stats': {
'progress': {
'points': 1
}
}
};
projects.push('list', project);
projects.addMilestone(project, milestone1);
projects.addMilestone(project, milestone2);
projects.addMilestone(project, milestone3);
assert.deepEqual(projects.get('index'), [[0, 2], [0, 1], [0, 0]]);
done();
},
'projects - sort by name': (done) => {
projects.set({ 'list': [], 'index': [], 'sortBy': 'name' });
let project = {
'owner': 'radekstepan',
'name': 'burnchart'
};
let milestone1 = {
'title': 'B',
'stats': {}
};
let milestone2 = {
'title': 'A',
'stats': {}
};
projects.push('list', project);
projects.addMilestone(project, milestone1);
projects.addMilestone(project, milestone2);
assert.deepEqual(projects.get('index'), [[0, 1], [0, 0]]);
done();
},
'projects - sort by name semver': (done) => {
projects.set({ 'list': [], 'index': [], 'sortBy': 'name' });
let project = {
'owner': 'radekstepan',
'name': 'burnchart'
};
let milestone1 = {
'title': '1.2.5',
'stats': {}
};
let milestone2 = {
'title': '1.1.x',
'stats': {}
};
let milestone3 = {
'title': '1.1.7',
'stats': {}
};
projects.push('list', project);
projects.addMilestone(project, milestone1);
projects.addMilestone(project, milestone2);
projects.addMilestone(project, milestone3);
assert.deepEqual(projects.get('index'), [[0, 2], [0, 1], [0, 0]]);
done();
}
};