fix(cms): filter unpublished relationships

This commit is contained in:
syntaxbullet
2026-07-31 14:10:44 +02:00
parent fec1bab2e5
commit b18bbbe36a
7 changed files with 467 additions and 22 deletions

View File

@@ -18,7 +18,11 @@ const published2025Winners: CmsRouteDoc[] = Array.from({ length: 9 }, (_, index)
describe('home winner selection', () => {
it('uses a non-empty CMS selection without appending winners from the fallback year', () => {
const featured = selected2026Winners.map(({ id }) => id)
const winners = resolveHomeWinners(featured, [...selected2026Winners, ...published2025Winners], [])
const winners = resolveHomeWinners(
featured,
[...selected2026Winners, ...published2025Winners],
[],
)
expect(winners).toEqual(selected2026Winners)
expect(winners.some((winner) => winner.year === 2025)).toBe(false)
@@ -29,4 +33,26 @@ describe('home winner selection', () => {
expect(winners).toEqual(published2025Winners.slice(0, 8))
})
it('omits an unpublished selected winner without changing the remaining page order', () => {
const [first, unpublished, third] = selected2026Winners
const selection = [third, { ...unpublished, image: { id: 99 } }, first]
const publicWinners = resolveHomeWinners(selection, [first, third], published2025Winners)
const previewWinners = resolveHomeWinners(
selection,
[first, unpublished, third],
published2025Winners,
)
expect(publicWinners).toEqual([third, first])
expect(previewWinners).toEqual([third, unpublished, first])
})
it('does not replace an entirely unpublished CMS selection with fallback winners', () => {
const [unpublished] = selected2026Winners
expect(
resolveHomeWinners([{ ...unpublished, image: { id: 99 } }], [], published2025Winners),
).toEqual([])
})
})