filecoin-pin
Version:
Bridge IPFS content to Filecoin Onchain Cloud using familiar tools
26 lines • 1.25 kB
JavaScript
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);
});
});
//# sourceMappingURL=synapse-payments.test.js.map