Seed determinística, caminho comum
- Entrada
- createCnhFromBase('123456789')
- Saída esperada
- 123 456 789-00
Base sequencial simples, fácil de memorizar num teste; os dois verificadores fecham em 00 sem acionar o ajuste condicional.
CNH sintética para fixtures de teste automatizado
Uma fixture de CNH precisa de 11 dígitos coerentes: 9 de base e 2 verificadores calculados em módulo 11, um deles dependente do outro. Chamar o gerador aleatório em todo teste funciona, mas quebra a reprodutibilidade do CI; esta página mostra como fixar a seed, ler o valor determinístico e lidar com o filtro que descarta sequências repetidas antes de chegar ao seu teste.
Base sequencial simples, fácil de memorizar num teste; os dois verificadores fecham em 00 sem acionar o ajuste condicional.
Essa base é o caso raro em que o primeiro cálculo passa de 9 e o segundo cálculo fica negativo antes do ajuste, exercitando as duas regras especiais ao mesmo tempo.
O cálculo fecha matematicamente em 11111111111, mas o filtro de dígito repetido descarta esse valor antes que ele chegue à sua fixture.
Não. Ela só respeita o formato matemático usado em validações de formulário.
Injete uma função de dígitos própria no lugar da fonte aleatória padrão, sempre devolvendo a mesma sequência, ou chame diretamente a função que recebe os 9 dígitos de base prontos; qualquer teste que compare contra um valor fixo deve usar um desses dois caminhos, nunca o gerador com sorteio puro.
Provavelmente porque o teste recalcula os dois dígitos de forma independente, sem replicar o ajuste condicional que zera o primeiro e subtrai 2 do segundo quando o resultado bruto do primeiro cálculo passa de 9; esse ajuste só aparece numa fração das bases possíveis, então o bug some na maioria dos casos de teste.
Não: mesmo quando o cálculo dos verificadores fecha matematicamente numa sequência como 11111111111, um filtro separado rejeita qualquer resultado onde os 11 dígitos sejam todos iguais, tentando até 20 vezes antes de cair no valor fixo de fallback.
Não, o número só reproduz o formato de 11 dígitos e o cálculo dos dois verificadores em módulo 11; ele não consulta nenhum prontuário, categoria de habilitação, pontuação na carteira ou situação de suspensão.
A geração acontece localmente no navegador. Analytics recebe apenas ação, status, tipo e formato, nunca a CNH gerada.