test: fix observer warning case
This commit is contained in:
parent
612167f470
commit
5e988cc9fd
@ -124,20 +124,36 @@ describe('observer/observable', () => {
|
||||
})
|
||||
|
||||
test('unobservable values', () => {
|
||||
const msg = 'not observable'
|
||||
const warn = jest.spyOn(console, 'warn')
|
||||
let lastMsg: string
|
||||
warn.mockImplementation(msg => {
|
||||
lastMsg = msg
|
||||
})
|
||||
|
||||
const getMsg = (value: any) => `value is not observable: ${String(value)}`
|
||||
const assertValue = (value: any) => {
|
||||
observable(value)
|
||||
expect(lastMsg).toMatch(getMsg(value))
|
||||
}
|
||||
|
||||
// number
|
||||
expect(() => observable(1)).toThrowError(msg)
|
||||
assertValue(1)
|
||||
// string
|
||||
expect(() => observable('foo')).toThrowError(msg)
|
||||
assertValue('foo')
|
||||
// boolean
|
||||
expect(() => observable(false)).toThrowError(msg)
|
||||
assertValue(false)
|
||||
// null
|
||||
expect(() => observable(null)).toThrowError(msg)
|
||||
assertValue(null)
|
||||
// undefined should work because it returns empty object observable
|
||||
expect(() => observable(undefined)).not.toThrowError(msg)
|
||||
lastMsg = ''
|
||||
observable(undefined)
|
||||
expect(lastMsg).toBe('')
|
||||
// symbol
|
||||
const s = Symbol()
|
||||
expect(() => observable(s)).toThrowError(msg)
|
||||
assertValue(s)
|
||||
|
||||
warn.mockRestore()
|
||||
|
||||
// built-ins should work and return same value
|
||||
const p = Promise.resolve()
|
||||
expect(observable(p)).toBe(p)
|
||||
|
Loading…
Reference in New Issue
Block a user