| 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); |
| }); |
|
|