Skip to content

Commit

Permalink
add unit test and fix lint
Browse files Browse the repository at this point in the history
  • Loading branch information
huozhi committed Feb 16, 2023
1 parent 86dee44 commit dfe2364
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 1 deletion.
37 changes: 37 additions & 0 deletions packages/next/src/lib/metadata/resolve-metadata.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import { accumulateMetadata, MetadataItems } from './resolve-metadata'

describe('accumulateMetadata', () => {
describe('merge title', () => {
it('should merge page title', async () => {
const metadataItems: MetadataItems = [
[{ title: 'root' }, null],
[{ title: 'layout' }, null],
[{ title: 'page' }, null],
]
const metadata = await accumulateMetadata(metadataItems)
expect(metadata).toMatchObject({
title: { absolute: 'page', template: null },
})
})

it('should merge page title', async () => {
const metadataItems: MetadataItems = [
[{ title: 'root' }, null],
[
{ title: { absolute: 'layout', template: '1st parent layout %s' } },
null,
],
[
{ title: { absolute: 'layout', template: '2nd parent layout %s' } },
null,
],
[null, null], // same level layout
[{ title: 'page' }, null],
]
const metadata = await accumulateMetadata(metadataItems)
expect(metadata).toMatchObject({
title: { absolute: '2nd parent layout page', template: null },
})
})
})
})
1 change: 0 additions & 1 deletion packages/next/src/lib/metadata/resolve-metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import type {
ResolvedMetadata,
ResolvingMetadata,
} from './types/metadata-interface'
import type { AbsoluteTemplateString } from './types/metadata-types'
import type { MetadataImageModule } from '../../build/webpack/loaders/metadata/types'
import { createDefaultMetadata } from './default-metadata'
import { resolveOpenGraph, resolveTwitter } from './resolvers/resolve-opengraph'
Expand Down
22 changes: 22 additions & 0 deletions packages/next/src/lib/metadata/resolvers/resolve-title.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import { resolveTitle } from './resolve-title'

describe('resolveTitle', () => {
it('should resolve nullable template as empty string title', () => {
expect(resolveTitle('', null)).toEqual({ absolute: '', template: null })
expect(resolveTitle(null, null)).toEqual({ absolute: '', template: null })
})

it('should resolve title with template', () => {
// returned template should equal the input title's template
expect(resolveTitle('title', 'dash %s')).toEqual({
absolute: 'dash title',
template: null,
})
expect(
resolveTitle({ default: 'title', template: '%s | absolute' }, 'dash %s')
).toEqual({ absolute: 'dash title', template: '%s | absolute' })
expect(
resolveTitle({ default: '', template: '%s | absolute' }, 'fake template')
).toEqual({ absolute: 'fake template', template: '%s | absolute' })
})
})

0 comments on commit dfe2364

Please sign in to comment.