import assert from 'node:assert/strict';
import { hasMlbSnapshotContextChange } from '../../src/workers/odds-refresh';

function run(): void {
  const stored = {
    probable_starters: {
      home: { name: 'Pablo Lopez' },
      away: { name: 'Kevin Gausman' },
    },
    lineups: {
      homeStatus: 'Confirmed Lineup',
      awayStatus: 'Projected Lineup',
    },
  };

  const unchanged = {
    probable_starters: {
      home: { name: 'Pablo Lopez' },
      away: { name: 'Kevin Gausman' },
    },
    lineups: {
      homeStatus: 'Confirmed Lineup',
      awayStatus: 'Projected Lineup',
    },
  };

  const starterChanged = {
    probable_starters: {
      home: { name: 'Joe Ryan' },
      away: { name: 'Kevin Gausman' },
    },
    lineups: {
      homeStatus: 'Confirmed Lineup',
      awayStatus: 'Projected Lineup',
    },
  };

  const awayLineupChanged = {
    probable_starters: {
      home: { name: 'Pablo Lopez' },
      away: { name: 'Kevin Gausman' },
    },
    lineups: {
      homeStatus: 'Confirmed Lineup',
      awayStatus: 'Confirmed Lineup',
    },
  };

  assert.equal(hasMlbSnapshotContextChange(stored, unchanged, 'home'), false);
  assert.equal(hasMlbSnapshotContextChange(stored, starterChanged, 'home'), true);
  assert.equal(hasMlbSnapshotContextChange(stored, awayLineupChanged, 'away'), true);
  assert.equal(hasMlbSnapshotContextChange(stored, awayLineupChanged, 'home'), false);
  console.log('ok - mlb stale detection');
}

run();
