codeburn/tests/minimax.test.ts
iamtoruk 81b5cda173 feat: add MiniMax-M2.7 and MiniMax-M2.7-highspeed model pricing
Adds FALLBACK_PRICING entries plus display names so MiniMax sessions
show up with the right cost and readable labels when users route MiniMax
through providers like OpenCode. Pricing verified against the live
MiniMax paygo page:

  MiniMax-M2.7           input $0.3/M  output $1.2/M  cache-read $0.06/M  cache-write $0.375/M
  MiniMax-M2.7-highspeed input $0.6/M  output $2.4/M  cache-read $0.06/M  cache-write $0.375/M
2026-04-21 05:50:52 -07:00

48 lines
1.9 KiB
TypeScript

import { describe, it, expect } from 'vitest'
import { getModelCosts, getShortModelName } from '../src/models.js'
// Verifies MiniMax pricing loaded from FALLBACK_PRICING (no network call).
// pricingCache stays null until loadPricing() runs, so getModelCosts falls
// through to FALLBACK_PRICING which is what we want to validate here.
describe('MiniMax model pricing', () => {
it('returns pricing for MiniMax-M2.7', () => {
const costs = getModelCosts('MiniMax-M2.7')
expect(costs).not.toBeNull()
expect(costs!.inputCostPerToken).toBe(0.3e-6)
expect(costs!.outputCostPerToken).toBe(1.2e-6)
expect(costs!.cacheReadCostPerToken).toBe(0.06e-6)
expect(costs!.cacheWriteCostPerToken).toBe(0.375e-6)
expect(costs!.fastMultiplier).toBe(1)
})
it('returns pricing for MiniMax-M2.7-highspeed', () => {
const costs = getModelCosts('MiniMax-M2.7-highspeed')
expect(costs).not.toBeNull()
expect(costs!.inputCostPerToken).toBe(0.6e-6)
expect(costs!.outputCostPerToken).toBe(2.4e-6)
expect(costs!.cacheReadCostPerToken).toBe(0.06e-6)
expect(costs!.cacheWriteCostPerToken).toBe(0.375e-6)
expect(costs!.fastMultiplier).toBe(1)
})
it('highspeed pricing is distinct from base model pricing', () => {
const base = getModelCosts('MiniMax-M2.7')
const fast = getModelCosts('MiniMax-M2.7-highspeed')
expect(fast!.inputCostPerToken).toBeGreaterThan(base!.inputCostPerToken)
expect(fast!.outputCostPerToken).toBeGreaterThan(base!.outputCostPerToken)
})
it('returns short name for MiniMax-M2.7', () => {
expect(getShortModelName('MiniMax-M2.7')).toBe('MiniMax M2.7')
})
it('returns short name for MiniMax-M2.7-highspeed', () => {
expect(getShortModelName('MiniMax-M2.7-highspeed')).toBe('MiniMax M2.7 Highspeed')
})
it('handles MiniMax model ID with date suffix', () => {
expect(getShortModelName('MiniMax-M2.7-20260101')).toBe('MiniMax M2.7')
})
})