Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
62e03e6a
U
uni-app
项目概览
DCloud
/
uni-app
2 个月 前同步成功
通知
714
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
62e03e6a
编写于
6月 16, 2022
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
test(mp): mergeVirtualHostAttributes
上级
c134b5f2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
167 addition
and
3 deletion
+167
-3
packages/uni-template-compiler/__tests__/compiler-mp-alipay.spec.js
...ni-template-compiler/__tests__/compiler-mp-alipay.spec.js
+35
-0
packages/uni-template-compiler/__tests__/compiler.spec.js
packages/uni-template-compiler/__tests__/compiler.spec.js
+132
-3
未找到文件。
packages/uni-template-compiler/__tests__/compiler-mp-alipay.spec.js
浏览文件 @
62e03e6a
...
...
@@ -204,6 +204,41 @@ describe('mp:compiler-mp-alipay', () => {
)
})
it
(
'
generate attrs with mergeVirtualHostAttributes
'
,
()
=>
{
assertCodegen
(
'
<custom-view>hello world</custom-view>
'
,
'
<custom-view vue-id="551070e6-1" onVueInit="__l" virtualHostStyle="{{virtualHostStyle}}" virtualHostClass="{{(virtualHostClass)}}">hello world</custom-view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<custom-view :class="class1" :style="style">hello world</custom-view>
'
,
'
<custom-view vue-id="551070e6-1" onVueInit="__l" virtualHostStyle="{{(style)+virtualHostStyle}}" virtualHostClass="{{((class1)+
\'
\'
+virtualHostClass)}}">hello world</custom-view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view><custom-view>hello world</custom-view></view>
'
,
'
<view class="{{(virtualHostClass)}}" style="{{virtualHostStyle}}"><custom-view vue-id="551070e6-1" onVueInit="__l">hello world</custom-view></view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view><custom-view :class="class1" :style="style">hello world</custom-view></view>
'
,
'
<view class="{{(virtualHostClass)}}" style="{{virtualHostStyle}}"><custom-view vue-id="551070e6-1" onVueInit="__l" virtualHostStyle="{{(style)}}" virtualHostClass="{{(class1)}}">hello world</custom-view></view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
})
it
(
'
generate getPhoneNumber
'
,
()
=>
{
assertCodegen
(
'
<button open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">获取手机号</button>
'
,
...
...
packages/uni-template-compiler/__tests__/compiler.spec.js
浏览文件 @
62e03e6a
const
compiler
=
require
(
'
../lib
'
)
function
assertCodegen
(
template
,
templateCode
,
renderCode
=
'
with(this){}
'
)
{
function
assertCodegen
(
template
,
templateCode
,
renderCode
=
'
with(this){}
'
,
options
=
{}
)
{
const
res
=
compiler
.
compile
(
template
,
{
resourcePath
:
'
test.wxml
'
,
mp
:
{
mp
:
Object
.
assign
(
{
minified
:
true
,
isTest
:
true
,
platform
:
'
mp-weixin
'
}
}
,
options
)
})
expect
(
res
.
template
).
toBe
(
templateCode
)
...
...
@@ -253,6 +253,108 @@ describe('mp:compiler', () => {
// )
})
it
(
'
generate attrs with mergeVirtualHostAttributes
'
,
()
=>
{
assertCodegen
(
'
<view>hello world</view>
'
,
'
<view class="{{[virtualHostClass]}}" style="{{virtualHostStyle}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view><view>hello world</view></view>
'
,
'
<view class="{{[virtualHostClass]}}" style="{{virtualHostStyle}}"><view>hello world</view></view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<custom-view>hello world</custom-view>
'
,
'
<custom-view vue-id="551070e6-1" class="{{[virtualHostClass]}}" style="{{virtualHostStyle}}" bind:__l="__l" virtualHostStyle="{{virtualHostStyle}}" virtualHostClass="{{[virtualHostClass]}}" vue-slots="{{[
\'
default
\'
]}}">hello world</custom-view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<custom-view :class="class1" :style="style">hello world</custom-view>
'
,
'
<custom-view class="{{[class1,virtualHostClass]}}" style="{{(style)+virtualHostStyle}}" vue-id="551070e6-1" bind:__l="__l" virtualHostStyle="{{(style)+virtualHostStyle}}" virtualHostClass="{{[class1,virtualHostClass]}}" vue-slots="{{[
\'
default
\'
]}}">hello world</custom-view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view><custom-view>hello world</custom-view></view>
'
,
'
<view class="{{[virtualHostClass]}}" style="{{virtualHostStyle}}"><custom-view vue-id="551070e6-1" bind:__l="__l" vue-slots="{{[
\'
default
\'
]}}">hello world</custom-view></view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view><custom-view :class="class1" :style="style">hello world</custom-view></view>
'
,
'
<view class="{{[virtualHostClass]}}" style="{{virtualHostStyle}}"><custom-view class="{{[class1]}}" style="{{(style)}}" vue-id="551070e6-1" bind:__l="__l" virtualHostStyle="{{(style)}}" virtualHostClass="{{[class1]}}" vue-slots="{{[
\'
default
\'
]}}">hello world</custom-view></view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
})
it
(
'
generate class with mergeVirtualHostAttributes
'
,
()
=>
{
assertCodegen
(
'
<view class="a">hello world</view>
'
,
'
<view class="{{[
\'
a
\'
,virtualHostClass]}}" style="{{virtualHostStyle}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view :class="class1">hello world</view>
'
,
'
<view class="{{[class1,virtualHostClass]}}" style="{{virtualHostStyle}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view :class="[class1,class2]">hello world</view>
'
,
'
<view class="{{[class1,class2,virtualHostClass]}}" style="{{virtualHostStyle}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view :class="{class1,class2}">hello world</view>
'
,
'
<view class="{{[(class1)?
\'
class1
\'
:
\'\'
,(class2)?
\'
class2
\'
:
\'\'
,virtualHostClass]}}" style="{{virtualHostStyle}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view class="a external-class c" :class="class1">hello world</view>
'
,
'
<view class="{{[
\'
a
\'
,
\'
external-class
\'
,
\'
c
\'
,class1,virtualHostClass]}}" style="{{virtualHostStyle}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view class="a external-class c" :class="class1"><view class="a external-class c" :class="class1">hello world</view></view>
'
,
'
<view class="{{[
\'
a
\'
,
\'
external-class
\'
,
\'
c
\'
,class1,virtualHostClass]}}" style="{{virtualHostStyle}}"><view class="{{[
\'
a
\'
,
\'
external-class
\'
,
\'
c
\'
,class1]}}">hello world</view></view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
})
it
(
'
generate staticStyle
'
,
()
=>
{
assertCodegen
(
'
<view style="height:400upx">hello world</view>
'
,
...
...
@@ -272,6 +374,33 @@ describe('mp:compiler', () => {
// )
})
it
(
'
generate style with mergeVirtualHostAttributes
'
,
()
=>
{
assertCodegen
(
'
<view style="color:red">hello world</view>
'
,
'
<view class="{{[virtualHostClass]}}" style="{{
\'
color:red;
\'
+virtualHostStyle}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view :style="style">hello world</view>
'
,
'
<view style="{{(style)+virtualHostStyle}}" class="{{[virtualHostClass]}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
assertCodegen
(
'
<view :style="{color}">hello world</view>
'
,
'
<view style="{{
\'
color:
\'
+(color)+
\'
;
\'
+virtualHostStyle}}" class="{{[virtualHostClass]}}">hello world</view>
'
,
'
with(this){}
'
,
{
mergeVirtualHostAttributes
:
true
}
)
})
it
(
'
generate v-show directive
'
,
()
=>
{
assertCodegen
(
'
<view v-show="shown">hello world</view>
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录