2
0
mirror of https://github.com/tenrok/vue-meta.git synced 2026-05-17 05:49:37 +03:00
Files
vue-meta/test/unit/shared.test.js
T
2019-09-17 13:55:29 +02:00

45 lines
1.3 KiB
JavaScript

import { setOptions } from '../../src/shared/options'
import { defaultOptions } from '../../src/shared/constants'
import { triggerUpdate } from '../../src/client/update'
describe('shared', () => {
test('can use setOptions', () => {
const keyName = 'MY KEY'
let options = { keyName }
options = setOptions(options)
expect(options.keyName).toBe(keyName)
expect(options.contentKeyName).toBeDefined()
expect(options.contentKeyName).toBe(defaultOptions.contentKeyName)
})
test('options.debounceWait is used', () => {
jest.useFakeTimers()
const refresh = jest.fn()
const componentMock = {
_vueMeta: {
initialized: true,
pausing: false
},
$meta: () => ({ refresh })
}
triggerUpdate({ debounceWait: 0 }, componentMock, 'test')
expect(refresh).toHaveBeenCalledTimes(1)
triggerUpdate({}, componentMock, 'test')
expect(refresh).toHaveBeenCalledTimes(1)
jest.advanceTimersByTime(11)
expect(refresh).toHaveBeenCalledTimes(2)
triggerUpdate({ debounceWait: 69420 }, componentMock, 'test')
expect(refresh).toHaveBeenCalledTimes(2)
jest.advanceTimersByTime(11)
expect(refresh).toHaveBeenCalledTimes(2)
jest.advanceTimersByTime(69500)
expect(refresh).toHaveBeenCalledTimes(3)
})
})