rarity.test.js
703 Bytes
import { describe, expect, it } from 'vitest'
import { maxRarityForLevel, rarityForReward } from '../src/rarity.js'
describe('稀有度区间与等级上限的边界值', () => {
it.each([[1, 1], [49, 1], [50, 2], [99, 2], [100, 3], [12799, 9], [12800, 10], [1_000_000, 10]])('reward %i → rarity %i', (reward, rarity) => {
expect(rarityForReward(reward)).toBe(rarity)
})
it.each([[1, 3], [2, 4], [8, 10], [50, 10]])('level %i → 上限 %i', (level, max) => {
expect(maxRarityForLevel(level)).toBe(max)
})
it('非法输入直接 throw', () => {
expect(() => rarityForReward(0)).toThrow(/reward invalid/)
expect(() => maxRarityForLevel(0)).toThrow(/level invalid/)
})
})