app like that
Veve
Veve

Zero-config, type-safe testing framework and runner for TypeScript.

Features

Zero-configuration setup

Offers a no-setup experience, which means you can start using the framework immediately without needing to configure it.

Type-safe testing

Ensures that your tests are type-safe, leveraging TypeScript's type system to provide more reliable testing.

TypeScript-native framework

Built specifically for TypeScript, providing seamless integration and support for TypeScript-specific features.

Testing framework and runner

Combines both a testing framework and a test runner, offering a comprehensive solution for running tests.

Type Safety

Built from the ground up with TypeScript in mind, providing full TypeScript integration with native support, comprehensive type checking, and intelligent autocompletion in your IDE.

Flexible Assertions

Allows you to choose your preferred assertion style, giving you the freedom and flexibility to align with your development preferences.

Zero Configuration

No configuration required to start writing and running tests, enabling immediate productivity with full TypeScript support and autocompletion.

Direct Test Definition

Defines tests directly using clear syntax. This approach eliminates the need for nested blocks, simplifying the structure and improving readability.

Simplified Test Framework

A minimalist and straightforward testing framework that reduces syntactic overhead, aiming for clarity and ease of understanding.

Global Installation with npm

You can install Veve globally using npm for easy access and setup.

Interactive Setup Wizard

Provides a user-friendly interactive setup wizard to guide you through the installation and configuration process.

Basic Configuration

Run tests with basic configuration to easily initiate testing processes.

Watch Mode

Run tests in watch mode with the ability to specify which files to watch, enhancing development speed by automatically re-running tests upon changes.

Custom Timeout and Environment Variables

Allows running tests with custom timeout settings and specific environment variables to meet diverse testing requirements.

Pattern Matching with Exclusions

Provides the ability to run pattern matching on tests, with options to exclude specific patterns for better targeting of test runs.

Automatic Configuration Loading

Veve automatically loads a configuration file from the current working directory if one is found. It recognizes specific files such as veve.config.js, veve.config.ts, veve.js, veve.ts, test.config.js, and test.config.ts.

Configuration Loading Order

Veve tries to load configuration files in a specific order to ensure that the right settings are applied.

Environment Variable Loading

Allows specific environment variables to be loaded into the global process.env context, making them easily accessible for testing. This is achieved using the dotenv package.

Global Context Loading

Allows you to load functions, classes, and other serializable entities into the global context using the node:vm module, making these values accessible across your tests.

pattern

Allows you to specify a list of patterns to include for processing. Default is an empty list.

exclude

Allows you to specify a list of patterns to exclude from processing. Default is an empty list.

envs

Specifies a list of environment names where this configuration will be applied. Default is an empty list.

plugins

Allows you to specify a list of esbuild plugins to be used in the configuration process.

alwaysStrict

Whether to enforce strict mode in all files. It accepts a boolean or undefined.

baseUrl

The base URL for module resolution. It takes a string or undefined.

experimentalDecorators

Enables experimental decorator support. It is a boolean or undefined.

importsNotUsedAsValues

Specifies how imports not used as values should be treated. Options include 'remove', 'preserve', 'error', or undefined.

jsx

Specifies the JSX code generation style. Options are 'preserve', 'react-native', 'react', 'react-jsx', 'react-jsxdev', or undefined.

jsxFactory

Factory function for creating JSX elements. Takes a string or undefined.

jsxFragmentFactory

Factory function for creating JSX fragment elements. Accepts a string or undefined.

jsxImportSource

Specifies the module specifier for JSX imports. Takes a string or undefined.

paths

A mapping of module paths to arrays of paths. Accepts Record<string, string[]> or undefined.

preserveValueImports

Whether to preserve value imports in the emitted JavaScript. Accepts boolean or undefined.

strict

Whether to enable strict type checking options. Accepts boolean or undefined.

useDefineForClassFields

Whether to use define for class field initialization. Accepts boolean or undefined.

verbatimModuleSyntax

Whether to keep the module syntax as-is in the emitted JavaScript. It is a boolean or undefined.