@roxi/routify
Version:
121 lines (105 loc) • 4.94 kB
JavaScript
import { dirname } from 'path'
import { fileURLToPath } from 'url'
import { readFile } from 'fs/promises'
import { flexMapsPlugin } from '../index.js'
import { filemapper } from '../../../lib/buildtime/plugins/filemapper/lib/index.js'
import { RoutifyBuildtime } from '../../../lib/buildtime/RoutifyBuildtime.js'
const __dirname = dirname(fileURLToPath(import.meta.url))
const nameAndPath = node => `${node.name} (${node.file.path})`
const options = {
routifyDir: `${__dirname}/temp`,
routesDir: {
default: `${__dirname}/example`,
basicOnly: `${__dirname}/example`,
withPriorities: `${__dirname}/example`,
},
}
describe('flexMap plugin', async () => {
const instance = new RoutifyBuildtime(options)
const [createRouteDirs, mergeVariantRoutes] = flexMapsPlugin({
variationsMap: {
basicOnly: ['en', 'en-us', 'de'],
withPriorities: ['en-us,en', 'en', 'de'],
},
})
describe('createRouteDirs', async () => {
await createRouteDirs.build({ instance, tools: null })
await filemapper({ instance })
test('basic', () => {
assert.ok(instance.options.routesDir['basicOnly_en'])
assert.ok(instance.options.routesDir['basicOnly_de'])
})
test('withPriorities', () => {
assert.ok(instance.options.routesDir['withPriorities_en-us'])
assert.ok(instance.options.routesDir['withPriorities_en'])
assert.ok(instance.options.routesDir['withPriorities_de'])
})
})
describe('mergeVariantRoutes', async () => {
await mergeVariantRoutes.build({ instance, tools: null })
test('rootNodes', () => {
assert.ok(instance.rootNodes.default)
assert.ok(instance.rootNodes.basicOnly_en)
assert.ok(instance.rootNodes.basicOnly_de)
assert.ok(instance.rootNodes.withPriorities_en)
assert.ok(instance.rootNodes['withPriorities_en-us'])
assert.ok(instance.rootNodes.withPriorities_de)
})
test('default', () => {
assert.deepEqual(instance.rootNodes.default.children.map(nameAndPath), [
'about.de (plugins/flexMap/spec/example/about.de.svelte)',
'about.en (plugins/flexMap/spec/example/about.en.svelte)',
'about (plugins/flexMap/spec/example/about.svelte)',
'index.de (plugins/flexMap/spec/example/index.de.svelte)',
'index.en-us (plugins/flexMap/spec/example/index.en-us.svelte)',
'index.en (plugins/flexMap/spec/example/index.en.svelte)',
'index (plugins/flexMap/spec/example/index.svelte)',
'[...404] (plugins/flexMap/spec/temp/components/[...404].svelte)',
])
})
test('basic_en', () => {
assert.deepEqual(instance.rootNodes.basicOnly_en.children.map(nameAndPath), [
'about (plugins/flexMap/spec/example/about.en.svelte)',
'index (plugins/flexMap/spec/example/index.en.svelte)',
'[...404] (plugins/flexMap/spec/temp/components/[...404].svelte)',
])
})
test('basic_de', () => {
assert.deepEqual(instance.rootNodes.basicOnly_de.children.map(nameAndPath), [
'about (plugins/flexMap/spec/example/about.de.svelte)',
'index (plugins/flexMap/spec/example/index.de.svelte)',
'[...404] (plugins/flexMap/spec/temp/components/[...404].svelte)',
])
})
test('withPriorities_en', () => {
assert.deepEqual(
instance.rootNodes.withPriorities_en.children.map(nameAndPath),
[
'about (plugins/flexMap/spec/example/about.en.svelte)',
'index (plugins/flexMap/spec/example/index.en.svelte)',
'[...404] (plugins/flexMap/spec/temp/components/[...404].svelte)',
],
)
})
test('withPriorities_en-us', () => {
assert.deepEqual(
instance.rootNodes['withPriorities_en-us'].children.map(nameAndPath),
[
'about (plugins/flexMap/spec/example/about.en.svelte)',
'index (plugins/flexMap/spec/example/index.en-us.svelte)',
'[...404] (plugins/flexMap/spec/temp/components/[...404].svelte)',
],
)
})
test('withPriorities_de', () => {
assert.deepEqual(
instance.rootNodes.withPriorities_de.children.map(nameAndPath),
[
'about (plugins/flexMap/spec/example/about.de.svelte)',
'index (plugins/flexMap/spec/example/index.de.svelte)',
'[...404] (plugins/flexMap/spec/temp/components/[...404].svelte)',
],
)
})
})
})