Oi, William! Como vai?
Do jeito que você explicou, o uso de startsWith(codigo.toUpperCase()) acaba não validando corretamente, pois compara a string com ela mesma em maiúsculas. Isso pode gerar resultados inesperados na lógica da atividade.
Uma dica interessante para o futuro é usar o método matches() para validar padrões com regex. Veja este exemplo:
let codigo = "ABC-1234";
console.log(codigo.match(/^[A-Z]{3}-\d{4}$/));
No exemplo acima, match verifica se o texto segue o formato AAA-1234, utilizando regex para checar letras e numeros.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!