Olá, Silvino! Tudo bem?
Eu acredito que seja uma daquelas situações em que você pode aplicar alguns conceitos de arquitetura no seu código. No caso do contador, countdownSeconds é uma dependência. O que geralmente acontece quando construímos algo e depois criamos os testes é perceber que existe essa dependência entre componentes do código e usar a Inversão de Dependências para torná-lo mais flexível.
Assim, ao invés do contador utilizar o countdownSeconds, ele pode receber por parâmetro.
Então você poderia fazer algo assim:
contador(callback = this.countdownSeconds) {
setInterval(() =>callback())
}
Agora, nesse exemplo específico, é questionável a utilidade de fazer o teste assim. Você poderia passar outra função para o contador no seu teste e verificar se ela foi chamada, mas isso significa que você está apenas verificando que a arrow function funcionou e isso teoricamente não é obrigação dos seus testes.
Então, como estamos falando de testes unitários, faz mais sentido criar um teste separado para countdownSeconds e dessa maneira você sabe que o contador funciona (chama setInterval) e o countdownSeconds também funciona. Agora, o próprio setInterval e a arrow function são implementações do JavaScript e é ele (e as APIs que ele usa) que precisam garantir nos próprios testes que tudo funciona perfeitamente.
Espero ter ajudado!