This commit is contained in:
korjik 2026-04-22 10:00:03 -07:00
parent 58776ca983
commit b5e620b981
5 changed files with 419 additions and 0 deletions

View file

@ -212,4 +212,61 @@ describe('OpenAI', () => {
expect(result[1].reason).to.contain('omitted this media file')
})
})
describe('validateDuplicateBooksPayload', () => {
it('normalizes valid duplicate-book groups', () => {
const result = openAI.validateDuplicateBooksPayload(
{
groups: [
{
keepId: 'a',
duplicateIds: ['b', 'c'],
reason: 'same book'
}
]
},
[{ id: 'a' }, { id: 'b' }, { id: 'c' }]
)
expect(result).to.deep.equal([
{
keepId: 'a',
duplicateIds: ['b', 'c'],
reason: 'same book'
}
])
})
it('ignores invalid and overlapping duplicate-book groups', () => {
const result = openAI.validateDuplicateBooksPayload(
{
groups: [
{
keepId: 'a',
duplicateIds: ['b', 'missing', 'a'],
reason: 'primary match'
},
{
keepId: 'b',
duplicateIds: ['c'],
reason: 'should be skipped because b was consumed'
},
{
keepId: 'z',
duplicateIds: ['c']
}
]
},
[{ id: 'a' }, { id: 'b' }, { id: 'c' }]
)
expect(result).to.deep.equal([
{
keepId: 'a',
duplicateIds: ['b'],
reason: 'primary match'
}
])
})
})
})