import 'jest-extended';
import { Cours } from '../../src/classes/cours';
import { HoraireCours } from '../../src/classes/horaireCours';
import { Etudiant } from '../../src/classes/etudiant';

describe('Cours', () => {
  const id = "ABC123";
  const group_id = "S2023-ABC123-01";
  const day = "lundi";
  const hours = "8h-10h";
  const activity = "C";
  const mode = "P";
  const local = "A-2500"
  const prealable = "XYZ987";
  const titre = "Cours sur ABC";
  const teacher_id = "michel.vaillancourt@etsmtl.ca";
  const etudiants_ids = [
    new Etudiant("ABC123", "Michel", "Vaillancourt")
  ];

  const horaire_cours = [new HoraireCours(
    group_id,
    day,
    hours,
    activity,
    mode,
    local,
    teacher_id,
    )];

  let cours : Cours;

  beforeEach(async() => {
    cours = new Cours(id, group_id, prealable, titre, etudiants_ids, horaire_cours);
  });

  it('devrait valider chaque information du constructeur cours', async () => {
    await expect(cours.id).toBe(id);
    await expect(cours.group_id).toBe(group_id);
    await expect(cours.prealable).toBe(prealable);
    await expect(cours.titre).toBe(titre);
    await expect(cours.etudiants_ids).toBe(etudiants_ids);
    await expect(cours.horaire_cours).toBe(horaire_cours);
 });

 it('l\'état d\'un cours devrait être à faux par défaut', async () => {
  await expect(cours.actif).toBe(false);
});

  it('quand l\'état change, on choisit vérifie le changement', async () => {
    cours.setEtat(true);
    await expect(cours.actif).toBe(true);
  });
})