npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@ismaelalves/test-gen

v0.1.0

Published

Gerador inteligente de testes automáticos para Node.js e TypeScript | JavaScript

Downloads

5

Readme

📦 TestGen

TestGen é uma biblioteca TypeScript e Javascript voltada para geração automática de testes baseada na estrutura de classes e suas dependências. A seguir está um guia simples e direto para entender e utilizar a biblioteca.


✨ Objetivo

Simplificar a criação de instâncias para testes sem precisar configurar manualmente mocks e instâncias para cada dependência.


✨ Visão Geral

  • Linguagem: TypeScript | Javascript
  • Finalidade: Geração de testes automáticos com base em metainformações das classes e/ou funções.
  • Entrada: Arquivos .ts ou .js contendo classes e/ou funções
  • Saída: Estruturas de teste baseadas nas dependências das classes ou de funções

✨ Funcionalidades

  • Escaneamento de arquivos através da manipulação de AST (Abstract Syntax Tree)
  • Configuração de execução por meio CLI, .TestGenrc, package.json
  • Aceitamos analize de arquivos TypeScript | Javascript
  • Geração de testes automáticos com base em metainformações das classes e/ou funções.
  • Analise de alterações de metodos e/ou funções para geração de novos testes
  • Saida de arquivo formatado pelo prettier.js
  • Valores de argumentos de metodos e/ou funções gerados randomicamente atraves do chance.js
  • Criação de casos de testes para cenários 😇|😈
  • Configuração de it dos testes por meio de Decorators, Anotações e Comentários

🚀 Roadmap Futuro

  • Suporte para DI frameworks (como Nest.js)
  • Integração com IA´s para assertivas mais robustas para cenários 😇|😈
  • Suporte para os motores de teste mocha.js e vitest.js

🌐 Estrutura do Projeto

.
├── bin/                  # Ponto de entrada da CLI
├── examples/             # Exemplos de uso
├── src/                  # Código-fonte principal da biblioteca
│   ├── analyzer/         # Escanea os arquivos por meio de manipulação AST
│   ├── generator/        # Geração de código de teste
│   ├── utils/            # Funções auxiliares
├── types/                # Definição de tipos e interfaces
├── package.json          # Configurações do projeto e dependências
├── tsconfig.json         # Configuração TypeScript

📂 Estrutura dos Arquivos

src/analyzer/analyzerCode.ts

Analisa arquivos TypeScript e Javascript e retorna classes e funções exportadas com seus parâmetros e dependências por meio de anipulação ATS.

src/analyzer/fileScanner.ts

Identifica os arquivos TypeScript e Javascript do projeto.

src/generator/testWriter.ts

Gera strings de construtores para classes, resolvendo dependências automaticamente. Usa cache para não repetir processamento. Escreve o arquivo de test

src/generator/mockGenerator.ts.ts

Retorna valores mockados com base em tipos básicos:

getMockForType('number') // 0
getMockForType('string') // ""

🔧 Exemplo de Classe

export class Service {
  constructor(
    private readonly repo: Repository,
    private readonly logger: Logger,
    private readonly count: number
  ) {}
}

Geração automática:

new Service(new Repository(), new Logger(), 0)

⚙️ Instalação

npm install @ismaelalvesgit/test-gen -D

ou

npm install @ismaelalvesgit/test-gen -g

✈️ Executando

npx test-gen

ou

test-gen # Caso tenha optado pela instalação global

🔍 Observações

  • A resolução é feita com Observables do RxJS.
  • Dependências são resolvidas recursivamente com base na árvore de dependências da classe.
  • O cache evita reconstruções desnecessárias.
  • Ideal para testes automatizados com mockagem de dependências.

✅ Quando usar?

  • Testes automatizados em projetos TypeScript e Javascript.
  • Geração dinâmica de instâncias de classes complexas.
  • Situações onde você precisa mockar dependências profundamente.

⚖️ Tecnologias Usadas

  • TypeScript
  • ts-morph: manipulação de AST
  • rxjs: para resolver dependências reativas
  • ts-node: execução direta de arquivos TypeScript

🔗 Contribuições

Sinta-se livre para abrir issues ou PRs com melhorias, ideias ou bugs.


🌟 Autor

Desenvolvido por Ismael alves com amor pela automação de testes.