| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import {
- defineComponent,
- h,
- nodeOps,
- render,
- SetupContext
- } from '@vue/runtime-test'
- import { defineEmits, defineProps, useContext } from '../src/apiSetupHelpers'
- describe('SFC <script setup> helpers', () => {
- test('should warn runtime usage', () => {
- defineProps()
- expect(`defineProps() is a compiler-hint`).toHaveBeenWarned()
- defineEmits()
- expect(`defineEmits() 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)
- })
- })
|