mirror of
https://github.com/h3poteto/whalebird-desktop
synced 2025-02-05 03:38:55 +01:00
Merge pull request #809 from h3poteto/iss-209
Use jest for unit tests instead of mocha
This commit is contained in:
commit
8bdda37310
@ -24,5 +24,5 @@ jobs:
|
||||
paths:
|
||||
- node_modules
|
||||
- run:
|
||||
name: mocha
|
||||
command: npm run mocha
|
||||
name: spec
|
||||
command: npm run spec:unit
|
||||
|
2299
package-lock.json
generated
2299
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -39,7 +39,7 @@
|
||||
"test": "npm run unit && npm run e2e",
|
||||
"unit": "karma start test/unit/karma.conf.js",
|
||||
"postinstall": "npm run lint:fix",
|
||||
"mocha": "BABEL_ENV=test mocha --require babel-register --recursive ./test/mocha/**/*.js"
|
||||
"spec:unit": "BABEL_ENV=test jest -u ./spec/unit/*.spec.js"
|
||||
},
|
||||
"build": {
|
||||
"productName": "Whalebird",
|
||||
@ -169,6 +169,7 @@
|
||||
"eslint-plugin-standard": "^4.0.0",
|
||||
"file-loader": "^2.0.0",
|
||||
"html-webpack-plugin": "^3.2.0",
|
||||
"jest": "^23.6.0",
|
||||
"jsdom": "^13.0.0",
|
||||
"karma": "^3.1.3",
|
||||
"karma-chai": "^0.1.0",
|
||||
|
@ -16,7 +16,7 @@ describe('emojify', () => {
|
||||
url: 'https://example.com/slack'
|
||||
}
|
||||
]
|
||||
context('Does not contain shortcode', () => {
|
||||
describe('Does not contain shortcode', () => {
|
||||
const str = 'I have a pen.'
|
||||
it('should not change', () => {
|
||||
const result = emojify(str, emoji)
|
||||
@ -26,7 +26,7 @@ describe('emojify', () => {
|
||||
)
|
||||
})
|
||||
})
|
||||
context('Contain a shortcode', () => {
|
||||
describe('Contain a shortcode', () => {
|
||||
const str = 'I like :python:'
|
||||
it('should replace', () => {
|
||||
const result = emojify(str, emoji)
|
||||
@ -36,7 +36,7 @@ describe('emojify', () => {
|
||||
)
|
||||
})
|
||||
})
|
||||
context('Contain some shortcodes', () => {
|
||||
describe('Contain some shortcodes', () => {
|
||||
const str = 'I like :python: , :nodejs: and :slack:'
|
||||
it('should replace', () => {
|
||||
const result = emojify(str, emoji)
|
||||
@ -46,7 +46,7 @@ describe('emojify', () => {
|
||||
)
|
||||
})
|
||||
})
|
||||
context('Contain same shortcodes', () => {
|
||||
describe('Contain same shortcodes', () => {
|
||||
const str = 'I like :python: , I love :python:'
|
||||
it('should replace', () => {
|
||||
const result = emojify(str, emoji)
|
@ -2,7 +2,7 @@ import assert from 'assert'
|
||||
import suggestText from '../../src/renderer/utils/suggestText'
|
||||
|
||||
describe('account', () => {
|
||||
context('Only account name', () => {
|
||||
describe('Only account name', () => {
|
||||
const str = '@h3pote'
|
||||
it('should match', () => {
|
||||
const [start, word] = suggestText(str, 7)
|
||||
@ -10,7 +10,7 @@ describe('account', () => {
|
||||
assert.strictEqual(start, 1)
|
||||
})
|
||||
})
|
||||
context('Beginning of the sentence', () => {
|
||||
describe('Beginning of the sentence', () => {
|
||||
const str = '@h3pote toot body'
|
||||
it('should match', () => {
|
||||
const [start, word] = suggestText(str, 7)
|
||||
@ -18,7 +18,7 @@ describe('account', () => {
|
||||
assert.strictEqual(start, 1)
|
||||
})
|
||||
})
|
||||
context('Halfway of the sentence', () => {
|
||||
describe('Halfway of the sentence', () => {
|
||||
const str = 'toot body @h3pote toot'
|
||||
it('should match', () => {
|
||||
const [start, word] = suggestText(str, 17)
|
||||
@ -26,7 +26,7 @@ describe('account', () => {
|
||||
assert.strictEqual(start, 11)
|
||||
})
|
||||
})
|
||||
context('End of the sentence', () => {
|
||||
describe('End of the sentence', () => {
|
||||
const str = 'toot body @h3pote'
|
||||
it('should match', () => {
|
||||
const [start, word] = suggestText(str, 17)
|
||||
@ -34,7 +34,7 @@ describe('account', () => {
|
||||
assert.strictEqual(start, 11)
|
||||
})
|
||||
})
|
||||
context('No space', () => {
|
||||
describe('No space', () => {
|
||||
const str = 'tootbody@h3pote'
|
||||
it('should not match', () => {
|
||||
const [start, word] = suggestText(str, 15)
|
@ -3,7 +3,7 @@ import { JSDOM } from 'jsdom'
|
||||
import { findLink, findTag, findAccount } from '../../src/renderer/utils/tootParser'
|
||||
|
||||
describe('findLink', () => {
|
||||
context('Pleroma', () => {
|
||||
describe('Pleroma', () => {
|
||||
const doc = (new JSDOM(`<html><head></head><body>
|
||||
<div class="toot">
|
||||
<p>
|
||||
@ -22,7 +22,7 @@ I released Whalebird version 2.4.1. In version 2.4.0, Whalebird supports streami
|
||||
})
|
||||
|
||||
describe('findTag', () => {
|
||||
context('Pleroma', () => {
|
||||
describe('Pleroma', () => {
|
||||
const doc = (new JSDOM(`<html><head></head><body>
|
||||
<div class="toot">
|
||||
<p>
|
||||
@ -38,7 +38,7 @@ I released Whalebird version 2.4.1. In version 2.4.0, Whalebird supports streami
|
||||
})
|
||||
})
|
||||
|
||||
context('Mastodon', () => {
|
||||
describe('Mastodon', () => {
|
||||
const doc = (new JSDOM(`<html><head></head><body>
|
||||
<div class="toot">
|
||||
<p>
|
||||
@ -56,8 +56,8 @@ I released Whalebird version 2.4.1. In version 2.4.0, Whalebird supports streami
|
||||
})
|
||||
|
||||
describe('findAccount', () => {
|
||||
context('in Pleroma', () => {
|
||||
context('from Mastodon', () => {
|
||||
describe('in Pleroma', () => {
|
||||
describe('from Mastodon', () => {
|
||||
const doc = (new JSDOM(`<html><head></head><body>
|
||||
<div class="toot">
|
||||
<p><span><a href="https://social.mikutter.hachune.net/@h3_poteto">@<span id="user">h3_poteto</span></a></span> hogehoge</p>
|
||||
@ -72,7 +72,7 @@ describe('findAccount', () => {
|
||||
})
|
||||
})
|
||||
|
||||
context('from Pleroma', () => {
|
||||
describe('from Pleroma', () => {
|
||||
const doc = (new JSDOM(`<html><head></head><body>
|
||||
<div class="toot">
|
||||
<p><span><a href="https://pleroma.io/users/h3poteto">@<span id="user">h3_poteto</span></a></span> hogehoge</p>
|
@ -3,56 +3,56 @@ import { domainFormat } from '../../src/renderer/utils/validator'
|
||||
|
||||
describe('validator', () => {
|
||||
describe('domainFormat', () => {
|
||||
context('string contains protocol', () => {
|
||||
describe('string contains protocol', () => {
|
||||
const domain = 'https://mastodon.social'
|
||||
it('should not match', () => {
|
||||
const res = domain.search(domainFormat)
|
||||
assert.strictEqual(res, -1)
|
||||
})
|
||||
})
|
||||
context('string contains account name', () => {
|
||||
describe('string contains account name', () => {
|
||||
const domain = 'h3_poteto@mastodon.social'
|
||||
it('should not match', () => {
|
||||
const res = domain.search(domainFormat)
|
||||
assert.strictEqual(res, -1)
|
||||
})
|
||||
})
|
||||
context('string is gTLD domain', () => {
|
||||
describe('string is gTLD domain', () => {
|
||||
const domain = 'mastodon.social'
|
||||
it('should match', () => {
|
||||
const res = domain.search(domainFormat)
|
||||
assert.strictEqual(res, 0)
|
||||
})
|
||||
})
|
||||
context('string is subdomain', () => {
|
||||
describe('string is subdomain', () => {
|
||||
const domain = 'music.mastodon.social'
|
||||
it('should match', () => {
|
||||
const res = domain.search(domainFormat)
|
||||
assert.strictEqual(res, 0)
|
||||
})
|
||||
})
|
||||
context('string is subdomain', () => {
|
||||
describe('string is subdomain', () => {
|
||||
const domain = 'social.tchncs.de'
|
||||
it('should match', () => {
|
||||
const res = domain.search(domainFormat)
|
||||
assert.strictEqual(res, 0)
|
||||
})
|
||||
})
|
||||
context('string is jp domain', () => {
|
||||
describe('string is jp domain', () => {
|
||||
const domain = 'mstdn.co.jp'
|
||||
it('should match', () => {
|
||||
const res = domain.search(domainFormat)
|
||||
assert.strictEqual(res, 0)
|
||||
})
|
||||
})
|
||||
context('string contains hyphone', () => {
|
||||
describe('string contains hyphone', () => {
|
||||
const domain = 'music-mastodon.social'
|
||||
it('should match', () => {
|
||||
const res = domain.search(domainFormat)
|
||||
assert.strictEqual(res, 0)
|
||||
})
|
||||
})
|
||||
context('string is short domain', () => {
|
||||
describe('string is short domain', () => {
|
||||
const domain = 'id.cc'
|
||||
it('should match', () => {
|
||||
const res = domain.search(domainFormat)
|
Loading…
x
Reference in New Issue
Block a user