From: Evan You Date: Tue, 28 Jul 2020 19:18:41 +0000 (-0400) Subject: refactor(compiler-core): emit error on v-if key usage X-Git-Tag: v3.0.0-rc.5~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=58b4a382f9a739d43aa33223ba01998b11312a58;p=thirdparty%2Fvuejs%2Fcore.git refactor(compiler-core): emit error on v-if key usage --- diff --git a/packages/compiler-core/__tests__/transforms/__snapshots__/vIf.spec.ts.snap b/packages/compiler-core/__tests__/transforms/__snapshots__/vIf.spec.ts.snap index 7a4b904137..def7f945a5 100644 --- a/packages/compiler-core/__tests__/transforms/__snapshots__/vIf.spec.ts.snap +++ b/packages/compiler-core/__tests__/transforms/__snapshots__/vIf.spec.ts.snap @@ -145,17 +145,3 @@ return function render(_ctx, _cache) { } }" `; - -exports[`compiler: v-if codegen v-if with key 1`] = ` -"const _Vue = Vue - -return function render(_ctx, _cache) { - with (_ctx) { - const { createVNode: _createVNode, openBlock: _openBlock, createBlock: _createBlock, createCommentVNode: _createCommentVNode } = _Vue - - return ok - ? (_openBlock(), _createBlock(\\"div\\", { key: \\"some-key\\" })) - : _createCommentVNode(\\"v-if\\", true) - } -}" -`; diff --git a/packages/compiler-core/__tests__/transforms/vIf.spec.ts b/packages/compiler-core/__tests__/transforms/vIf.spec.ts index 44433d84d8..9d4619aa8e 100644 --- a/packages/compiler-core/__tests__/transforms/vIf.spec.ts +++ b/packages/compiler-core/__tests__/transforms/vIf.spec.ts @@ -282,6 +282,16 @@ describe('compiler: v-if', () => { } ]) }) + + test('error on user key', () => { + const onError = jest.fn() + parseWithIfTransform(`
`, { onError }) + expect(onError.mock.calls[0]).toMatchObject([ + { + code: ErrorCodes.X_V_IF_KEY + } + ]) + }) }) describe('codegen', () => { @@ -581,18 +591,6 @@ describe('compiler: v-if', () => { expect(branch1.props).toMatchObject(createObjectMatcher({ key: `[0]` })) }) - test('v-if with key', () => { - const { - root, - node: { codegenNode } - } = parseWithIfTransform(`
`) - expect(codegenNode.consequent).toMatchObject({ - tag: `"div"`, - props: createObjectMatcher({ key: 'some-key' }) - }) - expect(generate(root).code).toMatchSnapshot() - }) - test('with comments', () => { const { node } = parseWithIfTransform(`