@joystick.js/db-canary
Version:
JoystickDB - A minimalist database server for the Joystick framework
64 lines (45 loc) • 1.8 kB
JavaScript
import test from 'ava';
import { should_grow_map_size } from '../../../src/server/lib/disk_utils.js';
test('should_grow_map_size - should return new size when usage exceeds 80%', (t) => {
const current_size = 1000;
const used_size = 850;
const disk_size = 10000;
const result = should_grow_map_size(current_size, used_size, disk_size);
t.is(result, 2000);
});
test('should_grow_map_size - should return null when usage is below 80%', (t) => {
const current_size = 1000;
const used_size = 700;
const disk_size = 10000;
const result = should_grow_map_size(current_size, used_size, disk_size);
t.is(result, null);
});
test('should_grow_map_size - should cap at 80% of disk size', (t) => {
const current_size = 1000;
const used_size = 850;
const disk_size = 1500;
const result = should_grow_map_size(current_size, used_size, disk_size);
const expected_max = Math.floor(1500 * 0.8);
t.is(result, expected_max);
});
test('should_grow_map_size - should return null if already at max', (t) => {
const disk_size = 1000;
const current_size = Math.floor(disk_size * 0.8);
const used_size = current_size * 0.9;
const result = should_grow_map_size(current_size, used_size, disk_size);
t.is(result, null);
});
test('should_grow_map_size - should handle edge case with zero usage', (t) => {
const current_size = 1000;
const used_size = 0;
const disk_size = 10000;
const result = should_grow_map_size(current_size, used_size, disk_size);
t.is(result, null);
});
test('should_grow_map_size - should handle exact 80% usage threshold', (t) => {
const current_size = 1000;
const used_size = 800;
const disk_size = 10000;
const result = should_grow_map_size(current_size, used_size, disk_size);
t.is(result, 2000);
});