From 2f75d2f872c4ab95c108b183ff5efb44febc8ab1 Mon Sep 17 00:00:00 2001 From: Kael Date: Thu, 30 Mar 2023 04:10:54 +1100 Subject: [PATCH] add test --- .../test/__snapshots__/snapshot.test.ts.snap | 24 +++++++++++++++++++ .../babel-plugin-jsx/test/snapshot.test.ts | 22 +++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/packages/babel-plugin-jsx/test/__snapshots__/snapshot.test.ts.snap b/packages/babel-plugin-jsx/test/__snapshots__/snapshot.test.ts.snap index fe97df9..982aed0 100644 --- a/packages/babel-plugin-jsx/test/__snapshots__/snapshot.test.ts.snap +++ b/packages/babel-plugin-jsx/test/__snapshots__/snapshot.test.ts.snap @@ -153,6 +153,17 @@ exports[`override props single > single 1`] = ` _createVNode("div", a, null);" `; +exports[`passing object slots via JSX children directive in slot > directive in slot 1`] = ` +"import { Fragment as _Fragment, resolveDirective as _resolveDirective, createVNode as _createVNode, withDirectives as _withDirectives, resolveComponent as _resolveComponent } from "vue"; +_createVNode(_Fragment, null, [_createVNode(_resolveComponent("A"), null, { + default: () => [_withDirectives(_createVNode("div", null, null, 512), [[_resolveDirective("xxx")]]), foo] +}), _createVNode(_resolveComponent("A"), null, { + default: () => [_createVNode(_resolveComponent("B"), null, { + default: () => [_withDirectives(_createVNode("div", null, null, 512), [[_resolveDirective("xxx")]]), foo] + })] +})]);" +`; + exports[`passing object slots via JSX children multiple expressions > multiple expressions 1`] = ` "import { resolveComponent as _resolveComponent, createVNode as _createVNode } from "vue"; _createVNode(_resolveComponent("A"), null, { @@ -161,6 +172,19 @@ _createVNode(_resolveComponent("A"), null, { });" `; +exports[`passing object slots via JSX children no directive in slot > no directive in slot 1`] = ` +"import { Fragment as _Fragment, createVNode as _createVNode, resolveComponent as _resolveComponent } from "vue"; +_createVNode(_Fragment, null, [_createVNode(_resolveComponent("A"), null, { + default: () => [_createVNode("div", null, null), foo], + _: 1 +}), _createVNode(_resolveComponent("A"), null, { + default: () => [_createVNode(_resolveComponent("B"), null, { + default: () => [_createVNode("div", null, null), foo], + _: 1 + })] +})]);" +`; + exports[`passing object slots via JSX children single expression, function expression > single expression, function expression 1`] = ` "import { resolveComponent as _resolveComponent, createVNode as _createVNode } from "vue"; _createVNode(_resolveComponent("A"), null, { diff --git a/packages/babel-plugin-jsx/test/snapshot.test.ts b/packages/babel-plugin-jsx/test/snapshot.test.ts index e1488fd..e1a2cff 100644 --- a/packages/babel-plugin-jsx/test/snapshot.test.ts +++ b/packages/babel-plugin-jsx/test/snapshot.test.ts @@ -255,6 +255,28 @@ const slotsTests: Test[] = [ {foo()}; `, }, + { + name: 'no directive in slot', + from: ` + <> +
{foo} + +
{foo} + + + `, + }, + { + name: 'directive in slot', + from: ` + <> +
{foo} + +
{foo} + + + `, + }, ]; slotsTests.forEach(({ name, from }) => {