test(server-renderer): implement ssrRenderList tests (#726)

This commit is contained in:
hareku 2020-02-16 01:42:38 +09:00 committed by GitHub
parent 8a4412077c
commit 66e7d7f28e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,3 +1,53 @@
test('ssr: renderList', () => {
// TODO
import { ssrRenderList } from '../src/helpers/ssrRenderList'
describe('ssr: renderList', () => {
let stack: string[] = []
beforeEach(() => {
stack = []
})
it('should render items in an array', () => {
ssrRenderList(['1', '2', '3'], (item, index) =>
stack.push(`node ${index}: ${item}`)
)
expect(stack).toEqual(['node 0: 1', 'node 1: 2', 'node 2: 3'])
})
it('should render characters of a string', () => {
ssrRenderList('abc', (item, index) => stack.push(`node ${index}: ${item}`))
expect(stack).toEqual(['node 0: a', 'node 1: b', 'node 2: c'])
})
it('should render integers 1 through N when given a number N', () => {
ssrRenderList(3, (item, index) => stack.push(`node ${index}: ${item}`))
expect(stack).toEqual(['node 0: 1', 'node 1: 2', 'node 2: 3'])
})
it('should render properties in an object', () => {
ssrRenderList({ a: 1, b: 2, c: 3 }, (item, key, index) =>
stack.push(`node ${index}/${key}: ${item}`)
)
expect(stack).toEqual(['node 0/a: 1', 'node 1/b: 2', 'node 2/c: 3'])
})
it('should render an item for entry in an iterable', () => {
const iterable = function*() {
yield 1
yield 2
yield 3
}
ssrRenderList(iterable(), (item, index) =>
stack.push(`node ${index}: ${item}`)
)
expect(stack).toEqual(['node 0: 1', 'node 1: 2', 'node 2: 3'])
})
it('should not render items when source is undefined', () => {
ssrRenderList(undefined, (item, index) =>
stack.push(`node ${index}: ${item}`)
)
expect(stack).toEqual([])
})
})