mirror of https://github.com/vuejs/core.git
test(compiler-vapor): add index test for v-for (#13004)
This commit is contained in:
parent
d8ae428172
commit
5036f91ca4
|
@ -115,6 +115,21 @@ export function render(_ctx) {
|
||||||
}"
|
}"
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
exports[`compiler: v-for > object value, key and index 1`] = `
|
||||||
|
"import { child as _child, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, createFor as _createFor, template as _template } from 'vue';
|
||||||
|
const t0 = _template("<div> </div>", true)
|
||||||
|
|
||||||
|
export function render(_ctx) {
|
||||||
|
const n0 = _createFor(() => (_ctx.list), (_for_item0, _for_key0, _for_index0) => {
|
||||||
|
const n2 = t0()
|
||||||
|
const x2 = _child(n2)
|
||||||
|
_renderEffect(() => _setText(x2, _toDisplayString(_for_item0.value + _for_key0.value + _for_index0.value)))
|
||||||
|
return n2
|
||||||
|
}, (value, key, index) => (key))
|
||||||
|
return n0
|
||||||
|
}"
|
||||||
|
`;
|
||||||
|
|
||||||
exports[`compiler: v-for > v-for aliases w/ complex expressions 1`] = `
|
exports[`compiler: v-for > v-for aliases w/ complex expressions 1`] = `
|
||||||
"import { getDefaultValue as _getDefaultValue, child as _child, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, createFor as _createFor, template as _template } from 'vue';
|
"import { getDefaultValue as _getDefaultValue, child as _child, toDisplayString as _toDisplayString, setText as _setText, renderEffect as _renderEffect, createFor as _createFor, template as _template } from 'vue';
|
||||||
const t0 = _template("<div> </div>", true)
|
const t0 = _template("<div> </div>", true)
|
||||||
|
|
|
@ -119,6 +119,32 @@ describe('compiler: v-for', () => {
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test('object value, key and index', () => {
|
||||||
|
const { code, ir } = compileWithVFor(
|
||||||
|
`<div v-for="(value, key, index) in list" :key="key">{{ value + key + index }}</div>`,
|
||||||
|
)
|
||||||
|
expect(code).matchSnapshot()
|
||||||
|
expect(ir.block.operation[0]).toMatchObject({
|
||||||
|
type: IRNodeTypes.FOR,
|
||||||
|
source: {
|
||||||
|
type: NodeTypes.SIMPLE_EXPRESSION,
|
||||||
|
content: 'list',
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
type: NodeTypes.SIMPLE_EXPRESSION,
|
||||||
|
content: 'value',
|
||||||
|
},
|
||||||
|
key: {
|
||||||
|
type: NodeTypes.SIMPLE_EXPRESSION,
|
||||||
|
content: 'key',
|
||||||
|
},
|
||||||
|
index: {
|
||||||
|
type: NodeTypes.SIMPLE_EXPRESSION,
|
||||||
|
content: 'index',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
test('object de-structured value', () => {
|
test('object de-structured value', () => {
|
||||||
const { code, ir } = compileWithVFor(
|
const { code, ir } = compileWithVFor(
|
||||||
'<span v-for="({ id, value }) in items" :key="id">{{ id }}{{ value }}</span>',
|
'<span v-for="({ id, value }) in items" :key="id">{{ id }}{{ value }}</span>',
|
||||||
|
|
Loading…
Reference in New Issue