diff --git a/.claude/hooks/CLAUDE.md b/.claude/hooks/CLAUDE.md index ebda995..44cb2a3 100644 --- a/.claude/hooks/CLAUDE.md +++ b/.claude/hooks/CLAUDE.md @@ -109,3 +109,12 @@ bun --hot ./index.ts ``` For more information, read the Bun API docs in `node_modules/bun-types/docs/**.mdx`. + + + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file diff --git a/.claude/settings.json b/.claude/settings.json index 1683629..530baf5 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -6,7 +6,7 @@ "hooks": [ { "type": "command", - "command": "bun /Users/elvis/Documents/Git/HomeLab-Tools/dokploy/.claude/hooks/index.ts Notification" + "command": "bun /opt/dokploy/.worktrees/feature/add-codecov-workflow/.claude/hooks/index.ts Notification" } ] } @@ -17,7 +17,7 @@ "hooks": [ { "type": "command", - "command": "bun /Users/elvis/Documents/Git/HomeLab-Tools/dokploy/.claude/hooks/index.ts Stop" + "command": "bun /opt/dokploy/.worktrees/feature/add-codecov-workflow/.claude/hooks/index.ts Stop" } ] } @@ -28,7 +28,7 @@ "hooks": [ { "type": "command", - "command": "bun /Users/elvis/Documents/Git/HomeLab-Tools/dokploy/.claude/hooks/index.ts PreToolUse" + "command": "bun /opt/dokploy/.worktrees/feature/add-codecov-workflow/.claude/hooks/index.ts PreToolUse" } ] } @@ -39,7 +39,7 @@ "hooks": [ { "type": "command", - "command": "bun /Users/elvis/Documents/Git/HomeLab-Tools/dokploy/.claude/hooks/index.ts PostToolUse" + "command": "bun /opt/dokploy/.worktrees/feature/add-codecov-workflow/.claude/hooks/index.ts PostToolUse" } ] } @@ -50,7 +50,7 @@ "hooks": [ { "type": "command", - "command": "bun /Users/elvis/Documents/Git/HomeLab-Tools/dokploy/.claude/hooks/index.ts SubagentStop" + "command": "bun /opt/dokploy/.worktrees/feature/add-codecov-workflow/.claude/hooks/index.ts SubagentStop" } ] } @@ -61,7 +61,7 @@ "hooks": [ { "type": "command", - "command": "bun /Users/elvis/Documents/Git/HomeLab-Tools/dokploy/.claude/hooks/index.ts UserPromptSubmit" + "command": "bun /opt/dokploy/.worktrees/feature/add-codecov-workflow/.claude/hooks/index.ts UserPromptSubmit" } ] } @@ -72,7 +72,18 @@ "hooks": [ { "type": "command", - "command": "bun /Users/elvis/Documents/Git/HomeLab-Tools/dokploy/.claude/hooks/index.ts PreCompact" + "command": "bun /opt/dokploy/.worktrees/feature/add-codecov-workflow/.claude/hooks/index.ts PreCompact" + } + ] + } + ], + "SessionStart": [ + { + "matcher": "", + "hooks": [ + { + "type": "command", + "command": "bun /opt/dokploy/.worktrees/feature/add-codecov-workflow/.claude/hooks/index.ts SessionStart" } ] } diff --git a/.github/workflows/CLAUDE.md b/.github/workflows/CLAUDE.md new file mode 100644 index 0000000..adfdcb1 --- /dev/null +++ b/.github/workflows/CLAUDE.md @@ -0,0 +1,7 @@ + +# Recent Activity + + + +*No recent activity* + \ No newline at end of file diff --git a/.gitignore b/.gitignore index e2746db..a88ffd4 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,19 @@ yarn-error.log* tmp/ temp/ SESSION_LOG.md + +# Git worktrees +.worktrees/ + +# Node.js +node_modules/ +package-lock.json + +# Testing +coverage/ +.nyc_output/ +*.tsbuildinfo + +# Build +dist/ +build/ diff --git a/README.md b/README.md index f9fdbc8..9b179b0 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # Dokploy Templates + Cloudflare Integration - AI Coding Agent System -**Version:** 1.0.0 -**Last Updated:** December 24, 2025 -**Repository:** https://github.com/enuno/dokploy +[![codecov](https://codecov.io/github/enuno/dokploy/graph/badge.svg?token=51RJO0LXYK)](https://codecov.io/github/enuno/dokploy) + +**Version:** 1.0.0 +**Last Updated:** December 24, 2025 +**Repository:** https://github.com/enuno/dokploy **Project Lead:** Ryno Crypto Mining Services - ServerDomes Network Engineering --- @@ -495,6 +497,10 @@ All templates must meet: - ✅ **Documentation:** Complete and clear - ✅ **No Secrets:** Hardcoded credentials forbidden +### Code Coverage Visualization + +![Coverage Sunburst](https://codecov.io/github/enuno/dokploy/graphs/sunburst.svg?token=51RJO0LXYK) + --- ## 🔄 Contributing diff --git a/__tests__/CLAUDE.md b/__tests__/CLAUDE.md new file mode 100644 index 0000000..2b7f479 --- /dev/null +++ b/__tests__/CLAUDE.md @@ -0,0 +1,11 @@ + +# Recent Activity + + + +### Jan 27, 2026 + +| ID | Time | T | Title | Read | +|----|------|---|-------|------| +| #498 | 11:36 PM | 🟣 | Added infrastructure smoke tests for Jest and TypeScript | ~284 | + \ No newline at end of file diff --git a/__tests__/infrastructure.test.ts b/__tests__/infrastructure.test.ts new file mode 100644 index 0000000..bd8bdb9 --- /dev/null +++ b/__tests__/infrastructure.test.ts @@ -0,0 +1,20 @@ +/** + * Infrastructure smoke test + * Verifies that Jest, TypeScript, and coverage collection work correctly + */ + +describe('Testing Infrastructure', () => { + test('Jest can run tests', () => { + expect(true).toBe(true); + }); + + test('TypeScript compilation works', () => { + const value: string = 'test'; + expect(typeof value).toBe('string'); + }); + + test('Basic assertions work', () => { + const sum = (a: number, b: number): number => a + b; + expect(sum(2, 3)).toBe(5); + }); +}); diff --git a/package.json b/package.json new file mode 100644 index 0000000..adfc042 --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "dokploy-templates", + "version": "1.0.0", + "description": "Production-ready Dokploy application templates with Cloudflare integration", + "private": true, + "scripts": { + "test": "jest", + "test:coverage": "jest --coverage", + "test:watch": "jest --watch" + }, + "devDependencies": { + "@types/jest": "^29.5.12", + "jest": "^29.7.0", + "ts-jest": "^29.1.2", + "typescript": "^5.3.3" + }, + "jest": { + "preset": "ts-jest", + "testEnvironment": "node", + "testMatch": [ + "**/__tests__/**/*.ts", + "**/?(*.)+(spec|test).ts" + ], + "collectCoverageFrom": [ + "**/*.ts", + "!**/*.d.ts", + "!**/node_modules/**", + "!**/__tests__/**" + ] + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..b533ca8 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "commonjs", + "lib": ["ES2020"], + "outDir": "./dist", + "rootDir": "./", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "moduleResolution": "node", + "types": ["jest", "node"] + }, + "include": ["**/*.ts"], + "exclude": ["node_modules", "dist"] +}