UNPKG

filecoin-pin

Version:

Bridge IPFS content to Filecoin Onchain Cloud using familiar tools

32 lines (25 loc) 1.13 kB
import { describe, expect, it } from 'vitest' import { getStorageScale, STORAGE_SCALE_MAX } from '../../synapse/payments.js' describe('getStorageScale', () => { it('returns 1 for extremely large TiB', () => { const storageTiB = Number.MAX_SAFE_INTEGER // ensures floor(MAX_SAFE / storageTiB) === 0 expect(getStorageScale(storageTiB)).toBe(1) }) it('returns STORAGE_SCALE_MAX for tiny TiB', () => { const storageTiB = 1 / (STORAGE_SCALE_MAX * 10) expect(getStorageScale(storageTiB)).toBe(STORAGE_SCALE_MAX) }) it('returns 1 for zero and negative inputs', () => { expect(getStorageScale(0)).toBe(1) expect(getStorageScale(-123.45)).toBe(1) }) it('returns a limited scale when constrained by MAX_SAFE', () => { const expectedScale = 12_345 const storageTiB = Number.MAX_SAFE_INTEGER / expectedScale expect(getStorageScale(storageTiB)).toBe(expectedScale) }) it('returns STORAGE_SCALE_MAX exactly at the threshold boundary', () => { const storageTiB = Number.MAX_SAFE_INTEGER / STORAGE_SCALE_MAX expect(getStorageScale(storageTiB)).toBe(STORAGE_SCALE_MAX) }) })