test: improve test coverage (#74)

This commit is contained in:
Nolan Lawson 2020-11-06 10:08:33 -08:00 committed by GitHub
parent c72bb44a28
commit 9fe31d9a57
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 21 additions and 4 deletions

View file

@ -130,9 +130,7 @@ export default class Database {
try {
await this._lazyUpdate // allow any lazy updates to process before closing/deleting
} catch (err) { /* ignore network errors (offline-first) */ }
if (this._db) {
return true // we need to actually run the close/delete logic, so we return true
}
return !!this._db // return true if we need to actually run the close/delete logic
}
// clear references to IDB, e.g. during a close event

View file

@ -46,7 +46,7 @@ export function trie (arr, itemToTokens) {
const results = []
// traverse
const queue = currentMap ? [currentMap] : []
const queue = [currentMap]
while (queue.length) {
const currentMap = queue.shift()
const entriesSortedByKey = [...currentMap.entries()].sort((a, b) => a[0] < b[0] ? -1 : 1)

View file

@ -11,6 +11,7 @@ export const emojiSupportLevelPromise = new Promise(resolve => (
// are supported (rendered as one glyph) rather than unsupported (rendered as two or more glyphs)
export const supportedZwjEmojis = new Map()
/* istanbul ignore else */
if (process.env.NODE_ENV !== 'production') {
emojiSupportLevelPromise.then(emojiSupportLevel => {
log('emoji support level', emojiSupportLevel)

View file

@ -1,3 +1,4 @@
/* istanbul ignore next */
const rIC = typeof requestIdleCallback === 'function' ? requestIdleCallback : setTimeout
export { rIC as requestIdleCallback }

View file

@ -238,4 +238,20 @@ describe('database tests', () => {
await tick(20)
})
test('close in db2 after deletion in db1', async () => {
const dataSource = ALL_EMOJI
const db = new Database({ dataSource })
const db2 = new Database({ dataSource })
await Promise.all([db.delete(), db2.close()])
await tick(40)
})
test('delete in db2 after deletion in db1', async () => {
const dataSource = ALL_EMOJI
const db = new Database({ dataSource })
const db2 = new Database({ dataSource })
await Promise.all([db.delete(), db2.delete()])
await tick(40)
})
})

View file

@ -47,5 +47,6 @@ describe('skin tones tests', () => {
expect(applySkinTone('🧘‍♀️', 3)).toBe('🧘🏽‍♀️')
expect(applySkinTone('🤌', 2)).toBe('🤌🏼')
expect(applySkinTone('🖐️', 5)).toBe('🖐🏿')
expect(applySkinTone('👨‍🦰', 4)).toBe('👨🏾‍🦰')
})
})