mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 01:36:22 +00:00
jest-codemods tests/lib
This commit is contained in:
@@ -1,46 +1,45 @@
|
||||
const { escapeHtmlCharacters } = require('browser/lib/utils')
|
||||
const test = require('ava')
|
||||
|
||||
test('escapeHtmlCharacters should return the original string if nothing needed to escape', t => {
|
||||
test('escapeHtmlCharacters should return the original string if nothing needed to escape', () => {
|
||||
const input = 'Nothing to be escaped'
|
||||
const expected = 'Nothing to be escaped'
|
||||
const actual = escapeHtmlCharacters(input)
|
||||
t.is(actual, expected)
|
||||
expect(actual).toBe(expected)
|
||||
})
|
||||
|
||||
test('escapeHtmlCharacters should skip code block if that option is enabled', t => {
|
||||
test('escapeHtmlCharacters should skip code block if that option is enabled', () => {
|
||||
const input = ` <no escape>
|
||||
<escapeMe>`
|
||||
const expected = ` <no escape>
|
||||
<escapeMe>`
|
||||
const actual = escapeHtmlCharacters(input, { detectCodeBlock: true })
|
||||
t.is(actual, expected)
|
||||
expect(actual).toBe(expected)
|
||||
})
|
||||
|
||||
test('escapeHtmlCharacters should NOT skip character not in code block but start with 4 spaces', t => {
|
||||
test('escapeHtmlCharacters should NOT skip character not in code block but start with 4 spaces', () => {
|
||||
const input = '4 spaces &'
|
||||
const expected = '4 spaces &'
|
||||
const actual = escapeHtmlCharacters(input, { detectCodeBlock: true })
|
||||
t.is(actual, expected)
|
||||
expect(actual).toBe(expected)
|
||||
})
|
||||
|
||||
test('escapeHtmlCharacters should NOT skip code block if that option is NOT enabled', t => {
|
||||
test('escapeHtmlCharacters should NOT skip code block if that option is NOT enabled', () => {
|
||||
const input = ` <no escape>
|
||||
<escapeMe>`
|
||||
const expected = ` <no escape>
|
||||
<escapeMe>`
|
||||
const actual = escapeHtmlCharacters(input)
|
||||
t.is(actual, expected)
|
||||
expect(actual).toBe(expected)
|
||||
})
|
||||
|
||||
test("escapeHtmlCharacters should NOT escape & character if it's a part of an escaped character", t => {
|
||||
test("escapeHtmlCharacters should NOT escape & character if it's a part of an escaped character", () => {
|
||||
const input = 'Do not escape & or " but do escape &'
|
||||
const expected = 'Do not escape & or " but do escape &'
|
||||
const actual = escapeHtmlCharacters(input)
|
||||
t.is(actual, expected)
|
||||
expect(actual).toBe(expected)
|
||||
})
|
||||
|
||||
test('escapeHtmlCharacters should skip char if in code block', t => {
|
||||
test('escapeHtmlCharacters should skip char if in code block', () => {
|
||||
const input = `
|
||||
\`\`\`
|
||||
<dontescapeme>
|
||||
@@ -62,12 +61,12 @@ dasdasdasd
|
||||
\`\`\`
|
||||
`
|
||||
const actual = escapeHtmlCharacters(input, { detectCodeBlock: true })
|
||||
t.is(actual, expected)
|
||||
expect(actual).toBe(expected)
|
||||
})
|
||||
|
||||
test('escapeHtmlCharacters should return the correct result', t => {
|
||||
test('escapeHtmlCharacters should return the correct result', () => {
|
||||
const input = '& < > " \''
|
||||
const expected = '& < > " ''
|
||||
const actual = escapeHtmlCharacters(input)
|
||||
t.is(actual, expected)
|
||||
expect(actual).toBe(expected)
|
||||
})
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
const test = require('ava')
|
||||
const { findStorage } = require('browser/lib/findStorage')
|
||||
|
||||
global.document = require('jsdom').jsdom('<body></body>')
|
||||
@@ -13,20 +12,20 @@ const sander = require('sander')
|
||||
const os = require('os')
|
||||
const storagePath = path.join(os.tmpdir(), 'test/find-storage')
|
||||
|
||||
test.beforeEach((t) => {
|
||||
beforeEach(() => {
|
||||
t.context.storage = TestDummy.dummyStorage(storagePath)
|
||||
localStorage.setItem('storages', JSON.stringify([t.context.storage.cache]))
|
||||
})
|
||||
|
||||
// Unit test
|
||||
test('findStorage() should return a correct storage path(string)', t => {
|
||||
test('findStorage() should return a correct storage path(string)', () => {
|
||||
const storageKey = t.context.storage.cache.key
|
||||
|
||||
t.is(findStorage(storageKey).key, storageKey)
|
||||
t.is(findStorage(storageKey).path, storagePath)
|
||||
expect(findStorage(storageKey).key).toBe(storageKey)
|
||||
expect(findStorage(storageKey).path).toBe(storagePath)
|
||||
})
|
||||
|
||||
test.after(function after () {
|
||||
afterAll(function after () {
|
||||
localStorage.clear()
|
||||
sander.rimrafSync(storagePath)
|
||||
})
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
* @fileoverview Unit test for browser/lib/findTitle
|
||||
*/
|
||||
|
||||
const test = require('ava')
|
||||
const { findNoteTitle } = require('browser/lib/findNoteTitle')
|
||||
|
||||
// Unit test
|
||||
test('findNoteTitle#find should return a correct title (string)', t => {
|
||||
test('findNoteTitle#find should return a correct title (string)', () => {
|
||||
// [input, expected]
|
||||
const testCases = [
|
||||
['# hoge\nfuga', '# hoge'],
|
||||
@@ -20,11 +19,11 @@ test('findNoteTitle#find should return a correct title (string)', t => {
|
||||
|
||||
testCases.forEach(testCase => {
|
||||
const [input, expected] = testCase
|
||||
t.is(findNoteTitle(input, false), expected, `Test for find() input: ${input} expected: ${expected}`)
|
||||
expect(findNoteTitle(input, false)).toBe(expected)
|
||||
})
|
||||
})
|
||||
|
||||
test('findNoteTitle#find should ignore front matter when enableFrontMatterTitle=false', t => {
|
||||
test('findNoteTitle#find should ignore front matter when enableFrontMatterTitle=false', () => {
|
||||
// [input, expected]
|
||||
const testCases = [
|
||||
['---\nlayout: test\ntitle: hoge hoge hoge \n---\n# fuga', '# fuga'],
|
||||
@@ -34,11 +33,11 @@ test('findNoteTitle#find should ignore front matter when enableFrontMatterTitle
|
||||
|
||||
testCases.forEach(testCase => {
|
||||
const [input, expected] = testCase
|
||||
t.is(findNoteTitle(input, false), expected, `Test for find() input: ${input} expected: ${expected}`)
|
||||
expect(findNoteTitle(input, false)).toBe(expected)
|
||||
})
|
||||
})
|
||||
|
||||
test('findNoteTitle#find should respect front matter when enableFrontMatterTitle=true', t => {
|
||||
test('findNoteTitle#find should respect front matter when enableFrontMatterTitle=true', () => {
|
||||
// [input, expected]
|
||||
const testCases = [
|
||||
['---\nlayout: test\ntitle: hoge hoge hoge \n---\n# fuga', 'hoge hoge hoge'],
|
||||
@@ -48,11 +47,11 @@ test('findNoteTitle#find should respect front matter when enableFrontMatterTitl
|
||||
|
||||
testCases.forEach(testCase => {
|
||||
const [input, expected] = testCase
|
||||
t.is(findNoteTitle(input, true), expected, `Test for find() input: ${input} expected: ${expected}`)
|
||||
expect(findNoteTitle(input, true)).toBe(expected)
|
||||
})
|
||||
})
|
||||
|
||||
test('findNoteTitle#find should respect frontMatterTitleField when provided', t => {
|
||||
test('findNoteTitle#find should respect frontMatterTitleField when provided', () => {
|
||||
// [input, expected]
|
||||
const testCases = [
|
||||
['---\ntitle: hoge\n---\n# fuga', '# fuga'],
|
||||
@@ -61,6 +60,6 @@ test('findNoteTitle#find should respect frontMatterTitleField when provided', t
|
||||
|
||||
testCases.forEach(testCase => {
|
||||
const [input, expected] = testCase
|
||||
t.is(findNoteTitle(input, true, 'custom'), expected, `Test for find() input: ${input} expected: ${expected}`)
|
||||
expect(findNoteTitle(input, true, 'custom')).toBe(expected)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
const test = require('ava')
|
||||
const { getTodoStatus } = require('browser/lib/getTodoStatus')
|
||||
|
||||
// Unit test
|
||||
test('getTodoStatus should return a correct hash object', t => {
|
||||
test('getTodoStatus should return a correct hash object', () => {
|
||||
// [input, expected]
|
||||
const testCases = [
|
||||
['', { total: 0, completed: 0 }],
|
||||
@@ -40,8 +39,8 @@ test('getTodoStatus should return a correct hash object', t => {
|
||||
|
||||
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}`)
|
||||
expect(getTodoStatus(input).total).toBe(expected.total)
|
||||
expect(getTodoStatus(input).completed).toBe(expected.completed)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
/**
|
||||
* @fileoverview Unit test for browser/lib/htmlTextHelper
|
||||
*/
|
||||
const test = require('ava')
|
||||
const htmlTextHelper = require('browser/lib/htmlTextHelper')
|
||||
|
||||
// Unit test
|
||||
test('htmlTextHelper#decodeEntities should return encoded text (string)', t => {
|
||||
test('htmlTextHelper#decodeEntities should return encoded text (string)', () => {
|
||||
// [input, expected]
|
||||
const testCases = [
|
||||
['<a href=', '<a href='],
|
||||
@@ -18,11 +17,11 @@ test('htmlTextHelper#decodeEntities should return encoded text (string)', t => {
|
||||
|
||||
testCases.forEach(testCase => {
|
||||
const [input, expected] = testCase
|
||||
t.is(htmlTextHelper.decodeEntities(input), expected, `Test for decodeEntities() input: ${input} expected: ${expected}`)
|
||||
expect(htmlTextHelper.decodeEntities(input)).toBe(expected)
|
||||
})
|
||||
})
|
||||
|
||||
test('htmlTextHelper#decodeEntities() should return decoded text (string)', t => {
|
||||
test('htmlTextHelper#decodeEntities() should return decoded text (string)', () => {
|
||||
// [input, expected]
|
||||
const testCases = [
|
||||
['<a href=', '<a href='],
|
||||
@@ -34,12 +33,12 @@ test('htmlTextHelper#decodeEntities() should return decoded text (string)', t =>
|
||||
|
||||
testCases.forEach(testCase => {
|
||||
const [input, expected] = testCase
|
||||
t.is(htmlTextHelper.encodeEntities(input), expected, `Test for encodeEntities() input: ${input} expected: ${expected}`)
|
||||
expect(htmlTextHelper.encodeEntities(input)).toBe(expected)
|
||||
})
|
||||
})
|
||||
|
||||
// Integration test
|
||||
test(t => {
|
||||
test(() => {
|
||||
const testCases = [
|
||||
'var test = \'test\'',
|
||||
'<a href=\'https://boostnote.io\'>Boostnote',
|
||||
@@ -49,6 +48,6 @@ test(t => {
|
||||
testCases.forEach(testCase => {
|
||||
const encodedText = htmlTextHelper.encodeEntities(testCase)
|
||||
const decodedText = htmlTextHelper.decodeEntities(encodedText)
|
||||
t.is(decodedText, testCase, 'Integration test through encodedText() and decodedText()')
|
||||
expect(decodedText).toBe(testCase)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import test from 'ava'
|
||||
import Markdown from 'browser/lib/markdown'
|
||||
import markdownFixtures from '../fixtures/markdowns'
|
||||
|
||||
@@ -6,70 +5,70 @@ import markdownFixtures from '../fixtures/markdowns'
|
||||
// To test markdown options, initialize a new instance in your test case
|
||||
const md = new Markdown()
|
||||
|
||||
test('Markdown.render() should renders markdown correctly', t => {
|
||||
test('Markdown.render() should renders markdown correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.basic)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should renders codeblock correctly', t => {
|
||||
test('Markdown.render() should renders codeblock correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.codeblock)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should renders KaTeX correctly', t => {
|
||||
test('Markdown.render() should renders KaTeX correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.katex)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should renders checkboxes', t => {
|
||||
test('Markdown.render() should renders checkboxes', () => {
|
||||
const rendered = md.render(markdownFixtures.checkboxes)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should text with quotes correctly', t => {
|
||||
test('Markdown.render() should text with quotes correctly', () => {
|
||||
const renderedSmartQuotes = md.render(markdownFixtures.smartQuotes)
|
||||
t.snapshot(renderedSmartQuotes)
|
||||
expect(renderedSmartQuotes).toMatchSnapshot()
|
||||
|
||||
const newmd = new Markdown({ typographer: false })
|
||||
const renderedNonSmartQuotes = newmd.render(markdownFixtures.smartQuotes)
|
||||
t.snapshot(renderedNonSmartQuotes)
|
||||
expect(renderedNonSmartQuotes).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should render line breaks correctly', t => {
|
||||
test('Markdown.render() should render line breaks correctly', () => {
|
||||
const renderedBreaks = md.render(markdownFixtures.breaks)
|
||||
t.snapshot(renderedBreaks)
|
||||
expect(renderedBreaks).toMatchSnapshot()
|
||||
|
||||
const newmd = new Markdown({ breaks: false })
|
||||
const renderedNonBreaks = newmd.render(markdownFixtures.breaks)
|
||||
t.snapshot(renderedNonBreaks)
|
||||
expect(renderedNonBreaks).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should renders abbrevations correctly', t => {
|
||||
test('Markdown.render() should renders abbrevations correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.abbrevations)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should renders sub correctly', t => {
|
||||
test('Markdown.render() should renders sub correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.subTexts)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should renders sup correctly', t => {
|
||||
test('Markdown.render() should renders sup correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.supTexts)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should renders definition lists correctly', t => {
|
||||
test('Markdown.render() should renders definition lists correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.deflists)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should render shortcuts correctly', t => {
|
||||
test('Markdown.render() should render shortcuts correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.shortcuts)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
test('Markdown.render() should render footnote correctly', t => {
|
||||
test('Markdown.render() should render footnote correctly', () => {
|
||||
const rendered = md.render(markdownFixtures.footnote)
|
||||
t.snapshot(rendered)
|
||||
expect(rendered).toMatchSnapshot()
|
||||
})
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
/**
|
||||
* @fileoverview Unit test for browser/lib/markdown
|
||||
*/
|
||||
const test = require('ava')
|
||||
const markdown = require('browser/lib/markdownTextHelper')
|
||||
|
||||
test(t => {
|
||||
test(() => {
|
||||
// [input, expected]
|
||||
const testCases = [
|
||||
// List
|
||||
@@ -42,6 +41,6 @@ test(t => {
|
||||
|
||||
testCases.forEach(testCase => {
|
||||
const [input, expected] = testCase
|
||||
t.is(markdown.strip(input), expected, `Test for strip() input: ${input} expected: ${expected}`)
|
||||
expect(markdown.strip(input)).toBe(expected)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -4,11 +4,10 @@
|
||||
|
||||
import CodeMirror from 'codemirror'
|
||||
require('codemirror/addon/search/searchcursor.js')
|
||||
const test = require('ava')
|
||||
const markdownToc = require('browser/lib/markdown-toc-generator')
|
||||
const EOL = require('os').EOL
|
||||
|
||||
test(t => {
|
||||
test(() => {
|
||||
/**
|
||||
* Contains array of test cases in format :
|
||||
* [
|
||||
@@ -261,11 +260,11 @@ this is a text
|
||||
const expectedToc = testCase[2].trim()
|
||||
const generatedToc = markdownToc.generate(inputMd)
|
||||
|
||||
t.is(generatedToc, expectedToc, `generate test : ${title} , generated : ${EOL}${generatedToc}, expected : ${EOL}${expectedToc}`)
|
||||
expect(generatedToc).toBe(expectedToc)
|
||||
})
|
||||
})
|
||||
|
||||
test(t => {
|
||||
test(() => {
|
||||
/**
|
||||
* Contains array of test cases in format :
|
||||
* [
|
||||
@@ -663,6 +662,6 @@ this is a level one text
|
||||
editor.setCursor(cursor)
|
||||
markdownToc.generateInEditor(editor)
|
||||
|
||||
t.is(expectedMd, editor.getValue(), `generateInEditor test : ${title} , generated : ${EOL}${editor.getValue()}, expected : ${EOL}${expectedMd}`)
|
||||
expect(expectedMd).toBe(editor.getValue())
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
/**
|
||||
* @fileoverview Unit test for browser/lib/normalizeEditorFontFamily
|
||||
*/
|
||||
import test from 'ava'
|
||||
import normalizeEditorFontFamily from '../../browser/lib/normalizeEditorFontFamily'
|
||||
import consts from '../../browser/lib/consts'
|
||||
const defaultEditorFontFamily = consts.DEFAULT_EDITOR_FONT_FAMILY
|
||||
|
||||
test('normalizeEditorFontFamily() should return default font family (string[])', t => {
|
||||
t.is(normalizeEditorFontFamily(), defaultEditorFontFamily.join(', '))
|
||||
test('normalizeEditorFontFamily() should return default font family (string[])', () => {
|
||||
expect(normalizeEditorFontFamily()).toBe(defaultEditorFontFamily.join(', '))
|
||||
})
|
||||
|
||||
test('normalizeEditorFontFamily(["hoge", "huga"]) should return default font family connected with arg.', t => {
|
||||
test('normalizeEditorFontFamily(["hoge", "huga"]) should return default font family connected with arg.', () => {
|
||||
const arg = 'font1, font2'
|
||||
t.is(normalizeEditorFontFamily(arg), `${arg}, ${defaultEditorFontFamily.join(', ')}`)
|
||||
expect(normalizeEditorFontFamily(arg)).toBe(`${arg}, ${defaultEditorFontFamily.join(', ')}`)
|
||||
})
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
const test = require('ava')
|
||||
const path = require('path')
|
||||
const { parse } = require('browser/lib/RcParser')
|
||||
|
||||
// Unit test
|
||||
test('RcParser should return a json object', t => {
|
||||
test('RcParser should return a json object', () => {
|
||||
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': { 'toggleMain': 'Cmd + Alt + L' }, 'isSideNavFolded': false, 'listStyle': 'DEFAULT', 'listWidth': 174, 'navWidth': 200, 'preview': { 'codeBlockTheme': 'dracula', 'fontFamily': 'Lato', 'fontSize': '14', 'lineNumber': true }, 'sortBy': { 'default': 'UPDATED_AT' }, 'ui': { 'defaultNote': 'ALWAYS_ASK', 'disableDirectWrite': false, 'theme': 'default' }, 'zoom': 1 }
|
||||
|
||||
@@ -19,12 +18,12 @@ test('RcParser should return a json object', t => {
|
||||
|
||||
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}`)
|
||||
expect(parse(filePath(input)).editor.keyMap).toBe(expected.editor.keyMap)
|
||||
})
|
||||
|
||||
invalidTestCases.forEach(invalidTestCase => {
|
||||
const [input, expected] = invalidTestCase
|
||||
t.is(parse(filePath(input)).editor, expected.editor, `Test for getTodoStatus() input: ${input} expected: ${expected.editor}`)
|
||||
expect(parse(filePath(input)).editor).toBe(expected.editor)
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import test from 'ava'
|
||||
import searchFromNotes from 'browser/lib/search'
|
||||
import { dummyNote } from '../fixtures/TestDummy'
|
||||
import _ from 'lodash'
|
||||
@@ -8,7 +7,7 @@ const pickContents = (notes) => notes.map((note) => { return note.content })
|
||||
let notes = []
|
||||
let note1, note2, note3
|
||||
|
||||
test.before(t => {
|
||||
beforeAll(() => {
|
||||
const data1 = { type: 'MARKDOWN_NOTE', content: 'content1', tags: ['tag1'] }
|
||||
const data2 = { type: 'MARKDOWN_NOTE', content: 'content1\ncontent2', tags: ['tag1', 'tag2'] }
|
||||
const data3 = { type: 'MARKDOWN_NOTE', content: '#content4', tags: ['tag1'] }
|
||||
@@ -20,7 +19,7 @@ test.before(t => {
|
||||
notes = [note1, note2, note3]
|
||||
})
|
||||
|
||||
test('it can find notes by tags and words', t => {
|
||||
test('it can find notes by tags and words', () => {
|
||||
// [input, expected content (Array)]
|
||||
const testWithTags = [
|
||||
['#tag1', [note1.content, note2.content, note3.content]],
|
||||
@@ -42,6 +41,6 @@ test('it can find notes by tags and words', t => {
|
||||
testCases.forEach((testCase) => {
|
||||
const [input, expectedContents] = testCase
|
||||
const results = searchFromNotes(notes, input)
|
||||
t.true(_.isEqual(pickContents(results).sort(), expectedContents.sort()))
|
||||
expect(_.isEqual(pickContents(results).sort(), expectedContents.sort())).toBe(true)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,58 +1,57 @@
|
||||
import test from 'ava'
|
||||
import slugify from 'browser/lib/slugify'
|
||||
|
||||
test('alphabet and digit', t => {
|
||||
test('alphabet and digit', () => {
|
||||
const upperAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
|
||||
const lowerAlphabet = 'abcdefghijklmnopqrstuvwxyz'
|
||||
const digit = '0123456789'
|
||||
const testCase = upperAlphabet + lowerAlphabet + digit
|
||||
const decodeSlug = decodeURI(slugify(testCase))
|
||||
|
||||
t.true(decodeSlug === testCase)
|
||||
expect(decodeSlug === testCase).toBe(true)
|
||||
})
|
||||
|
||||
test('should delete unavailable symbols', t => {
|
||||
test('should delete unavailable symbols', () => {
|
||||
const availableSymbols = '_-'
|
||||
const testCase = availableSymbols + '][!\'#$%&()*+,./:;<=>?@\\^{|}~`'
|
||||
const decodeSlug = decodeURI(slugify(testCase))
|
||||
|
||||
t.true(decodeSlug === availableSymbols)
|
||||
expect(decodeSlug === availableSymbols).toBe(true)
|
||||
})
|
||||
|
||||
test('should convert from white spaces between words to hyphens', t => {
|
||||
test('should convert from white spaces between words to hyphens', () => {
|
||||
const testCase = 'This is one'
|
||||
const expectedString = 'This-is-one'
|
||||
const decodeSlug = decodeURI(slugify(testCase))
|
||||
|
||||
t.true(decodeSlug === expectedString)
|
||||
expect(decodeSlug === expectedString).toBe(true)
|
||||
})
|
||||
|
||||
test('should remove leading white spaces', t => {
|
||||
test('should remove leading white spaces', () => {
|
||||
const testCase = ' This is one'
|
||||
const expectedString = 'This-is-one'
|
||||
const decodeSlug = decodeURI(slugify(testCase))
|
||||
|
||||
t.true(decodeSlug === expectedString)
|
||||
expect(decodeSlug === expectedString).toBe(true)
|
||||
})
|
||||
|
||||
test('should remove trailing white spaces', t => {
|
||||
test('should remove trailing white spaces', () => {
|
||||
const testCase = 'This is one '
|
||||
const expectedString = 'This-is-one'
|
||||
const decodeSlug = decodeURI(slugify(testCase))
|
||||
|
||||
t.true(decodeSlug === expectedString)
|
||||
expect(decodeSlug === expectedString).toBe(true)
|
||||
})
|
||||
|
||||
test('2-byte charactor support', t => {
|
||||
test('2-byte charactor support', () => {
|
||||
const testCase = '菠萝芒果テストÀžƁƵ'
|
||||
const decodeSlug = decodeURI(slugify(testCase))
|
||||
|
||||
t.true(decodeSlug === testCase)
|
||||
expect(decodeSlug === testCase).toBe(true)
|
||||
})
|
||||
|
||||
test('emoji', t => {
|
||||
test('emoji', () => {
|
||||
const testCase = '🌸'
|
||||
const decodeSlug = decodeURI(slugify(testCase))
|
||||
|
||||
t.true(decodeSlug === testCase)
|
||||
expect(decodeSlug === testCase).toBe(true)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user