emoji-picker-element/test/spec/database/offlineFirst.test.js

40 lines
1.2 KiB
JavaScript

import { jest } from '@jest/globals'
import { ALL_EMOJI, basicAfterEach, basicBeforeEach } from '../shared'
import Database from '../../../src/database/Database'
describe('offline first', () => {
beforeEach(() => {
basicBeforeEach()
jest.spyOn(console, 'warn').mockImplementation(() => {})
})
afterEach(basicAfterEach)
test('basic offline first test', async () => {
let db = new Database({ dataSource: ALL_EMOJI })
await db.close()
fetch.mockClear()
fetch.reset()
fetch.get(ALL_EMOJI, { body: null, status: 500 })
fetch.head(ALL_EMOJI, { body: null, status: 500 })
db = new Database({ dataSource: ALL_EMOJI })
await db.ready()
await expect(() => db._lazyUpdate).rejects.toThrow()
expect((await db.getEmojiByUnicodeOrName('🐵')).annotation).toBe('monkey face')
await db.close()
await db.delete()
})
test('basic error test', async () => {
const ERROR = 'error.json'
fetch.get(ERROR, { body: null, status: 500 })
fetch.head(ERROR, { body: null, status: 500 })
const db = new Database({ dataSource: ERROR })
await (expect(() => db.ready())).rejects.toThrow()
await new Database({ dataSource: ALL_EMOJI }).delete()
})
})