UNPKG

@elizaos/project-starter

Version:

Project starter for elizaOS

123 lines (91 loc) 2.97 kB
# Project Starter This is the starter template for ElizaOS projects. ## Features - Pre-configured project structure for ElizaOS development - Comprehensive testing setup with component and e2e tests - Default character configuration with plugin integration - Example service, action, and provider implementations - TypeScript configuration for optimal developer experience - Built-in documentation and examples ## Getting Started ```bash # Create a new project elizaos create --type project my-project # Dependencies are automatically installed and built # Navigate to the project directory cd my-project # Start development immediately elizaos dev ``` ## Development ```bash # Start development with hot-reloading (recommended) elizaos dev # OR start without hot-reloading elizaos start # Note: When using 'start', you need to rebuild after changes: # bun run build # Test the project elizaos test ``` ## Testing ElizaOS employs a dual testing strategy: 1. **Component Tests** (`src/__tests__/*.test.ts`) - Run with Bun's native test runner - Fast, isolated tests using mocks - Perfect for TDD and component logic 2. **E2E Tests** (`src/__tests__/e2e/*.e2e.ts`) - Run with ElizaOS custom test runner - Real runtime with actual database (PGLite) - Test complete user scenarios ### Test Structure ``` src/ __tests__/ # All tests live inside src *.test.ts # Component tests (use Bun test runner) e2e/ # E2E tests (use ElizaOS test runner) project-starter.e2e.ts # E2E test suite README.md # E2E testing documentation index.ts # Export tests here: tests: [ProjectStarterTestSuite] ``` ### Running Tests - `elizaos test` - Run all tests (component + e2e) - `elizaos test component` - Run only component tests - `elizaos test e2e` - Run only E2E tests ### Writing Tests Component tests use bun:test: ```typescript // Unit test example (__tests__/config.test.ts) describe('Configuration', () => { it('should load configuration correctly', () => { expect(config.debug).toBeDefined(); }); }); // Integration test example (__tests__/integration.test.ts) describe('Integration: Plugin with Character', () => { it('should initialize character with plugins', async () => { // Test interactions between components }); }); ``` E2E tests use ElizaOS test interface: ```typescript // E2E test example (e2e/project.test.ts) export class ProjectTestSuite implements TestSuite { name = 'project_test_suite'; tests = [ { name: 'project_initialization', fn: async (runtime) => { // Test project in a real runtime }, }, ]; } export default new ProjectTestSuite(); ``` The test utilities in `__tests__/utils/` provide helper functions to simplify writing tests. ## Configuration Customize your project by modifying: - `src/index.ts` - Main entry point - `src/character.ts` - Character definition