diff --git a/packages/compiler-dom/__tests__/transforms/__snapshots__/vOn.spec.ts.snap b/packages/compiler-dom/__tests__/transforms/__snapshots__/vOn.spec.ts.snap new file mode 100644 index 000000000..d49d731bf --- /dev/null +++ b/packages/compiler-dom/__tests__/transforms/__snapshots__/vOn.spec.ts.snap @@ -0,0 +1,13 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`compiler-dom: transform v-on > should wrap both for dynamic key event w/ once modifiers 1`] = ` +"const _Vue = Vue + +return function render(_ctx, _cache) { + with (_ctx) { + const { toHandlerKey: _toHandlerKey, checkDynamicEvent: _checkDynamicEvent, openBlock: _openBlock, createElementBlock: _createElementBlock } = _Vue + + return (_openBlock(), _createElementBlock("div", { [_checkDynamicEvent(_toHandlerKey(e),"Once")]: test }, null, 16 /* FULL_PROPS */)) + } +}" +`; diff --git a/packages/compiler-dom/__tests__/transforms/vOn.spec.ts b/packages/compiler-dom/__tests__/transforms/vOn.spec.ts index ee9ea93c3..896d3dfed 100644 --- a/packages/compiler-dom/__tests__/transforms/vOn.spec.ts +++ b/packages/compiler-dom/__tests__/transforms/vOn.spec.ts @@ -6,6 +6,7 @@ import { type ObjectExpression, TO_HANDLER_KEY, type VNodeCall, + generate, helperNameMap, baseParse as parse, transform, @@ -168,6 +169,12 @@ describe('compiler-dom: transform v-on', () => { }) }) + it('should wrap both for dynamic key event w/ once modifiers', () => { + const { root: ast } = parseWithVOn(`
`) + + expect(generate(ast).code).toMatchSnapshot() + }) + it('should not wrap normal guard if there is only keys guard', () => { const { props: [prop],