// Session 49 — Phase 1: name micro-fixes (initials collapse + mickey nickname).

const be = require('../../src/utils/playerName');
const fe = require('../../web/src/lib/playerName');

describe('initials collapse', () => {
  it('"J C Escarra" === "JC Escarra"', () => {
    expect(be.nameKey('J C Escarra')).toBe(be.nameKey('JC Escarra'));
    expect(be.normalizeName('J C Escarra').display).toBe('JC Escarra');
  });
  it('handles 3+ initials ("J C E Smith" → "JCE Smith")', () => {
    expect(be.normalizeName('J C E Smith').display).toBe('JCE Smith');
  });
  it('does not collapse a single initial before a real word ("O Henry")', () => {
    expect(be.normalizeName('O Henry').display).toBe('O Henry');
  });
});

describe('mickey nickname', () => {
  it('"Mickey Gasper" === "Michael Gasper"', () => {
    expect(be.nameKey('Mickey Gasper')).toBe(be.nameKey('Michael Gasper'));
  });
});

describe('frontend + backend copies agree', () => {
  it.each(['J C Escarra', 'Mickey Gasper', 'J C E Smith', 'O Henry', 'Aaron Judge'])('%s', (n) => {
    expect(fe.nameKey(n)).toBe(be.nameKey(n));
    expect(fe.normalizeName(n).display).toBe(be.normalizeName(n).display);
  });
});
