gems-uff / sapos

SAPOS main goal is to ease the management of information related to graduate programs such as enrollments, courses, advisement, scholarships, requirements, among others.
http://gems-uff.github.io/sapos/
MIT License
29 stars 14 forks source link

Erro no rspec de enrollment que acontece quando o teste é feito em determinadas datas do S.O. #318

Closed Carlos-Eduardo-Cabral-da-Cunha closed 4 years ago

Carlos-Eduardo-Cabral-da-Cunha commented 4 years ago

Ao se executar rake para fazer os testes spec, pode acontecer um erro que depende da data configurada no sistema operacional. As datas e o erro são:

Datas de erro (último mês de cada período): 1 até 28-29 de fevereiro 1 até 31 de julho

Erro:

Failures:

1) Enrollment Methods self.with_delayed_phases_on should return the expected enrollments Failure/Error: expect(result.sort).to eql(expected_result.sort)

   expected: [1, 5]
        got: [1, 4, 5]

   (compared using eql?)
  ./spec/models/enrollment_spec.rb:190:in `block (4 levels) in <top (required)>'

Finished in 49.89 seconds (files took 11.32 seconds to load) 547 examples, 1 failure

Failed examples:

rspec ./spec/models/enrollment_spec.rb:186 # Enrollment Methods self.with_delayed_phases_on should return the expected enrollments

Carlos-Eduardo-Cabral-da-Cunha commented 4 years ago

O teste se refere a ver quais matrículas tem etapas atrasadas. Dependendo da data do sistema em que o teste é feito, a lista de disciplinas esperadas no teste pode não corresponder ao que deveria ser esperado. Por exemplo:

Uma matrícula seria criada no ano/periodo atual. Com data de admissão no início deste período. Uma etapa com duração de 1 mês é criada. É adicionada uma prorrogação de 1 período a essa etapa.

O teste espera que na data atual mais dois meses, o etapa não esteja atrasada. Isso é válido dependendo de a data atual não estar no final (último mês) do período corrente, pois, se estiver, mesmo que a estapa tenha 1 mês mais 1 período de duração, a data do sistema mais 2 meses pode ultrapassar a duração da etapa. Então essa etapa que o teste espera não estar atrasada, na verdade estará.

Foi feita uma mudança para que a data, em vez de ser a atual do sistema, seja a data de início do período atual.