Skip to content

Testes ​

bash
npm test

Os testes cobrem as regras que decidem o que conta como aprendizagem e as contas académicas — o sítio onde um erro silencioso faria a app mentir ao estudante.

FicheiroO que garante
tests/learning.test.mjsDomínio só de testes sem ajuda (R7); prática com ajuda à parte; aviso de dependência; excesso de confiança (R6) e a ordem do Progresso; distribuição ECTS × défice com mínimo de 10% (R9); prioridade do exame próximo e véspera (R3); base fraca dá tempo sem mexer no domínio
tests/curriculum.test.mjsMédia por ECTS truncada (verificada contra um histórico real: 16,57 com 78 ECTS); nota para não baixar e para um objetivo; grupos de escolha; arredondamento oficial; avaliação distribuída com mínimos; recurso e época especial; próxima prova; pré-requisitos; ligação percurso → plano
tests/backup.test.mjsA cópia de segurança recupera tudo menos o dono; ficheiros de outra app, não-JSON ou de versões futuras são recusados; linhas inválidas descartadas
tests/import.test.mjsA saída da IA na importação por foto é limpa (notas 0–20, datas ISO, linhas vazias fora); só imagens JPEG/PNG/WebP

Mutações ​

Um teste que passa não prova nada se também passasse com a regra partida. Por isso cada regra foi estragada de propósito e confirmou-se que pelo menos um teste falha:

MutaçãoApanhada
Domínio conta testes com ajuda / conta prática✅
Limiar de excesso de confiança removido✅
Mínimo de 10% não aplicado✅
Défice ignora o domínio✅
Janela do exame ignorada / véspera desfasada um dia✅
Progresso ignora o excesso de confiança✅
Dependência de ajuda nunca avisa✅
Média não ponderada / arredondada em vez de truncada✅
Nota mínima ignorada / recurso não substitui / nota de aprovação fixa✅
Grupos de escolha contados em duplicado✅
"Para não baixar" arredondado para baixo✅
Base fraca ignora "por fazer" ou o limiar✅
Depois de reprovar, a época normal continua a marcar a data✅ (teste acrescentado quando esta mutação sobreviveu)
Data derivada gravada como manual✅

Ao alterar uma regra, repete o exercício: estraga-a, corre npm test, confirma que falha.

Capturas da documentação ​

As imagens deste site são geradas por um script, com um estudante fictício:

bash
cd docs
npm install
npm run screenshots

O script arranca o servidor local, semeia dados de demonstração, simula respostas do servidor onde é preciso (por exemplo, o painel todo verde) e grava cada ecrã em docs/public/screenshots/ com o Edge ou o Chrome já instalados. Quando a interface muda, corre-o outra vez.

Publicado sob a licença MIT.