2 var test = require('tap').test
3 var Tracker = require('../index.js').Tracker
5 var testEvent = require('./lib/test-event.js')
9 test('initialization', function (t) {
10 var simple = new Tracker(name)
12 t.is(simple.completed(), 0, 'Nothing todo is 0 completion')
18 test('completion', function (t) {
19 track = new Tracker(name, todo)
20 t.is(track.completed(), 0, 'Nothing done is 0 completion')
22 testEvent(track, 'change', afterCompleteWork)
24 track.completeWork(todo)
25 t.is(track.completed(), 1, 'completeWork: 100% completed')
27 function afterCompleteWork (er, onChangeName) {
28 t.is(er, null, 'completeWork: on change event fired')
29 t.is(onChangeName, name, 'completeWork: on change emits the correct name')
34 test('add more work', function (t) {
35 testEvent(track, 'change', afterAddWork)
37 t.is(track.completed(), 0.5, 'addWork: 50% completed')
38 function afterAddWork (er, onChangeName) {
39 t.is(er, null, 'addWork: on change event fired')
40 t.is(onChangeName, name, 'addWork: on change emits the correct name')
45 test('complete more work', function (t) {
46 track.completeWork(200)
47 t.is(track.completed(), 1, 'completeWork: Over completion is still only 100% complete')
51 test('finish is always 100%', function (t) {
52 var finishtest = new Tracker(name, todo)
53 finishtest.completeWork(50)
55 t.is(finishtest.completed(), 1, 'finish: Explicitly finishing moves to 100%')