Documentação
/

Testes e CI

Testes e CI

Use uma configuração separada para testes funcionais quando suas ferramentas de teste puderem acionar as defesas avançadas. Não há endpoint de testes nem ambiente separado no painel.

Por que os testes precisam de um build próprio

As defesas avançadas (VM Self Defending, VM Debug Protection, VM Domain Lock e as contrapartes básicas selfDefending, debugProtection e domainLock) também agem contra seus próprios agentes, automações e depuradores. Elas podem interromper a execução, lançar erros sem relação aparente ou produzir resultados incorretos. disableConsoleOutput substitui os métodos de console por funções vazias globalmente, para todos os scripts da página, e não apenas para o ofuscado, de modo que asserções baseadas em logs não veem nada. Rode os testes funcionais em um build de testes separado com esses recursos desativados.

Configuração para testes funcionais

Derive a configuração de testes das suas configurações compartilhadas e aplique estas sobrescritas depois de selecionar uma predefinição. Elas desativam as versões VM e básicas de Self Defending, Debug Protection e Domain Lock, e desativam disableConsoleOutput (as predefinições Low, Medium e High o ativam). Passe valores explícitos; omitir uma opção pode permitir que uma predefinição a ative.

JavaScript

CI

Rode primeiro o código original e depois passe o build de testes ofuscado pelas mesmas verificações. Registre a entrada, as opções efetivas, a versão do ofuscador e os avisos do build para que as falhas possam ser reproduzidas. O painel e as respostas diretas da API reportam os avisos e a versão resolvida; o pacote javascript-obfuscator reporta a versão na sua mensagem de progresso, mas não reporta avisos.

Depois que as verificações funcionais passarem, gere um artefato de produção separado a partir das configurações originais de produção. Valide exatamente esse artefato no ambiente de execução pretendido, em um domínio permitido, sem automação nem depuradores que as defesas dele foram projetadas para detectar. Passar no build de testes não valida a versão protegida.

Builds pelo painel, pelo pacote javascript-obfuscator (CLI ou Node.js) e pela API usam as mesmas opções de proteção. Os testes pela API usam as credenciais e o endpoint de sempre, e os limites de uso normais se aplicam. No CI, mantenha as saídas de teste e de produção em caminhos separados e implante apenas o artefato de produção.

Se a execução ainda falhar, veja Diagnosticando erros de execução da VM.