diff --git a/tests/fixtures/TestDummy.js b/tests/fixtures/TestDummy.js index 39164731..4edcc9cf 100644 --- a/tests/fixtures/TestDummy.js +++ b/tests/fixtures/TestDummy.js @@ -175,5 +175,6 @@ module.exports = { dummyFolder, dummyBoostnoteJSONData, dummyStorage, - dummyLegacyStorage + dummyLegacyStorage, + dummyNote } diff --git a/tests/lib/search-test.js b/tests/lib/search-test.js new file mode 100644 index 00000000..54fc3a2b --- /dev/null +++ b/tests/lib/search-test.js @@ -0,0 +1,36 @@ +import test from 'ava' +import searchFromNotes from 'browser/lib/search' +import { dummyNote } from '../fixtures/TestDummy' +import _ from 'lodash' + +const pickContents = (notes) => notes.map((note) => { return note.content } ) + +let noteList = { noteMap: [] } +let note1, note2 + +test.before(t => { + const data1 = { type: 'MARKDOWN_NOTE', content: 'content1', tags: ['tag1'], } + const data2 = { type: 'MARKDOWN_NOTE', content: 'content1\ncontent2', tags: ['tag1', 'tag2'], } + note1 = dummyNote(data1) + note2 = dummyNote(data2) + + noteList.noteMap = [note1, note2] +}) + +test('it can find notes by tags or words', t => { + // [input, expected content (Array)] + const testCases= [ + ['#tag1', [note1.content, note2.content]], + ['#tag1 #tag2', [note2.content]], + ['#tag1 #tag2 #tag3', []], + ['content1', [note1.content, note2.content]], + ['content1 content2', [note2.content]], + ['content1 content2 content3', []] + ] + + testCases.forEach((testCase) => { + const [input, expectedContents] = testCase + const results = searchFromNotes(noteList, input) + t.true(_.isEqual(pickContents(results).sort(), expectedContents.sort())) + }) +})