test: tests for script setup helpers
This commit is contained in:
49
packages/runtime-core/__tests__/apiSetupHelpers.spec.ts
Normal file
49
packages/runtime-core/__tests__/apiSetupHelpers.spec.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import {
|
||||
defineComponent,
|
||||
h,
|
||||
nodeOps,
|
||||
render,
|
||||
SetupContext
|
||||
} from '@vue/runtime-test'
|
||||
import { defineEmit, defineProps, useContext } from '../src/apiSetupHelpers'
|
||||
|
||||
describe('SFC <script setup> helpers', () => {
|
||||
test('should warn runtime usage', () => {
|
||||
defineProps()
|
||||
expect(`defineProps() is a compiler-hint`).toHaveBeenWarned()
|
||||
|
||||
defineEmit()
|
||||
expect(`defineEmit() is a compiler-hint`).toHaveBeenWarned()
|
||||
})
|
||||
|
||||
test('useContext (no args)', () => {
|
||||
let ctx: SetupContext | undefined
|
||||
const Comp = {
|
||||
setup() {
|
||||
ctx = useContext()
|
||||
return () => {}
|
||||
}
|
||||
}
|
||||
render(h(Comp), nodeOps.createElement('div'))
|
||||
expect(ctx).toMatchObject({
|
||||
attrs: {},
|
||||
slots: {}
|
||||
})
|
||||
expect(typeof ctx!.emit).toBe('function')
|
||||
})
|
||||
|
||||
test('useContext (with args)', () => {
|
||||
let ctx: SetupContext | undefined
|
||||
let ctxArg: SetupContext | undefined
|
||||
const Comp = defineComponent({
|
||||
setup(_, _ctxArg) {
|
||||
ctx = useContext()
|
||||
ctxArg = _ctxArg
|
||||
return () => {}
|
||||
}
|
||||
})
|
||||
render(h(Comp), nodeOps.createElement('div'))
|
||||
expect(ctx).toBeDefined()
|
||||
expect(ctx).toBe(ctxArg)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user