File size: 1,046 Bytes
386cc29
 
 
 
 
dc7f0d5
386cc29
 
 
 
 
 
 
 
dc7f0d5
386cc29
 
 
 
 
 
 
 
dc7f0d5
386cc29
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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);
});