Skip to content

Commit 8ebddbf

Browse files
committed
chore: Add example test
1 parent cef09bb commit 8ebddbf

File tree

2 files changed

+48
-7
lines changed

2 files changed

+48
-7
lines changed

packages/babel-sugar-event/src/index.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,12 +180,9 @@ export default function (babel) {
180180
genModifierCode.push(
181181
genGuard(
182182
keyModifiers
183-
.filter(keyModifier => !modifiers[keyModifier])
183+
.filter(keyModifier => !modifiers.includes(keyModifier))
184184
.map(keyModifier => genEventExpression(keyModifier + 'Key'))
185-
.reduce((acc, item) => {
186-
if (acc) return or(acc, item)
187-
return acc
188-
}),
185+
.reduce((acc, item) => acc ? or(acc, item) : item),
189186
),
190187
)
191188
} else {
@@ -201,7 +198,7 @@ export default function (babel) {
201198
code.concat(genModifierCode)
202199
}
203200

204-
code.concat(
201+
code.push(
205202
t.returnStatement(genCallExpression(expression, [t.identifier('$event')]))
206203
)
207204

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,45 @@
1-
// Nick will take care of this.
1+
import test from 'ava'
2+
import {
3+
transform
4+
} from '@babel/core'
5+
import plugin from '../dist/plugin.testing'
6+
7+
const transpile = src =>
8+
new Promise((resolve, reject) => {
9+
transform(
10+
src, {
11+
plugins: [plugin],
12+
},
13+
(err, result) => {
14+
if (err) {
15+
return reject(err)
16+
}
17+
resolve(result.code)
18+
},
19+
)
20+
})
21+
22+
const tests = [{
23+
name: 'HTML tag',
24+
from: `render(h => <div v-on:click={event => event.ok}>test</div>)`,
25+
to: `render(h => h("div", ["test"]));`,
26+
}]
27+
28+
tests.forEach(({
29+
name,
30+
from,
31+
to
32+
}) => test(name, async t => t.is(await transpile(from), to)))
33+
34+
test('JSXElement attribute value throws error', t =>
35+
new Promise(resolve => {
36+
transpile(`render(h => <a key=<b/> />)`)
37+
.then(() => {
38+
t.fail()
39+
resolve()
40+
})
41+
.catch(e => {
42+
t.is(e.message, 'getAttributes (attribute value): JSXElement is not supported')
43+
resolve()
44+
})
45+
}))

0 commit comments

Comments
 (0)