endorphin-ai 0.6.0 → 0.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +283 -94
- package/dist/endorphin-ai-0.6.1.tgz +0 -0
- package/dist/framework/core/config-loader.d.ts +1 -1
- package/dist/framework/core/test-manager.d.ts +1 -1
- package/dist/framework/results/test-results-manager.d.ts +1 -1
- package/dist/framework/results/test-results-parser.d.ts +1 -1
- package/dist/framework/templates/reporter/scripts.js +517 -598
- package/dist/framework/test-recorder/interactive-recorder.d.ts +1 -1
- package/dist/framework/test-recorder/interactive-recorder.js +1 -1
- package/dist/framework/test-recorder/session-recorder.d.ts +1 -1
- package/dist/framework/tools/content.d.ts +1 -1
- package/dist/framework/tools/interaction.d.ts +1 -1
- package/dist/framework/tools/utilities.d.ts +1 -1
- package/package.json +7 -1
- package/scripts/cleanup-test-artifacts.sh +69 -0
- package/scripts/fix-imports.js +84 -0
- package/scripts/postinstall.js +81 -0
package/README.md
CHANGED
|
@@ -20,53 +20,94 @@ LangChain, OpenAI GPT-4o, and Playwright. Provides intelligent browser
|
|
|
20
20
|
automation with automatic element detection, visual validation, and
|
|
21
21
|
comprehensive test management.
|
|
22
22
|
|
|
23
|
-
##
|
|
23
|
+
## 🎬 Watch Demo
|
|
24
24
|
|
|
25
25
|
<div align="center">
|
|
26
26
|
<a href="https://youtu.be/ev_71RBO6g8?si=F9xTPSJNp36Mr1wx" target="_blank">
|
|
27
|
-
<img src="https://img.shields.io/badge/🎬_WATCH_DEMO-FF0000?style=for-the-badge&logo=youtube&logoColor=white&labelColor=000000" alt="Watch Demo" />
|
|
27
|
+
<img src="https://img.shields.io/badge/🎬_WATCH_DEMO-FF0000?style=for-the-badge&logo=youtube&logoColor=white&labelColor=000000&scale=1.5" alt="Watch Demo" style="transform: scale(1.5); margin: 20px 0;" width="300" />
|
|
28
28
|
</a>
|
|
29
29
|
<br />
|
|
30
|
-
<
|
|
30
|
+
<p style="font-size: 18px; font-weight: bold; margin: 15px 0;">🎯 See Endorphin AI in Action - Complete Walkthrough</p>
|
|
31
|
+
<p style="font-size: 16px; color: #666; margin-bottom: 30px;">
|
|
32
|
+
✨ Watch how AI writes and executes your tests<br />
|
|
33
|
+
🔍 See intelligent element detection in real-time<br />
|
|
34
|
+
📊 Explore beautiful HTML reports with screenshots<br />
|
|
35
|
+
⚡ From setup to test execution in 10 minutes
|
|
36
|
+
</p>
|
|
31
37
|
</div>
|
|
32
38
|
|
|
33
|
-
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 🚀 Quick Start
|
|
42
|
+
|
|
43
|
+
### 📦 Installation & Setup
|
|
44
|
+
|
|
45
|
+
Get started in under 2 minutes:
|
|
34
46
|
|
|
35
47
|
```bash
|
|
36
|
-
#
|
|
48
|
+
# 1. Create your project
|
|
49
|
+
mkdir my-ai-tests && cd my-ai-tests
|
|
50
|
+
|
|
51
|
+
# 2. Install Endorphin AI
|
|
37
52
|
npm install endorphin-ai
|
|
53
|
+
|
|
54
|
+
# 3. Initialize with everything you need
|
|
55
|
+
npx endorphin init
|
|
38
56
|
```
|
|
39
57
|
|
|
40
|
-
|
|
58
|
+
**What you get:**
|
|
59
|
+
- ✅ Sample test ready to run
|
|
60
|
+
- ✅ Configuration files
|
|
61
|
+
- ✅ Project structure
|
|
62
|
+
- ✅ Environment setup
|
|
41
63
|
|
|
42
|
-
|
|
64
|
+
### 🔑 Add Your OpenAI API Key
|
|
43
65
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
66
|
+
```bash
|
|
67
|
+
# Edit the .env file that was created
|
|
68
|
+
echo "OPENAI_API_KEY=your-openai-api-key-here" > .env
|
|
69
|
+
```
|
|
48
70
|
|
|
49
|
-
|
|
71
|
+
*Get your API key from [OpenAI Platform](https://platform.openai.com/api-keys)*
|
|
50
72
|
|
|
51
|
-
|
|
52
|
-
# Edit the .env file and add your API key
|
|
53
|
-
# OPENAI_API_KEY=your_api_key_here
|
|
54
|
-
```
|
|
73
|
+
### ▶️ Run Your First Test
|
|
55
74
|
|
|
56
|
-
|
|
75
|
+
```bash
|
|
76
|
+
# Run the sample health check test
|
|
77
|
+
npx endorphin run test HEALTH-001
|
|
57
78
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
79
|
+
# Generate a beautiful HTML report
|
|
80
|
+
npx endorphin generate report && npx endorphin open report
|
|
81
|
+
```
|
|
61
82
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
83
|
+
**🎉 That's it!** You now have:
|
|
84
|
+
- A working AI-powered test
|
|
85
|
+
- Interactive HTML reports with screenshots
|
|
86
|
+
- Complete project structure for scaling
|
|
87
|
+
|
|
88
|
+
### 🔧 Troubleshooting Installation
|
|
67
89
|
|
|
68
|
-
|
|
69
|
-
|
|
90
|
+
If `npx endorphin` doesn't work, try these **guaranteed solutions**:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
# Option 1: Use npm scripts (always works)
|
|
94
|
+
npm run endorphin:init # Initialize project
|
|
95
|
+
npm run endorphin:version # Check version
|
|
96
|
+
npm run endorphin:help # Get help
|
|
97
|
+
|
|
98
|
+
# Option 2: Clear npx cache and retry
|
|
99
|
+
npx --clear-cache
|
|
100
|
+
npx endorphin init
|
|
101
|
+
|
|
102
|
+
# Option 3: Use direct path
|
|
103
|
+
./node_modules/.bin/endorphin init
|
|
104
|
+
|
|
105
|
+
# Option 4: Global installation
|
|
106
|
+
npm install -g endorphin-ai
|
|
107
|
+
endorphin init
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Why this happens:** This is a known npm/npx issue with local binary resolution, not a problem with Endorphin AI. The npm scripts above always work regardless of npx behavior.
|
|
70
111
|
|
|
71
112
|
### Manual Setup (Alternative)
|
|
72
113
|
|
|
@@ -103,10 +144,12 @@ If you prefer manual setup:
|
|
|
103
144
|
mkdir tests
|
|
104
145
|
```
|
|
105
146
|
|
|
106
|
-
6. Create your first test file `tests/login-test.
|
|
147
|
+
6. Create your first test file `tests/login-test.ts`:
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
import type { TestCase } from 'endorphin-ai';
|
|
107
151
|
|
|
108
|
-
|
|
109
|
-
export const QE001 = {
|
|
152
|
+
export const QE001: TestCase = {
|
|
110
153
|
id: 'QE-001',
|
|
111
154
|
name: 'Basic Login Test',
|
|
112
155
|
description: 'Test the login functionality with valid credentials',
|
|
@@ -132,37 +175,65 @@ If you prefer manual setup:
|
|
|
132
175
|
"scripts": {
|
|
133
176
|
"test": "endorphin run test all",
|
|
134
177
|
"test:smoke": "endorphin run test --tag smoke",
|
|
135
|
-
"test:auth": "endorphin run test --tag authentication",
|
|
178
|
+
"test:auth": "endorphin run test --tag authentication",
|
|
136
179
|
"test:single": "endorphin run test",
|
|
137
|
-
"test:record": "endorphin run test-recorder"
|
|
180
|
+
"test:record": "endorphin run test-recorder",
|
|
181
|
+
"endorphin:init": "./node_modules/.bin/endorphin init",
|
|
182
|
+
"endorphin:version": "./node_modules/.bin/endorphin --version"
|
|
138
183
|
}
|
|
139
184
|
}
|
|
140
185
|
```
|
|
141
186
|
|
|
142
|
-
##
|
|
187
|
+
## 🎯 Core Features
|
|
143
188
|
|
|
144
|
-
###
|
|
189
|
+
### 🤖 AI-Powered Testing
|
|
190
|
+
- **Write tests in plain English** - No complex selectors needed
|
|
191
|
+
- **Intelligent element detection** - AI finds buttons, forms, and content automatically
|
|
192
|
+
- **Self-healing tests** - Adapts to UI changes without breaking
|
|
193
|
+
- **Smart error recovery** - Automatically retries failed actions with different strategies
|
|
145
194
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
195
|
+
### 📊 Beautiful Reports
|
|
196
|
+
- **Interactive HTML reports** with screenshots and step-by-step execution
|
|
197
|
+
- **Real-time filtering and search** to quickly find issues
|
|
198
|
+
- **Visual debugging** with click-to-zoom screenshots
|
|
199
|
+
- **Export capabilities** for sharing with your team
|
|
149
200
|
|
|
150
|
-
|
|
151
|
-
|
|
201
|
+
### 🛠️ Developer Experience
|
|
202
|
+
- **Zero configuration** - Works out of the box
|
|
203
|
+
- **TypeScript support** with full type definitions
|
|
204
|
+
- **Multiple browsers** - Chrome, Firefox, Safari support
|
|
205
|
+
- **Parallel execution** for faster test runs
|
|
206
|
+
- **Hot reload** for rapid test development
|
|
207
|
+
|
|
208
|
+
### 🎮 Interactive Tools
|
|
209
|
+
- **Test Recorder** - Create tests by clicking through your app
|
|
210
|
+
- **Live debugging** - See exactly what the AI is doing
|
|
211
|
+
- **Custom test creation** with guided prompts
|
|
212
|
+
- **Session replay** to understand test failures
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
## 🔄 Staying Updated
|
|
217
|
+
|
|
218
|
+
### Current Version: v0.6.1
|
|
152
219
|
|
|
220
|
+
```bash
|
|
153
221
|
# Check your current version
|
|
154
222
|
npx endorphin --version
|
|
155
223
|
|
|
224
|
+
# Update to the latest version
|
|
225
|
+
npm update endorphin-ai
|
|
226
|
+
|
|
156
227
|
# Get help and see new features
|
|
157
228
|
npx endorphin --help
|
|
158
229
|
```
|
|
159
230
|
|
|
160
|
-
###
|
|
161
|
-
|
|
162
|
-
- **
|
|
163
|
-
- **
|
|
164
|
-
- **
|
|
165
|
-
|
|
231
|
+
### What's New in v0.6.1
|
|
232
|
+
- ✅ **Fixed npx Resolution Issues** with post-install script and npm script alternatives
|
|
233
|
+
- ✅ **Enhanced User Experience** with clear troubleshooting guidance
|
|
234
|
+
- ✅ **Reliable Installation** that works regardless of npm/npx behavior
|
|
235
|
+
- ✅ **Multiple Access Methods** including guaranteed npm scripts
|
|
236
|
+
- ✅ **Better Documentation** with comprehensive troubleshooting section
|
|
166
237
|
|
|
167
238
|
## 🚀 Project Initialization
|
|
168
239
|
|
|
@@ -176,11 +247,12 @@ npx endorphin init
|
|
|
176
247
|
|
|
177
248
|
The `init` command creates:
|
|
178
249
|
|
|
179
|
-
- ✅ `tests/` directory with sample test
|
|
250
|
+
- ✅ `tests/` directory with sample TypeScript test
|
|
180
251
|
- ✅ `test-results/` for test outputs
|
|
181
252
|
- ✅ `test-recorder/` for recorded tests
|
|
182
253
|
- ✅ `.env` file with API key placeholder
|
|
183
|
-
- ✅ `endorphin.config.
|
|
254
|
+
- ✅ `endorphin.config.ts` with optimized TypeScript settings
|
|
255
|
+
- ✅ `tsconfig.json` for TypeScript compilation
|
|
184
256
|
- ✅ `.gitignore` with Endorphin-specific patterns
|
|
185
257
|
- ✅ `README-ENDORPHIN.md` quick start guide
|
|
186
258
|
|
|
@@ -219,9 +291,10 @@ npm update endorphin-ai
|
|
|
219
291
|
npx endorphin init
|
|
220
292
|
|
|
221
293
|
# What gets created:
|
|
222
|
-
# ├── tests/sample-test.
|
|
294
|
+
# ├── tests/sample-test.ts # Ready-to-run TypeScript test
|
|
223
295
|
# ├── .env # API key configuration
|
|
224
|
-
# ├── endorphin.config.
|
|
296
|
+
# ├── endorphin.config.ts # Framework settings (TypeScript)
|
|
297
|
+
# ├── tsconfig.json # TypeScript configuration
|
|
225
298
|
# ├── .gitignore # Endorphin-specific ignores
|
|
226
299
|
# └── README-ENDORPHIN.md # Quick start guide
|
|
227
300
|
```
|
|
@@ -363,11 +436,13 @@ reliability and maintainability.
|
|
|
363
436
|
### Default Configuration
|
|
364
437
|
|
|
365
438
|
Endorphin AI works out of the box with sensible defaults, but you can customize
|
|
366
|
-
it by creating an `endorphin.config.
|
|
439
|
+
it by creating an `endorphin.config.ts` file in your project root:
|
|
440
|
+
|
|
441
|
+
```typescript
|
|
442
|
+
// endorphin.config.ts
|
|
443
|
+
import type { FrameworkConfig } from 'endorphin-ai';
|
|
367
444
|
|
|
368
|
-
|
|
369
|
-
// endorphin.config.js
|
|
370
|
-
export default {
|
|
445
|
+
const config: FrameworkConfig = {
|
|
371
446
|
// Global test settings
|
|
372
447
|
defaultTimeout: 30000,
|
|
373
448
|
headless: false,
|
|
@@ -383,6 +458,8 @@ export default {
|
|
|
383
458
|
screenshots: true,
|
|
384
459
|
recordVideo: false,
|
|
385
460
|
};
|
|
461
|
+
|
|
462
|
+
export default config;
|
|
386
463
|
```
|
|
387
464
|
|
|
388
465
|
### CLI Options
|
|
@@ -425,20 +502,28 @@ You can organize your tests using tags and priorities:
|
|
|
425
502
|
|
|
426
503
|
### Example Test Organization
|
|
427
504
|
|
|
428
|
-
```
|
|
429
|
-
// tests/auth-tests.
|
|
430
|
-
|
|
505
|
+
```typescript
|
|
506
|
+
// tests/auth-tests.ts
|
|
507
|
+
import type { TestCase } from 'endorphin-ai';
|
|
508
|
+
|
|
509
|
+
export const LOGIN_TEST: TestCase = {
|
|
431
510
|
id: 'AUTH-001',
|
|
511
|
+
name: 'User Login Test',
|
|
512
|
+
description: 'Test user authentication flow',
|
|
432
513
|
tags: ['authentication', 'smoke'],
|
|
433
514
|
priority: 'High',
|
|
434
|
-
|
|
515
|
+
site: 'https://example.com',
|
|
516
|
+
task: 'Navigate to login page and authenticate user...',
|
|
435
517
|
};
|
|
436
518
|
|
|
437
|
-
export const LOGOUT_TEST = {
|
|
519
|
+
export const LOGOUT_TEST: TestCase = {
|
|
438
520
|
id: 'AUTH-002',
|
|
521
|
+
name: 'User Logout Test',
|
|
522
|
+
description: 'Test user logout functionality',
|
|
439
523
|
tags: ['authentication'],
|
|
440
524
|
priority: 'Medium',
|
|
441
|
-
|
|
525
|
+
site: 'https://example.com',
|
|
526
|
+
task: 'Log out the authenticated user...',
|
|
442
527
|
};
|
|
443
528
|
```
|
|
444
529
|
|
|
@@ -449,20 +534,23 @@ Your project should look like this:
|
|
|
449
534
|
```
|
|
450
535
|
my-test-project/
|
|
451
536
|
├── .env # OpenAI API key
|
|
452
|
-
├── tests/ # Your test files
|
|
453
|
-
│ ├── login-test.
|
|
454
|
-
│ ├── checkout-test.
|
|
455
|
-
│ └── navigation-test.
|
|
456
|
-
├── endorphin.config.
|
|
537
|
+
├── tests/ # Your test files (TypeScript)
|
|
538
|
+
│ ├── login-test.ts # Authentication tests
|
|
539
|
+
│ ├── checkout-test.ts # E-commerce tests
|
|
540
|
+
│ └── navigation-test.ts # UI/Navigation tests
|
|
541
|
+
├── endorphin.config.ts # Optional configuration (TypeScript)
|
|
542
|
+
├── tsconfig.json # TypeScript configuration
|
|
457
543
|
└── package.json # Project config
|
|
458
544
|
```
|
|
459
545
|
|
|
460
546
|
## 📝 Test File Format
|
|
461
547
|
|
|
462
|
-
Each test file should export test objects with
|
|
548
|
+
Each test file should export test objects with TypeScript types:
|
|
549
|
+
|
|
550
|
+
```typescript
|
|
551
|
+
import type { TestCase } from 'endorphin-ai';
|
|
463
552
|
|
|
464
|
-
|
|
465
|
-
export const QE001 = {
|
|
553
|
+
export const QE001: TestCase = {
|
|
466
554
|
id: 'QE-001', // Unique test identifier
|
|
467
555
|
name: 'Basic Login Test', // Human readable name
|
|
468
556
|
description: 'Test login functionality with valid credentials',
|
|
@@ -470,21 +558,33 @@ export const QE001 = {
|
|
|
470
558
|
tags: ['authentication', 'login', 'smoke'], // Categories
|
|
471
559
|
site: 'https://example.com/', // Target website
|
|
472
560
|
testData: {
|
|
473
|
-
// Test data (optional)
|
|
561
|
+
// Test data (optional, fully typed)
|
|
474
562
|
email: 'test@example.com',
|
|
475
563
|
password: 'password123',
|
|
476
564
|
},
|
|
477
565
|
task: `Your test instructions in plain English...`,
|
|
478
566
|
};
|
|
479
567
|
|
|
480
|
-
// Multiple tests per file
|
|
481
|
-
export const QE002 = {
|
|
568
|
+
// Multiple tests per file with full type safety
|
|
569
|
+
export const QE002: TestCase = {
|
|
482
570
|
id: 'QE-002',
|
|
483
571
|
name: 'Registration Test',
|
|
484
|
-
|
|
572
|
+
description: 'Test user registration flow',
|
|
573
|
+
priority: 'Medium',
|
|
574
|
+
tags: ['authentication', 'registration'],
|
|
575
|
+
site: 'https://example.com/',
|
|
576
|
+
task: 'Test new user registration process...',
|
|
485
577
|
};
|
|
486
578
|
```
|
|
487
579
|
|
|
580
|
+
### 🎯 TypeScript Benefits
|
|
581
|
+
|
|
582
|
+
- ✅ **Full type safety** for test configuration
|
|
583
|
+
- ✅ **IntelliSense support** in your IDE
|
|
584
|
+
- ✅ **Compile-time error checking**
|
|
585
|
+
- ✅ **Auto-completion** for test properties
|
|
586
|
+
- ✅ **Refactoring support** across your test suite
|
|
587
|
+
|
|
488
588
|
## 📊 Test Results
|
|
489
589
|
|
|
490
590
|
Each test execution creates:
|
|
@@ -531,19 +631,63 @@ utilities.
|
|
|
531
631
|
📖
|
|
532
632
|
**[View detailed tool documentation](./doc/Framework-Architecture.md#browser-automation-tools)**
|
|
533
633
|
|
|
534
|
-
|
|
634
|
+
---
|
|
635
|
+
|
|
636
|
+
## 💡 Common Use Cases
|
|
637
|
+
|
|
638
|
+
### 🔐 Authentication Testing
|
|
639
|
+
```bash
|
|
640
|
+
# Test login flows across different user types
|
|
641
|
+
npx endorphin run test --tag authentication
|
|
642
|
+
```
|
|
535
643
|
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
✅ **Flexible Configuration**: Easily customizable browser and AI settings
|
|
542
|
-
✅ **Comprehensive Reporting**: Detailed results with visual documentation
|
|
543
|
-
✅ **Error Handling**: Robust retry mechanisms and failure recovery
|
|
644
|
+
### 🛒 E-commerce Workflows
|
|
645
|
+
```bash
|
|
646
|
+
# Test complete purchase flows
|
|
647
|
+
npx endorphin run test --tag checkout
|
|
648
|
+
```
|
|
544
649
|
|
|
545
|
-
|
|
546
|
-
|
|
650
|
+
### 📱 Responsive Testing
|
|
651
|
+
```bash
|
|
652
|
+
# Test mobile, tablet, and desktop layouts
|
|
653
|
+
npx endorphin run test --tag responsive
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
### 🔍 Search & Navigation
|
|
657
|
+
```bash
|
|
658
|
+
# Test site search and menu navigation
|
|
659
|
+
npx endorphin run test --tag navigation
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
### 📊 Form Validation
|
|
663
|
+
```bash
|
|
664
|
+
# Test form submissions and validation
|
|
665
|
+
npx endorphin run test --tag forms
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
---
|
|
669
|
+
|
|
670
|
+
## 🏆 Why Choose Endorphin AI?
|
|
671
|
+
|
|
672
|
+
### Traditional E2E Testing vs Endorphin AI
|
|
673
|
+
|
|
674
|
+
| Traditional Testing | Endorphin AI |
|
|
675
|
+
|-------------------|-------------|
|
|
676
|
+
| ❌ Brittle CSS selectors | ✅ AI finds elements intelligently |
|
|
677
|
+
| ❌ Breaks with UI changes | ✅ Self-healing tests |
|
|
678
|
+
| ❌ Complex setup | ✅ Zero configuration |
|
|
679
|
+
| ❌ Hard to maintain | ✅ Plain English test descriptions |
|
|
680
|
+
| ❌ Basic reporting | ✅ Interactive HTML reports |
|
|
681
|
+
| ❌ Manual debugging | ✅ Visual debugging with screenshots |
|
|
682
|
+
|
|
683
|
+
### 🚀 Production Ready
|
|
684
|
+
|
|
685
|
+
✅ **Enterprise Scale**: Used in production environments
|
|
686
|
+
✅ **Cross-Platform**: Windows, macOS, Linux support
|
|
687
|
+
✅ **CI/CD Integration**: GitHub Actions, Jenkins, CircleCI
|
|
688
|
+
✅ **Security First**: Automated vulnerability scanning
|
|
689
|
+
✅ **Type Safe**: Full TypeScript support
|
|
690
|
+
✅ **Extensible**: Modular architecture for custom needs
|
|
547
691
|
|
|
548
692
|
## 🎮 Complete CLI Reference
|
|
549
693
|
|
|
@@ -679,7 +823,10 @@ Add these to your `package.json`:
|
|
|
679
823
|
"test:report": "endorphin generate report",
|
|
680
824
|
"test:summary": "endorphin generate report --summary",
|
|
681
825
|
"test:open": "endorphin open report",
|
|
682
|
-
"test:cleanup": "endorphin cleanup results"
|
|
826
|
+
"test:cleanup": "endorphin cleanup results",
|
|
827
|
+
"endorphin:init": "./node_modules/.bin/endorphin init",
|
|
828
|
+
"endorphin:version": "./node_modules/.bin/endorphin --version",
|
|
829
|
+
"endorphin:help": "./node_modules/.bin/endorphin --help"
|
|
683
830
|
}
|
|
684
831
|
}
|
|
685
832
|
```
|
|
@@ -691,6 +838,11 @@ npm test # Run all tests
|
|
|
691
838
|
npm run test:smoke # Run smoke tests
|
|
692
839
|
npm run test:report # Generate HTML report
|
|
693
840
|
npm run test:open # Open latest report
|
|
841
|
+
|
|
842
|
+
# Guaranteed to work (bypasses npx issues):
|
|
843
|
+
npm run endorphin:init # Initialize project
|
|
844
|
+
npm run endorphin:version # Check version
|
|
845
|
+
npm run endorphin:help # Get help
|
|
694
846
|
```
|
|
695
847
|
|
|
696
848
|
## 🔄 Staying Updated
|
|
@@ -723,23 +875,60 @@ npx endorphin --version
|
|
|
723
875
|
|
|
724
876
|
### Version History & Features
|
|
725
877
|
|
|
878
|
+
- **v0.6.1** *(Latest)*: Fixed npx resolution issues, enhanced user experience
|
|
879
|
+
- **v0.6.0**: Enhanced CLI, security-first publishing, cross-platform CI/CD
|
|
880
|
+
- **v0.5.0**: Advanced HTML reporting with interactive features
|
|
881
|
+
- **v0.4.0**: TypeScript-first experience with full type definitions
|
|
726
882
|
- **v0.3.0**: Added `endorphin init` command for instant project setup
|
|
727
883
|
- **v0.2.x**: Core framework with AI-powered testing
|
|
728
884
|
- **v0.1.x**: Initial release with basic functionality
|
|
729
885
|
|
|
730
|
-
###
|
|
886
|
+
### Compatibility & Migration
|
|
887
|
+
|
|
888
|
+
Endorphin AI maintains **backward compatibility** across versions:
|
|
889
|
+
|
|
890
|
+
- ✅ **All existing tests work** without modification
|
|
891
|
+
- ✅ **Configuration files** are automatically migrated
|
|
892
|
+
- ✅ **npm scripts** continue to function normally
|
|
893
|
+
- ✅ **Semantic versioning** ensures predictable updates
|
|
731
894
|
|
|
732
|
-
|
|
895
|
+
Update with confidence - your existing tests won't break!
|
|
733
896
|
|
|
734
|
-
|
|
735
|
-
- **Minor versions** (0.3.0): New features, backward compatible
|
|
736
|
-
- **Patch versions** (0.2.1): Bug fixes, backward compatible
|
|
897
|
+
---
|
|
737
898
|
|
|
738
|
-
##
|
|
899
|
+
## 🤝 Support & Community
|
|
739
900
|
|
|
740
|
-
|
|
741
|
-
|
|
901
|
+
### 📚 Documentation
|
|
902
|
+
- **[Quick Start Guide](./README.md)** - Get up and running quickly
|
|
903
|
+
- **[HTML Reporter Guide](./doc/user-guide/HTML-Reporter-Guide.md)** - Interactive reporting
|
|
904
|
+
- **[Framework Architecture](./doc/Framework-Architecture.md)** - Technical deep dive
|
|
742
905
|
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
906
|
+
### 🐛 Issues & Feature Requests
|
|
907
|
+
Found a bug or have a feature idea? [Open an issue](https://github.com/andrewnovykov/endorphin-ai/issues) on GitHub.
|
|
908
|
+
|
|
909
|
+
### 💬 Getting Help
|
|
910
|
+
- Check the **[documentation](./doc/)** first
|
|
911
|
+
- Search **[existing issues](https://github.com/andrewnovykov/endorphin-ai/issues)**
|
|
912
|
+
- Create a **[new issue](https://github.com/andrewnovykov/endorphin-ai/issues/new)** with details
|
|
913
|
+
|
|
914
|
+
---
|
|
915
|
+
|
|
916
|
+
## 📄 License
|
|
917
|
+
|
|
918
|
+
Endorphin AI is licensed under the **GNU Affero General Public License v3.0** (AGPLv3).
|
|
919
|
+
|
|
920
|
+
**For Open Source Projects**: Free to use under AGPLv3
|
|
921
|
+
**For Commercial Projects**: Commercial licenses available
|
|
922
|
+
|
|
923
|
+
📧 Contact: [iam@andrewnovykov.com](mailto:iam@andrewnovykov.com) for licensing questions
|
|
924
|
+
|
|
925
|
+
---
|
|
926
|
+
|
|
927
|
+
<div align="center">
|
|
928
|
+
<p><strong>⚡ Ready to revolutionize your testing?</strong></p>
|
|
929
|
+
<p>
|
|
930
|
+
<a href="#-installation--setup">Get Started Now</a> •
|
|
931
|
+
<a href="https://youtu.be/ev_71RBO6g8?si=F9xTPSJNp36Mr1wx">Watch Demo</a> •
|
|
932
|
+
<a href="./doc/">Documentation</a>
|
|
933
|
+
</p>
|
|
934
|
+
</div>
|
|
Binary file
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration loader for Endorphin AI
|
|
3
3
|
* Handles loading and merging of configuration from multiple sources
|
|
4
4
|
*/
|
|
5
|
-
import type { CLIFlags, FrameworkConfig } from '
|
|
5
|
+
import type { CLIFlags, FrameworkConfig } from '@/types/index';
|
|
6
6
|
export declare class ConfigLoader {
|
|
7
7
|
private defaultConfig;
|
|
8
8
|
constructor();
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Test Manager - Handles test discovery, loading, and execution coordination (TypeScript)
|
|
3
3
|
* Manages individual test files in the tests/ folder
|
|
4
4
|
*/
|
|
5
|
-
import type { TaskResult, TestConfig } from '
|
|
5
|
+
import type { TaskResult, TestConfig } from '@/types/index';
|
|
6
6
|
interface LoadedTest extends TestConfig {
|
|
7
7
|
filename: string;
|
|
8
8
|
filePath: string;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Test Results Manager Module
|
|
3
3
|
* Handles test result collection, storage, and processing
|
|
4
4
|
*/
|
|
5
|
-
import type { TestReport, TestSession } from '
|
|
5
|
+
import type { TestReport, TestSession } from '@/types/index';
|
|
6
6
|
export interface TestResultsManagerOptions {
|
|
7
7
|
resultsDir?: string;
|
|
8
8
|
recorderDir?: string;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Parses test result data from the test-results directory
|
|
4
4
|
* Handles aggregation and processing of test execution data for reporting
|
|
5
5
|
*/
|
|
6
|
-
import type { TestSession, TestSummary } from '
|
|
6
|
+
import type { TestSession, TestSummary } from '@/types/index';
|
|
7
7
|
/**
|
|
8
8
|
* Parsed test result data structure
|
|
9
9
|
*/
|