diff --git a/packages/runtime-core/src/components/BaseTransition.ts b/packages/runtime-core/src/components/BaseTransition.ts index cb628bf65..27bfb5f52 100644 --- a/packages/runtime-core/src/components/BaseTransition.ts +++ b/packages/runtime-core/src/components/BaseTransition.ts @@ -161,7 +161,11 @@ const BaseTransitionImpl: ComponentOptions = { const rawProps = toRaw(props) const { mode } = rawProps // check mode - if (__DEV__ && mode && !['in-out', 'out-in', 'default'].includes(mode)) { + if ( + __DEV__ && + mode && + mode !== 'in-out' && mode !== 'out-in' && mode !== 'default' + ) { warn(`invalid mode: ${mode}`) } diff --git a/packages/vue/__tests__/Transition.spec.ts b/packages/vue/__tests__/Transition.spec.ts index bcb1fcb3b..97b3ccd96 100644 --- a/packages/vue/__tests__/Transition.spec.ts +++ b/packages/vue/__tests__/Transition.spec.ts @@ -1969,6 +1969,21 @@ describe('e2e: Transition', () => { ).toHaveBeenWarned() }) + test('warn when invalid transition mode', () => { + createApp({ + template: ` +
+ +
content
+
+
+ ` + }).mount(document.createElement('div')) + expect( + `invalid mode: none` + ).toHaveBeenWarned() + }) + // #3227 test(`HOC w/ merged hooks`, async () => { const innerSpy = jest.fn()