StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
StackGenVis/frontend/node_modules/babel-plugin-jsx-v-model/test/test.js

263 lines
3.4 KiB

4 years ago
import test from 'ava'
import { transform } from 'babel-core'
const transpile = src => {
return transform(src, {
plugins: './index'
}).code.trim()
}
const testTranspile = (title, code) => {
test(title, t => {
const compiled = transpile(code)
t.snapshot(code, 'Initial code')
t.snapshot(compiled, 'Compiled code')
})
}
const testError = (title, code) => {
test(title, t => {
const error = t.throws(() => transpile(code), SyntaxError)
t.snapshot(code, 'Initial code')
t.snapshot(error.message, 'Error mesage')
})
}
testError(
'Error: input[type={dynamic}, v-model]',
`
<input
type={e}
v-model={a.b}
/>
`
)
testError(
'Error: input[v-model:invalidModifier]',
`
<input
v-model:invalidModifier={a.b}
/>
`
)
testError(
'Error: input[v-model, v-model]',
`
<input
v-model={a.b}
v-model={a.b}
/>
`
)
testError(
'Error: input[v-model="string literal"]',
`
<input
v-model="string literal"
/>
`
)
testError(
'Error: input[v-model={identifier}]',
`
<input
v-model={identifier}
/>
`
)
testError(
'Error: h3',
`
<h3
v-model={a.b}
/>
`
)
testError(
'Error: select[v-model:trim]',
`
<select
v-model:trim={a.b}
/>
`
)
testError(
'Error: input[type="checkbox",v-model:trim]',
`
<input
type="checkbox"
v-model:trim={a.b}
/>
`
)
testError(
'Error: input[type="radio",v-model:trim]',
`
<input
type="radio"
v-model:trim={a.b}
/>
`
)
testError(
'Error: input[type="file",v-model]',
`
<input
type="file"
v-model={a.b}
/>
`
)
testTranspile(
'Ignores namespaced attributes',
`
<input
onClick:prevent={hey}
/>
`
)
testTranspile(
'textarea[v-model]',
`
<textarea
v-model={a.b}
/>
`
)
testTranspile(
'input[v-model]',
`
<input
v-model={a.b}
/>
`
)
testTranspile(
'input[v-model={a.b[c.d[e]]}]',
`
<input
v-model={a.b[c.d[e]]}
/>
`
)
testTranspile(
'input[type="range", v-model]',
`
<input
type="range"
v-model={a.b}
/>
`
)
testTranspile(
'input[v-model:lazy]',
`
<input
v-model:lazy={a.b}
/>
`
)
testTranspile(
'input[v-model:number]',
`
<input
v-model:number={a.b}
/>
`
)
testTranspile(
'input[v-model:trim]',
`
<input
v-model:trim={a.b}
/>
`
)
testTranspile(
'input[type="checkbox", v-model]',
`
<input
type="checkbox"
v-model={a.b}
{...spreadForCoverage}
/>
`
)
testTranspile(
'input[type="checkbox", value="forArray", true-value={{hello: true}}, false-value={{hello: false}}, v-model:number]',
`
<input
type="checkbox"
v-model:number={a.b}
value="forArray"
true-value={{hello: true}}
false-value={{hello: false}}
{...spreadForCoverage}
/>
`
)
testTranspile(
'input[type="radio", v-model]',
`
<input
type="radio"
v-model={a.b}
{...spreadForCoverage}
/>
`
)
testTranspile(
'input[type="radio", value="101", v-model:number]',
`
<input
type="radio"
value="101"
v-model:number={a.b}
{...spreadForCoverage}
/>
`
)
testTranspile(
'select',
`
<select
v-model={a.b}
/>
`
)
testTranspile(
'select[v-model:number]',
`
<select
v-model:number={a.b}
/>
`
)
testTranspile(
'custom-element[v-model]',
`
<custom-element
v-model={a.b}
/>
`
)
testTranspile(
'custom-element[v-model:trim]',
`
<custom-element
v-model:trim={a.b}
/>
`
)
testTranspile(
'custom-element[v-model:number]',
`
<custom-element
v-model:number={a.b}
/>
`
)