import { describe, expect, it } from 'vitest';

import {
  calculateUsageCredits,
  parseMinecraftListOutput,
} from './index';

describe('metering', () => {
  it('charges credits by RAM-GB-minutes', () => {
    expect(calculateUsageCredits(1024, 60)).toBe(1);
    expect(calculateUsageCredits(2048, 60)).toBe(2);
    expect(calculateUsageCredits(512, 30)).toBe(1);
  });

  it('parses minecraft list command output', () => {
    expect(
      parseMinecraftListOutput('There are 2 of a max of 20 players online: Steve, Alex'),
    ).toBe(2);
    expect(
      parseMinecraftListOutput('There are 0 of a maximum of 10 players online:'),
    ).toBe(0);
  });
});
