feat: implement jury member selection and sorting functionality, update related database migrations
This commit is contained in:
33
tests/int/jury-members.int.spec.ts
Normal file
33
tests/int/jury-members.int.spec.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
import { selectJuryDocs, sortJuryMembersQuoteFirst } from '@/spa/juryMembers'
|
||||
|
||||
describe('Netzwerk jury members', () => {
|
||||
const docs = [
|
||||
{ id: 1, name: 'First' },
|
||||
{ id: 2, name: 'Second' },
|
||||
{ id: 3, name: 'Third' },
|
||||
]
|
||||
|
||||
it('uses the CMS relationship selection when it is present', () => {
|
||||
expect(selectJuryDocs([3, { id: 1 }], docs).map((member) => member.id)).toEqual([3, 1])
|
||||
expect(selectJuryDocs([], docs)).toEqual([])
|
||||
expect(selectJuryDocs(undefined, docs)).toEqual(docs)
|
||||
})
|
||||
|
||||
it('places non-empty quotes first and preserves sort order within each group', () => {
|
||||
const members = [
|
||||
{ name: 'Unquoted early', quote: '', sortOrder: 1 },
|
||||
{ name: 'Quoted later', quote: 'Quote', sortOrder: 20 },
|
||||
{ name: 'Quoted earlier', quote: ' Another quote ', sortOrder: 10 },
|
||||
{ name: 'Unquoted later', quote: ' ', sortOrder: 30 },
|
||||
]
|
||||
|
||||
expect(sortJuryMembersQuoteFirst(members).map((member) => member.name)).toEqual([
|
||||
'Quoted earlier',
|
||||
'Quoted later',
|
||||
'Unquoted early',
|
||||
'Unquoted later',
|
||||
])
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user