space-router
Version:
All the routing essentials.
59 lines (55 loc) • 1.41 kB
JavaScript
import test from 'ava'
import { flatten } from '../src/router'
test('converts array of routes to array of internal route descriptors', (t) => {
t.deepEqual(
flatten([
{ path: '/foo', a: 'foo' },
{ path: '/bar', a: 'bar' },
]),
[
{ pattern: '/foo', data: [{ a: 'foo' }] },
{ pattern: '/bar', data: [{ a: 'bar' }] },
],
)
})
test('handles nested routes', (t) => {
t.deepEqual(
flatten([
{
component: 'root',
routes: [
{
path: '/foo',
component: 'foo',
routes: [
{
path: '/foo/bar',
component: 'bar',
},
],
},
],
},
{
path: '/second',
component: 'second-root',
routes: [
{
path: '/baz/*',
component: 'baz',
},
],
},
]),
[
{ pattern: '', data: [{ component: 'root' }] },
{ pattern: '/foo', data: [{ component: 'root' }, { component: 'foo' }] },
{ pattern: '/foo/bar', data: [{ component: 'root' }, { component: 'foo' }, { component: 'bar' }] },
{ pattern: '/second', data: [{ component: 'second-root' }] },
{ pattern: '/baz/*', data: [{ component: 'second-root' }, { component: 'baz' }] },
],
)
})
test('handles empty array', (t) => {
t.deepEqual(flatten([]), [])
})