Skip to the content.

API Reference

Complete API documentation for adaptive-tests language packages.

Language-Specific APIs

Each language package provides its own implementation and detailed API documentation:

Core Discovery Pattern

All language implementations follow the same discovery pattern:

discover(signature, options?)

Purpose: Find code by structure, not file paths

Parameters:

Returns: The discovered code, ready to use

Quick Examples

JavaScript

const { discover } = require('@adaptive-tests/javascript');

const MyClass = await discover({
  name: 'UserService',
  type: 'class',
  methods: ['create', 'find', 'update']
});

TypeScript

import { discover } from '@adaptive-tests/typescript';

const MyInterface = await discover({
  name: 'ApiResponse',
  type: 'interface'
});

Python

from adaptive_tests import discover
import asyncio

async def test_user_model():
    UserModel = await discover({
        'name': 'UserModel',
        'type': 'class',
        'methods': ['save', 'delete']
    })
    return UserModel

# Run in async context
UserModel = asyncio.run(test_user_model())

Java

import io.adaptivetests.Discovery;

Class<?> userService = Discovery.discover(
    "UserService",
    Discovery.type("class"),
    Discovery.methods("save", "findById")
);

Why This Works

Traditional tests break when code moves:

import UserService from './src/services/UserService'; // ❌ Breaks when file moves

Adaptive tests survive refactoring:

const UserService = await discover({
  name: 'UserService',
  type: 'class'
}); // ✅ Works regardless of file location

Configuration

Each language package supports configuration files:

See language-specific documentation for detailed configuration options.

CLI Tools

Each package may include CLI tools for scaffolding and migration:

# JavaScript
npx @adaptive-tests/javascript init

# Python
python -m adaptive_tests init

# Java
mvn adaptive-tests:init

See individual language packages for complete CLI documentation.