test: tests for script setup helpers

This commit is contained in:
Evan You
2020-11-26 10:01:36 -05:00
parent 73cdb9d420
commit 426a6c996e
2 changed files with 53 additions and 4 deletions

View 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)
})
})