import {partitionMembres, titreBlocMembres} from './membres';

const membres = [
  {lfaAen: {aenId: 1, aenLibelle: 'Anna'}, lfaDepuis: '2010', lfaJusqua: ''},
  {lfaAen: {aenId: 2, aenLibelle: 'Yann'}, lfaDepuis: '2012', lfaJusqua: '2030'},
  {lfaAen: {aenId: 3, aenLibelle: 'Soazig'}, lfaDepuis: '2005', lfaJusqua: '2018'},
  {lfaAen: {aenId: 4, aenLibelle: 'Loïc'}, lfaDepuis: '2015', lfaJusqua: '2026'},
];

describe('partitionMembres', () => {
  it('shouldKeepMembersWithoutEndDateOrWithAFutureEndDateAsCurrent', () => {
    const {actuels, anciens} = partitionMembres(membres, 2026);

    expect(actuels.map(m => m.lfaAen.aenId)).toEqual([1, 2, 4]);
    expect(anciens.map(m => m.lfaAen.aenId)).toEqual([3]);
  });

  it('shouldUseTheCurrentYearByDefault', () => {
    const {actuels} = partitionMembres([{lfaAen: {aenId: 9, aenLibelle: 'X'}, lfaDepuis: '2000', lfaJusqua: String(new Date().getFullYear() + 1)}]);

    expect(actuels).toHaveLength(1);
  });
});

describe('titreBlocMembres', () => {
  it('shouldBeCurrentMembersWhenSomeAreStillActive', () => {
    expect(titreBlocMembres(1)).toBe('actual_member');
  });

  it('shouldBeTheHistoryWhenNobodyIsActiveAnymore', () => {
    expect(titreBlocMembres(0)).toBe('history_member');
  });
});
