Initial commit
[yaffs-website] / node_modules / are-we-there-yet / test / tracker.js
1 'use strict'
2 var test = require('tap').test
3 var Tracker = require('../index.js').Tracker
4
5 var testEvent = require('./lib/test-event.js')
6
7 var name = 'test'
8
9 test('initialization', function (t) {
10   var simple = new Tracker(name)
11
12   t.is(simple.completed(), 0, 'Nothing todo is 0 completion')
13   t.done()
14 })
15
16 var track
17 var todo = 100
18 test('completion', function (t) {
19   track = new Tracker(name, todo)
20   t.is(track.completed(), 0, 'Nothing done is 0 completion')
21
22   testEvent(track, 'change', afterCompleteWork)
23
24   track.completeWork(todo)
25   t.is(track.completed(), 1, 'completeWork: 100% completed')
26
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')
30     t.done()
31   }
32 })
33
34 test('add more work', function (t) {
35   testEvent(track, 'change', afterAddWork)
36   track.addWork(todo)
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')
41     t.done()
42   }
43 })
44
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')
48   t.done()
49 })
50
51 test('finish is always 100%', function (t) {
52   var finishtest = new Tracker(name, todo)
53   finishtest.completeWork(50)
54   finishtest.finish()
55   t.is(finishtest.completed(), 1, 'finish: Explicitly finishing moves to 100%')
56   t.done()
57 })