ROIBot / test /bulk-add.test.js
Codex
Add full analytics and management upgrade
dc7f0d5
import test from 'node:test';
import assert from 'node:assert/strict';
import { parseBulkAddInput } from '../src/bulk-add.js';
test('parses multiple valid bulk add lines', () => {
const parsed = parseBulkAddInput('FanDuel', 'MLB', 'Bryan Rocchio 1+ HR | +1450 | $5\n3 leg parlay | +1452 | $5');
assert.equal(parsed.ok, true);
assert.equal(parsed.accepted.length, 2);
assert.equal(parsed.rejected.length, 0);
assert.equal(parsed.accepted[0].bet.book, 'FanDuel');
});
test('rejects malformed lines but keeps valid ones', () => {
const parsed = parseBulkAddInput('BetMGM', 'MLB', 'Valid prop | +100 | $2.50\nbad line here');
assert.equal(parsed.ok, true);
assert.equal(parsed.accepted.length, 1);
assert.equal(parsed.rejected.length, 1);
assert.match(parsed.rejected[0].reason, /Use `prop \| odds \| stake`/);
});
test('fails when no valid lines exist', () => {
const parsed = parseBulkAddInput('DraftKings', 'NBA', 'not valid');
assert.equal(parsed.ok, false);
assert.match(parsed.error, /No valid bet lines/i);
});