Merge 7678a6ca9e
into 5f8314cb7f
This commit is contained in:
commit
807ccbd8f3
|
@ -33,10 +33,26 @@ describe('renderList', () => {
|
|||
renderList(3.1, () => {})
|
||||
} catch (e) {}
|
||||
expect(
|
||||
`The v-for range expect an integer value but got 3.1.`,
|
||||
`The v-for range expects a positive integer value but got 3.1.`,
|
||||
).toHaveBeenWarned()
|
||||
})
|
||||
|
||||
it('should warn when given a negative N', () => {
|
||||
try {
|
||||
renderList(-1, () => {})
|
||||
} catch (e) {}
|
||||
expect(
|
||||
`The v-for range expects a positive integer value but got -1.`,
|
||||
).toHaveBeenWarned()
|
||||
})
|
||||
|
||||
it('should NOT warn when given 0', () => {
|
||||
renderList(0, () => {})
|
||||
expect(
|
||||
`The v-for range expects a positive integer value but got 0.`,
|
||||
).not.toHaveBeenWarned()
|
||||
})
|
||||
|
||||
it('should render properties in an object', () => {
|
||||
expect(
|
||||
renderList(
|
||||
|
@ -58,6 +74,12 @@ describe('renderList', () => {
|
|||
).toEqual(['node 0: 1', 'node 1: 2', 'node 2: 3'])
|
||||
})
|
||||
|
||||
it('should return empty array when source is 0', () => {
|
||||
expect(
|
||||
renderList(0, (item, index) => `node ${index}: ${item}`),
|
||||
).toEqual([])
|
||||
})
|
||||
|
||||
it('should return empty array when source is undefined', () => {
|
||||
expect(
|
||||
renderList(undefined, (item, index) => `node ${index}: ${item}`),
|
||||
|
|
|
@ -91,8 +91,10 @@ export function renderList(
|
|||
)
|
||||
}
|
||||
} else if (typeof source === 'number') {
|
||||
if (__DEV__ && !Number.isInteger(source)) {
|
||||
warn(`The v-for range expect an integer value but got ${source}.`)
|
||||
if (__DEV__ && (!Number.isInteger(source) || source < 0)) {
|
||||
warn(
|
||||
`The v-for range expects a positive integer value but got ${source}.`,
|
||||
)
|
||||
}
|
||||
ret = new Array(source)
|
||||
for (let i = 0; i < source; i++) {
|
||||
|
|
|
@ -27,10 +27,24 @@ describe('ssr: renderList', () => {
|
|||
it('should warn when given a non-integer N', () => {
|
||||
ssrRenderList(3.1, () => {})
|
||||
expect(
|
||||
`The v-for range expect an integer value but got 3.1.`,
|
||||
`The v-for range expects a positive integer value but got 3.1.`,
|
||||
).toHaveBeenWarned()
|
||||
})
|
||||
|
||||
it('should warn when given a negative N', () => {
|
||||
ssrRenderList(-1, () => {})
|
||||
expect(
|
||||
`The v-for range expects a positive integer value but got -1.`,
|
||||
).toHaveBeenWarned()
|
||||
})
|
||||
|
||||
it('should NOT warn when given 0', () => {
|
||||
ssrRenderList(0, () => {})
|
||||
expect(
|
||||
`The v-for range expects a positive integer value but got 0.`,
|
||||
).not.toHaveBeenWarned()
|
||||
})
|
||||
|
||||
it('should render properties in an object', () => {
|
||||
ssrRenderList({ a: 1, b: 2, c: 3 }, (item, key, index) =>
|
||||
stack.push(`node ${index}/${key}: ${item}`),
|
||||
|
@ -51,6 +65,13 @@ describe('ssr: renderList', () => {
|
|||
expect(stack).toEqual(['node 0: 1', 'node 1: 2', 'node 2: 3'])
|
||||
})
|
||||
|
||||
it('should not render items when source is 0', () => {
|
||||
ssrRenderList(0, (item, index) =>
|
||||
stack.push(`node ${index}: ${item}`),
|
||||
)
|
||||
expect(stack).toEqual([])
|
||||
})
|
||||
|
||||
it('should not render items when source is undefined', () => {
|
||||
ssrRenderList(undefined, (item, index) =>
|
||||
stack.push(`node ${index}: ${item}`),
|
||||
|
|
|
@ -10,8 +10,10 @@ export function ssrRenderList(
|
|||
renderItem(source[i], i)
|
||||
}
|
||||
} else if (typeof source === 'number') {
|
||||
if (__DEV__ && !Number.isInteger(source)) {
|
||||
warn(`The v-for range expect an integer value but got ${source}.`)
|
||||
if (__DEV__ && (!Number.isInteger(source) || source < 0)) {
|
||||
warn(
|
||||
`The v-for range expects a positive integer value but got ${source}.`,
|
||||
)
|
||||
return
|
||||
}
|
||||
for (let i = 0; i < source; i++) {
|
||||
|
|
Loading…
Reference in New Issue