diff --git a/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineEmits.spec.ts.snap b/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineEmits.spec.ts.snap index a8bd930fb..ca433de60 100644 --- a/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineEmits.spec.ts.snap +++ b/packages/compiler-sfc/__tests__/compileScript/__snapshots__/defineEmits.spec.ts.snap @@ -30,6 +30,26 @@ return { emit } })" `; +exports[`defineEmits > w/ type (enum) 1`] = ` +"import { defineComponent as _defineComponent } from 'vue' +enum Foo { BAR = 'bar' } + interface Emits { + (e: Foo.BAR, value: string): void; + } + +export default /*#__PURE__*/_defineComponent({ + emits: [\\"bar\\"], + setup(__props, { expose: __expose, emit }) { + __expose(); + + + +return { Foo, emit } +} + +})" +`; + exports[`defineEmits > w/ type (exported interface) 1`] = ` "import { defineComponent as _defineComponent } from 'vue' export interface Emits { (e: 'foo' | 'bar'): void } diff --git a/packages/compiler-sfc/__tests__/compileScript/defineEmits.spec.ts b/packages/compiler-sfc/__tests__/compileScript/defineEmits.spec.ts index c5d2900a4..d7e0fff63 100644 --- a/packages/compiler-sfc/__tests__/compileScript/defineEmits.spec.ts +++ b/packages/compiler-sfc/__tests__/compileScript/defineEmits.spec.ts @@ -89,6 +89,20 @@ const emit = defineEmits(['a', 'b']) expect(content).toMatch(`emits: ["foo", "bar"]`) }) + test('w/ enum value', () => { + const { content } = compile(` + + `) + assertCode(content) + expect(content).toMatch(`emits: ["bar"]`) + }) + test('w/ type from normal script', () => { const { content } = compile(`