1
0
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:
amedora
2019-08-07 14:17:48 +09:00
parent 606be4304d
commit ffb2603485
12 changed files with 92 additions and 104 deletions

View File

@@ -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>
&lt;escapeMe&gt;`
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 &amp;'
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 = ` &lt;no escape&gt;
&lt;escapeMe&gt;`
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 &amp; or &quot; but do escape &'
const expected = 'Do not escape &amp; or &quot; but do escape &amp;'
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 = '&amp; &lt; &gt; &quot; &#39;'
const actual = escapeHtmlCharacters(input)
t.is(actual, expected)
expect(actual).toBe(expected)
})

View File

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

View File

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

View File

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

View File

@@ -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 = [
['&lt;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=', '&lt;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)
})
})

View File

@@ -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()
})

View File

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

View File

@@ -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())
})
})

View File

@@ -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(', ')}`)
})

View File

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

View File

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

View File

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