Skip to content

Commit

Permalink
Merge pull request #792 from asmsuechan/add-tests
Browse files Browse the repository at this point in the history
Add tests
  • Loading branch information
asmsuechan authored Aug 12, 2017
2 parents 8f4566b + 46f7dfd commit ab1aa56
Show file tree
Hide file tree
Showing 8 changed files with 119 additions and 5 deletions.
1 change: 1 addition & 0 deletions .boostnoterc.sample
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"amaEnabled": true,
"editor": {
"fontFamily": "Monaco, Consolas",
"fontSize": "14",
Expand Down
8 changes: 4 additions & 4 deletions browser/main/lib/RcParser.js → browser/lib/RcParser.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import path from 'path'
import sander from 'sander'

function parse () {
const BOOSTNOTERC = '.boostnoterc'
const homePath = global.process.env.HOME || global.process.env.USERPROFILE
const boostnotercPath = path.join(homePath, BOOSTNOTERC)
const BOOSTNOTERC = '.boostnoterc'
const homePath = global.process.env.HOME || global.process.env.USERPROFILE
const _boostnotercPath = path.join(homePath, BOOSTNOTERC)

export function parse (boostnotercPath = _boostnotercPath) {
if (!sander.existsSync(boostnotercPath)) return {}
try {
return JSON.parse(sander.readFileSync(boostnotercPath).toString())
Expand Down
2 changes: 1 addition & 1 deletion browser/main/lib/ConfigManager.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import _ from 'lodash'
import RcParser from 'browser/main/lib/RcParser'
import RcParser from 'browser/lib/RcParser'

const OSX = global.process.platform === 'darwin'
const win = global.process.platform === 'win32'
Expand Down
33 changes: 33 additions & 0 deletions tests/lib/boostnoterc/.boostnoterc.all
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"amaEnabled": true,
"editor": {
"fontFamily": "Monaco, Consolas",
"fontSize": "14",
"indentSize": "2",
"indentType": "space",
"keyMap": "vim",
"switchPreview": "BLUR",
"theme": "monokai"
},
"hotkey": {
"toggleFinder": "Cmd + Alt + S",
"toggleMain": "Cmd + Alt + L"
},
"isSideNavFolded": false,
"listStyle": "DEFAULT",
"listWidth": 174,
"navWidth": 200,
"preview": {
"codeBlockTheme": "dracula",
"fontFamily": "Lato",
"fontSize": "14",
"lineNumber": true
},
"sortBy": "UPDATED_AT",
"ui": {
"defaultNote": "ALWAYS_ASK",
"disableDirectWrite": false,
"theme": "default"
},
"zoom": 1
}
12 changes: 12 additions & 0 deletions tests/lib/boostnoterc/.boostnoterc.invalid
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"editor": {
"keyMap": "vim",
"switchPreview": "BLUR",
"theme": "monokai",
},
"hotkey": {
"toggleMain": "Control + L"
},
"listWidth": 135,
"navWidth": 135
}
12 changes: 12 additions & 0 deletions tests/lib/boostnoterc/.boostnoterc.valid
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"editor": {
"keyMap": "vim",
"switchPreview": "BLUR",
"theme": "monokai"
},
"hotkey": {
"toggleMain": "Control + L"
},
"listWidth": 135,
"navWidth": 135
}
23 changes: 23 additions & 0 deletions tests/lib/get-todo-status-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
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 }]
]

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}`)
})
})

33 changes: 33 additions & 0 deletions tests/lib/rc-parser-test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
const test = require('ava')
const path = require('path')
const { parse } = require('browser/lib/RcParser')

// Unit test
test('RcParser should return a json object', t => {
const validJson = { 'editor': { 'keyMap': 'vim', 'switchPreview': 'BLUR', 'theme': 'monokai' }, 'hotkey': { 'toggleMain': 'Control + L' }, 'listWidth': 135, 'navWidth': 135 }
const allJson = { 'amaEnabled': true, 'editor': { 'fontFamily': 'Monaco, Consolas', 'fontSize': '14', 'indentSize': '2', 'indentType': 'space', 'keyMap': 'vim', 'switchPreview': 'BLUR', 'theme': 'monokai' }, 'hotkey': { 'toggleFinder': 'Cmd + Alt + S', 'toggleMain': 'Cmd + Alt + L' }, 'isSideNavFolded': false, 'listStyle': 'DEFAULT', 'listWidth': 174, 'navWidth': 200, 'preview': { 'codeBlockTheme': 'dracula', 'fontFamily': 'Lato', 'fontSize': '14', 'lineNumber': true }, 'sortBy': 'UPDATED_AT', 'ui': { 'defaultNote': 'ALWAYS_ASK', 'disableDirectWrite': false, 'theme': 'default' }, 'zoom': 1 }

// [input, expected]
const validTestCases = [
['.boostnoterc.valid', validJson],
['.boostnoterc.all', allJson]
]

const invalidTestCases = [
['.boostnoterc.invalid', {}]
]

validTestCases.forEach(validTestCase => {
const [input, expected] = validTestCase
t.is(parse(filePath(input)).editor.keyMap, expected.editor.keyMap, `Test for getTodoStatus() input: ${input} expected: ${expected.keyMap}`)
})

invalidTestCases.forEach(invalidTestCase => {
const [input, expected] = invalidTestCase
t.is(parse(filePath(input)).editor, expected.editor, `Test for getTodoStatus() input: ${input} expected: ${expected.editor}`)
})
})

function filePath (filename) {
return path.join('boostnoterc', filename)
}

0 comments on commit ab1aa56

Please sign in to comment.