1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-13 17:56:25 +00:00
Files
Boostnote/tests/lib/get-todo-status-test.js
2018-08-18 14:38:07 +01:00

30 lines
1.2 KiB
JavaScript

const test = require('ava')
const { getTodoStatus } = require('browser/lib/getTodoStatus')
// Unit test
test('getTodoStatus should return a correct hash object', t => {
// [input, expected]
const testCases = [
['', { total: 0, completed: 0 }],
['* [ ] a\n', { total: 1, completed: 0 }],
['* [ ] a\n* [x] a\n', { total: 2, completed: 1 }],
['- [ ] a\n', { total: 1, completed: 0 }],
['- [ ] a\n- [x] a\n', { total: 2, completed: 1 }],
['+ [ ] a\n', { total: 1, completed: 0 }],
['+ [ ] a\n+ [x] a\n', { total: 2, completed: 1 }],
['+ [ ] a\n+ [X] a\n', { total: 2, completed: 1 }],
['+ [ ] a\n+ [testx] a\n', { total: 1, completed: 0 }],
['+ [ ] a\n+ [xtest] a\n', { total: 1, completed: 0 }],
['+ [ ] a\n+ foo[x]bar a\n', { total: 1, completed: 0 }],
['+ [ ] a\n+ foo[x] bar a\n', { total: 1, completed: 0 }],
['+ [ ] a\n+ foo [x]bar a\n', { total: 1, completed: 0 }]
]
testCases.forEach(testCase => {
const [input, expected] = testCase
t.is(getTodoStatus(input).total, expected.total, `Test for getTodoStatus() input: ${input} expected: ${expected.total}`)
t.is(getTodoStatus(input).completed, expected.completed, `Test for getTodoStatus() input: ${input} expected: ${expected.completed}`)
})
})