Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,7 @@ Thumbs.db
vitest-ctrf/
playwright-report/
ctrf/
test-results/
test-results/

# Claude Code
.claude/
28 changes: 14 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,24 +222,24 @@ fi
```
src/
├── components/ # React UI components
│ ├── ConfigForm.jsx # API endpoint configuration form
│ ├── TestRunner.jsx # Test execution controller
│ ├── ResultsPanel.jsx # Basic validation results display
│ └── EnhancedResultsPanel.jsx # Advanced results with export features
│ ├── ConfigForm.tsx # API endpoint configuration form
│ ├── TestRunner.tsx # Test execution controller
│ ├── ResultsPanel.tsx # Basic validation results display
│ └── EnhancedResultsPanel.tsx # Advanced results with export features
├── validators/ # JSON:API validation logic
│ ├── DocumentValidator.js # Document structure validation
│ ├── ResourceValidator.js # Resource object validation
│ ├── ErrorValidator.js # Error response validation
│ ├── DocumentValidator.ts # Document structure validation
│ ├── ResourceValidator.ts # Resource object validation
│ ├── ErrorValidator.ts # Error response validation
│ ├── QueryValidator.ts # Query parameter validation
│ ├── PaginationValidator.js # Pagination validation
│ ├── PaginationValidator.ts # Pagination validation
│ └── [8 more validators...] # Comprehensive validation suite
├── utils/ # Core utilities
│ ├── ValidationService.js # Main validation orchestration
│ ├── ValidationReporter.js # Report formatting and export
│ ├── ApiClient.js # HTTP request client
│ └── UrlValidator.js # URL validation utilities
├── App.jsx # Main application component
└── main.jsx # Application entry point
│ ├── ValidationService.ts # Main validation orchestration
│ ├── ValidationReporter.ts # Report formatting and export
│ ├── ApiClient.ts # HTTP request client
│ └── UrlValidator.ts # URL validation utilities
├── App.tsx # Main application component
└── main.tsx # Application entry point
```

### Mock Server for Testing
Expand Down
30 changes: 28 additions & 2 deletions eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import js from '@eslint/js'
import react from 'eslint-plugin-react'
import reactHooks from 'eslint-plugin-react-hooks'
import globals from 'globals'
import tseslint from 'typescript-eslint'

export default [
{ ignores: ['dist'] },
Expand Down Expand Up @@ -30,9 +31,34 @@ export default [
'react/prop-types': 'off',
},
},
{
files: ['**/*.{ts,tsx}'],
languageOptions: {
parser: tseslint.parser,
parserOptions: {
project: true,
},
globals: globals.browser,
},
settings: { react: { version: '18.2' } },
plugins: {
'@typescript-eslint': tseslint.plugin,
react,
'react-hooks': reactHooks,
},
rules: {
...js.configs.recommended.rules,
...tseslint.configs.recommended.at(-1).rules,
...react.configs.recommended.rules,
...react.configs['jsx-runtime'].rules,
...reactHooks.configs.recommended.rules,
'react/jsx-no-target-blank': 'off',
'react/prop-types': 'off',
},
},
// Test files configuration
{
files: ['**/*.test.{js,jsx}', '**/*.spec.{js,jsx}', 'src/test-setup.js', 'tests/**/*.js'],
files: ['**/*.test.{js,jsx,ts,tsx}', '**/*.spec.{js,jsx,ts,tsx}', 'src/test-setup.js', 'tests/**/*.{js,ts}'],
languageOptions: {
globals: {
...globals.browser,
Expand All @@ -49,4 +75,4 @@ export default [
}
}
}
]
]
Loading