test: add test for resolveAsset (#273)
This commit is contained in:
parent
1c56d1bf19
commit
6bd26636c3
@ -0,0 +1,94 @@
|
|||||||
|
import {
|
||||||
|
mockWarn,
|
||||||
|
createApp,
|
||||||
|
nodeOps,
|
||||||
|
resolveComponent,
|
||||||
|
resolveDirective,
|
||||||
|
Component,
|
||||||
|
Directive
|
||||||
|
} from '@vue/runtime-test'
|
||||||
|
|
||||||
|
describe('resolveAssets', () => {
|
||||||
|
test('should work', () => {
|
||||||
|
const app = createApp()
|
||||||
|
const FooBar = () => null
|
||||||
|
const BarBaz = { mounted: () => null }
|
||||||
|
|
||||||
|
let component1: Component
|
||||||
|
let component2: Component
|
||||||
|
let component3: Component
|
||||||
|
let component4: Component
|
||||||
|
let directive1: Directive
|
||||||
|
let directive2: Directive
|
||||||
|
let directive3: Directive
|
||||||
|
let directive4: Directive
|
||||||
|
|
||||||
|
const Root = {
|
||||||
|
components: {
|
||||||
|
FooBar: FooBar
|
||||||
|
},
|
||||||
|
directives: {
|
||||||
|
BarBaz: BarBaz
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
return () => {
|
||||||
|
component1 = resolveComponent('FooBar')!
|
||||||
|
directive1 = resolveDirective('BarBaz')!
|
||||||
|
// camelize
|
||||||
|
component2 = resolveComponent('Foo-bar')!
|
||||||
|
directive2 = resolveDirective('Bar-baz')!
|
||||||
|
// capitalize
|
||||||
|
component3 = resolveComponent('fooBar')!
|
||||||
|
directive3 = resolveDirective('barBaz')!
|
||||||
|
// camelize and capitalize
|
||||||
|
component4 = resolveComponent('foo-bar')!
|
||||||
|
directive4 = resolveDirective('bar-baz')!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const root = nodeOps.createElement('div')
|
||||||
|
app.mount(Root, root)
|
||||||
|
expect(component1!).toBe(FooBar)
|
||||||
|
expect(component2!).toBe(FooBar)
|
||||||
|
expect(component3!).toBe(FooBar)
|
||||||
|
expect(component4!).toBe(FooBar)
|
||||||
|
|
||||||
|
expect(directive1!).toBe(BarBaz)
|
||||||
|
expect(directive2!).toBe(BarBaz)
|
||||||
|
expect(directive3!).toBe(BarBaz)
|
||||||
|
expect(directive4!).toBe(BarBaz)
|
||||||
|
})
|
||||||
|
|
||||||
|
describe('warning', () => {
|
||||||
|
mockWarn()
|
||||||
|
|
||||||
|
test('used outside render() or setup()', () => {
|
||||||
|
resolveComponent('foo')
|
||||||
|
expect(
|
||||||
|
'resolveComponent can only be used in render() or setup().'
|
||||||
|
).toHaveBeenWarned()
|
||||||
|
|
||||||
|
resolveDirective('foo')
|
||||||
|
expect(
|
||||||
|
'resolveDirective can only be used in render() or setup().'
|
||||||
|
).toHaveBeenWarned()
|
||||||
|
})
|
||||||
|
|
||||||
|
test('not exist', () => {
|
||||||
|
const app = createApp()
|
||||||
|
const Root = {
|
||||||
|
setup() {
|
||||||
|
resolveComponent('foo')
|
||||||
|
resolveDirective('bar')
|
||||||
|
return () => null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const root = nodeOps.createElement('div')
|
||||||
|
app.mount(Root, root)
|
||||||
|
expect('Failed to resolve component: foo').toHaveBeenWarned()
|
||||||
|
expect('Failed to resolve directive: bar').toHaveBeenWarned()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in New Issue
Block a user