From 3e21461ca00b5d0ca50f26509edd7af116e08cc8 Mon Sep 17 00:00:00 2001 From: xieyuschen Date: Wed, 21 Aug 2024 18:01:33 +0800 Subject: [PATCH] fix(runtime-core): test cases for mixing composition/options api --- packages/runtime-core/apiMixed.spec.ts | 86 ++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 packages/runtime-core/apiMixed.spec.ts diff --git a/packages/runtime-core/apiMixed.spec.ts b/packages/runtime-core/apiMixed.spec.ts new file mode 100644 index 000000000..3f8267819 --- /dev/null +++ b/packages/runtime-core/apiMixed.spec.ts @@ -0,0 +1,86 @@ +import { defineComponent, h, renderToString } from '@vue/runtime-test' + +describe('api: options', () => { + test('mix api options: setup and data with created', () => { + const mixinA = defineComponent({ + setup() { + return { + a: 'from setup', + } + }, + data() { + return { + a: 'from data', + } + }, + created(this: any) { + this.a = 'from created' + }, + render() { + return `${this.a}` + }, + }) + expect(renderToString(h(mixinA))).toBe(`from created`) + }) + + test('mix api options: data and setup with created', () => { + const mixinA = defineComponent({ + data() { + return { + a: 'from data', + } + }, + setup() { + return { + a: 'from setup', + } + }, + created(this: any) { + this.a = 'from created' + }, + render() { + return `${this.a}` + }, + }) + expect(renderToString(h(mixinA))).toBe(`from created`) + }) + + test('mix api options: data and setup', () => { + const mixinA = defineComponent({ + data() { + return { + a: 'from data', + } + }, + setup() { + return { + a: 'from setup', + } + }, + created(this: any) {}, + render() { + return `${this.a}` + }, + }) + expect(renderToString(h(mixinA))).toBe(`from setup`) + }) + + test('mix api options: setup and data', () => { + const mixinA = defineComponent({ + setup() { + return { + a: 'from setup', + } + }, + data() { + return { + a: 'from data', + } + }, + render() { + return `${this.a}` + }, + }) + expect(renderToString(h(mixinA))).toBe(`from setup`) + }) +})