Laboratório QA de IMEI: importar, verificar e reproduzir

Execute um teste CSV completo com resultados esperados e observados. Verifique formato, Luhn, valores ausentes e duplicados e repita a mesma verificação sem ligação à Internet.

Todos os exemplos são inventários simulados com dados sintéticos. Não são consultados Apple MDM, Samsung Knox, operadoras ou bases de dados de dispositivos. O texto importado é processado no navegador; o laboratório não o envia para o servidor.

1. Executar um teste de inventário

Até 200 linhas. No CSV use o cabeçalho imei; colunas opcionais: case_id, record_id, slot, expected_status, expected_duplicate. O CSV completo do gerador também é aceite: os metadados descritivos não são verificados nem comprovam a identidade do dispositivo. Exportar entrada CSV conserva as colunas originais. Os identificadores permanecem como texto. As linhas vazias são ignoradas; use uma linha CSV explícita para testar um valor ausente.

Opcional: reproduzir casos a partir de uma semente

A semente e o cenário selecionado geram as mesmas cadeias com o contrato 1.0.0. A entrada acima é substituída por casos positivos e negativos identificados. A semente não seleciona prefixos de fabricantes.

Por que o exemplo Apple separa os identificadores

O primeiro registo simulado tem dois identificadores distintos, IMEI1 e IMEI2. Um segundo repete um identificador e omite IMEI2; um terceiro tem um erro de controlo deliberado. Um dado ausente não é uma falha de controlo. O relatório conserva record_id e slot sem afirmar que valida o esquema de resposta Apple ou a configuração SIM de um dispositivo.

Carregar a simulação Apple MDM

Por que o exemplo Samsung normaliza antes de comparar

Dois registos simulados contêm os mesmos algarismos com separadores diferentes. O duplicado é detetado após normalização e a entrada original permanece visível. Outra linha preserva zeros iniciais e outra falha Luhn. O relatório permite investigar duplicados; não junta nem corrige registos automaticamente e não comprova compatibilidade com Knox.

Carregar o inventário Samsung simulado

2. Reproduzir o resultado sem ligação à Internet

Descarregue e extraia o projeto completo e execute estes comandos na respetiva pasta. Requer Node.js 20 ou posterior e npm. Não há dependências para instalar. O navegador e o projeto executam exatamente o mesmo módulo contract.mjs.

Descarregar o projeto completo (.zip)
cd imei-qa-lab-v1
npm test
npm run verify

O comando de verificação compara cada campo observado com o relatório esperado publicado. Estas são as linhas de sucesso esperadas; qualquer diferença termina com o código 1.

PASS mixed: 10 rows; 0 mismatches; mixed.observed.json
PASS apple-mdm: 5 rows; 0 mismatches; apple-mdm.observed.json
PASS samsung-inventory: 5 rows; 0 mismatches; samsung-inventory.observed.json

Para verificar uma entrada exportada ou gerar novos casos, use diretamente a CLI. Substitua my-input.csv pelo caminho do seu ficheiro:

node cli.mjs inspect my-input.csv > my-report.json
node cli.mjs generate my-seed apple-mdm > generated.csv

Execução local de referência: 2026-09-09T18:02:03.915Z · Node v26.7.0 · 9 testes aprovados · 20 linhas verificadas sem diferenças. Os ficheiros observados registam essa execução; não constituem uma certificação externa.

Casos variados: válido, controlo, corpo, comprimento, caracteres, separadores e duplicados

Simulação Apple MDM: IMEI1/IMEI2 distintos, identificador copiado, campo ausente e controlo incorreto

Inventário Samsung simulado: duplicado após normalização, zeros iniciais e controlo incorreto

O que o relatório garante

O contrato remove espaços em branco, separadores Unicode e hífenes ASCII. Depois só aceita algarismos ASCII. Um corpo de 14 algarismos está incompleto; uma proposta de 15 algarismos é mostrada separadamente. Luhn duplica as posições 2, 4, 6…14 a partir da esquerda do corpo.

Os duplicados comparam cadeias normalizadas completas de 15 algarismos por ordem de entrada, incluindo as de controlo incorreto. As linhas seguintes remetem para o primeiro caso. Os corpos incompletos e valores mal formados não participam. Os campos slot permanecem como etiquetas; a sua aplicação decide quais são obrigatórios.

As colunas opcionais expected_status e expected_duplicate transformam o CSV em verificações. A ausência de uma expectativa não equivale a aprovação. Um caso deliberadamente inválido é um teste correto quando a falha observada corresponde ao esperado.

Exemplos e relatórios originais: CC0-1.0. Código fonte: MIT. O kit não inclui catálogos TAC de terceiros. Mantenha os dados sintéticos em ambientes de teste; os valores gerados podem coincidir com identificadores atribuídos.