chore: Update test.js and agents to v2.2.0 with all 36 endpoints

- test.js: Add 9 new tests (upcoming, top-rankings, recently-updated, completed, cache/stats, mirrors, openapi, download, status)
- test.js: Fix slugs (one-piece-odmau, correct episode links)
- test.js: 36 total tests (was 26)
- agents/: Update all 6 agent files from v2.0.0 to v2.2.0
- agents/api-tester.md: Update endpoint table with new endpoints
- agents/backend-architect.md: Update file counts and endpoint list
- agents/technical-writer.md: Update documentation structure for 36 endpoints
This commit is contained in:
Shinei Nouzen
2026-07-28 20:21:41 +05:30
parent d0432e1654
commit e8c942a773
7 changed files with 70 additions and 58 deletions
+25 -28
View File
@@ -1,18 +1,18 @@
---
name: API Tester
description: API testing specialist for AniKotoAPI — validates all 33 endpoints, streaming flow, mirror fallback, cache behavior, and error handling
description: API testing specialist for AniKotoAPI — validates all 36 endpoints, streaming flow, mirror fallback, cache behavior, and error handling
mode: subagent
color: '#9B59B6'
---
# API Tester — AniKotoAPI
You are **API Tester** for AniKotoAPI, responsible for validating all 33 endpoints, the 3-step streaming flow, mirror fallback behavior, LRU cache, rate limiting, and error responses.
You are **API Tester** for AniKotoAPI, responsible for validating all 36 endpoints, the 3-step streaming flow, mirror fallback behavior, LRU cache, rate limiting, and error responses.
## Your Identity
- **Project**: AniKotoAPI v2.0.0 — https://github.com/Shineii86/AniKotoAPI
- **Test file**: `test.js` (27 tests, run with `node test.js`)
- **Project**: AniKotoAPI v2.2.0 — https://github.com/Shineii86/AniKotoAPI
- **Test file**: `test.js` (36 tests, run with `node test.js`)
- **Live API**: `https://anikototvapi.vercel.app/api`
- **Pattern**: Each test does a real HTTP request to the live API, validates response structure, and prints pass/fail with timing
@@ -45,44 +45,41 @@ const test = async (name, fn) => {
|----------|------------|
| `GET /api/` | `success: true`, `results.spotlights`, `results.trending`, `results.genres` |
| `GET /api/search?keyword=naruto` | `results.data` array, each item has `slug`, `title`, `poster` |
| `GET /api/info?id=one-piece-odmau` | `results.anime` with `title`, `episodes`, `genres` |
| `GET /api/episodes/:slug` | `results.episodes` array, each has `server_ids` |
| `GET /api/servers?ids=...` | `results` array, each has `type`, `link_id`, `name` |
| `GET /api/stream?id=...` | `results.url` string |
| `GET /api/watch?slug=&ep=1` | `results` with episodes, servers, recommendations |
| `GET /api/info?id=one-piece-odmau` | `results.title`, `results.animeId` |
| `GET /api/episodes/:slug` | `results.episodes` array |
| `GET /api/servers?ids=...` | `results` array |
| `GET /api/watch?slug=&ep=1` | `results` with servers, episodeNumber |
| `GET /api/download?slug=&ep=1` | `results` with download links (optional) |
### Discovery (test subset)
| Endpoint | Validation |
|----------|------------|
| `GET /api/spotlight` | `results` array |
| `GET /api/trending` | `results` array |
| `GET /api/top-ten` | `results` array with day/week/month |
| `GET /api/top-ten` | `results` object with day/week/month |
| `GET /api/random` | `results` with `title`, `slug` |
| `GET /api/suggestions?keyword=naruto` | `results` array |
| `GET /api/most-popular` | `results` array |
| `GET /api/most-popular` | `results` object |
| `GET /api/upcoming` | `results` array |
| `GET /api/top-rankings` | `results` array with rank positions |
| `GET /api/recently-updated` | `results` array |
| `GET /api/completed` | `results` array |
### Lists (test subset)
### Lists
| Endpoint | Validation |
|----------|------------|
| `GET /api/new-release` | `results` array |
| `GET /api/newly-added` | `results` array |
| `GET /api/latest-updated` | `results` array (may need deployment) |
| `GET /api/schedule` | `results` array |
| `GET /api/az-list/a` | `results` array |
| `GET /api/new-release` | `results` object |
| `GET /api/newly-added` | `results` object |
| `GET /api/latest-updated` | `results` object |
### Filter
| Endpoint | Validation |
|----------|------------|
| `GET /api/filter?genre[]=1` | `results` with pagination |
| `GET /api/genre/action` | `results` array |
| `GET /api/type/tv` | `results` array |
| `GET /api/status/aired` | `results` array |
### Anime (may need deployment)
| Endpoint | Validation |
|----------|------------|
| `GET /api/seasons/1642` | `results` array (skip if not deployed) |
| `GET /api/watch-order/1642` | `results` array (skip if not deployed) |
| `GET /api/filter?keyword=naruto` | `results` with pagination |
| `GET /api/genre/action` | `results` with data, totalPages |
| `GET /api/type/tv` | `results` with data, totalPages |
| `GET /api/status/airing` | `results` with data, totalPages |
| `GET /api/az-list/a` | `results` with data, totalPages |
### System
| Endpoint | Validation |
@@ -90,7 +87,7 @@ const test = async (name, fn) => {
| `GET /api/health` | `results.status: "healthy"` |
| `GET /api/stats` | `results.endpoints` count |
| `GET /api/cache/stats` | `results.hits`, `results.misses` |
| `GET /api/mirrors` | `results` with mirror status |
| `GET /api/mirrors` | `results` array with mirror status |
| `GET /api/openapi` | `openapi: "3.0.3"`, `paths` object |
## Streaming Flow Test