chrome-extension-test-framework
Version:
Universal testing framework for Chrome extensions - Fast static analysis without browser dependencies
307 lines • 8.67 kB
JSON
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Chrome Extension Test Framework Configuration",
"description": "Configuration schema for Chrome Extension Test Framework",
"type": "object",
"properties": {
"$schema": {
"type": "string",
"description": "JSON Schema reference"
},
"extensionPath": {
"type": "string",
"description": "Path to the Chrome extension directory",
"default": "."
},
"output": {
"type": "object",
"description": "Output configuration",
"properties": {
"format": {
"type": "array",
"description": "Output formats",
"items": {
"type": "string",
"enum": ["console", "json", "html", "markdown", "junit"]
},
"default": ["console", "json"]
},
"directory": {
"type": "string",
"description": "Output directory for reports",
"default": "./test-results"
},
"filename": {
"type": "string",
"description": "Base filename for reports",
"default": "test-report"
}
},
"additionalProperties": false
},
"validation": {
"type": "object",
"description": "Validation settings",
"properties": {
"manifest": {
"type": "boolean",
"description": "Enable manifest validation",
"default": true
},
"permissions": {
"type": "boolean",
"description": "Enable permissions validation",
"default": true
},
"csp": {
"type": "boolean",
"description": "Enable CSP validation",
"default": true
},
"icons": {
"type": "boolean",
"description": "Enable icons validation",
"default": true
},
"locales": {
"type": "boolean",
"description": "Enable locales validation",
"default": true
}
},
"additionalProperties": false
},
"exclude": {
"type": "array",
"description": "Patterns to exclude from testing",
"items": {
"type": "string"
},
"default": ["node_modules/**", "test/**", "tests/**", "*.test.js", "*.spec.js"]
},
"include": {
"type": "array",
"description": "Patterns to include in testing (overrides exclude)",
"items": {
"type": "string"
}
},
"profile": {
"oneOf": [
{
"type": "string",
"enum": ["development", "production", "ci", "quick", "security-focused", "performance", "minimal"],
"description": "Built-in profile name"
},
{
"type": "object",
"description": "Custom profile configuration",
"properties": {
"name": {
"type": "string",
"description": "Profile name"
},
"description": {
"type": "string",
"description": "Profile description"
},
"skipTests": {
"type": "array",
"description": "Tests to skip",
"items": {
"type": "string"
}
},
"additionalTests": {
"type": "array",
"description": "Additional tests to run",
"items": {
"type": "string"
}
},
"warningLevels": {
"type": "object",
"description": "Warning level overrides",
"patternProperties": {
".*": {
"type": "string",
"enum": ["error", "warn", "info", "ignore"]
}
}
},
"failOnWarning": {
"type": "boolean",
"description": "Fail on warnings"
},
"failOnError": {
"type": "boolean",
"description": "Fail on errors"
},
"maxFileSize": {
"type": "number",
"description": "Maximum file size in bytes"
},
"consoleThresholds": {
"type": "object",
"description": "Console usage thresholds"
}
},
"required": ["name"],
"additionalProperties": false
}
]
},
"consoleThresholds": {
"type": "object",
"description": "Console usage thresholds by file type",
"properties": {
"production": {
"type": "number",
"description": "Threshold for production code",
"default": 10
},
"development": {
"type": "number",
"description": "Threshold for development code",
"default": 100
},
"test": {
"type": ["number", "null"],
"description": "Threshold for test files (null = unlimited)",
"default": null
},
"service-worker": {
"type": "number",
"description": "Threshold for service workers",
"default": 5
},
"content-script": {
"type": "number",
"description": "Threshold for content scripts",
"default": 15
},
"production-build": {
"type": ["number", "null"],
"description": "Threshold for build outputs",
"default": null
}
},
"additionalProperties": {
"type": "number"
}
},
"allowedDevFiles": {
"type": "array",
"description": "Development files that are allowed in the extension",
"items": {
"type": "string"
}
},
"failOnWarning": {
"type": "boolean",
"description": "Exit with non-zero code on warnings",
"default": false
},
"failOnError": {
"type": "boolean",
"description": "Exit with non-zero code on errors",
"default": true
},
"parallel": {
"type": "boolean",
"description": "Run tests in parallel",
"default": false
},
"timeout": {
"type": "number",
"description": "Test timeout in milliseconds",
"default": 30000,
"minimum": 1000
},
"suites": {
"type": "array",
"description": "Test suites to run",
"items": {
"type": "string",
"enum": ["manifest", "security", "performance", "structure", "localization", "all"]
},
"default": ["all"]
},
"plugins": {
"type": "array",
"description": "Plugins to use",
"items": {
"type": "string"
}
},
"rules": {
"type": "array",
"description": "Custom validation rules",
"items": {
"type": "object"
}
},
"warningLevels": {
"type": "object",
"description": "Warning level configuration",
"patternProperties": {
".*": {
"type": "string",
"enum": ["error", "warn", "info", "ignore"]
}
}
},
"knownIssues": {
"type": "array",
"description": "Known issues to ignore",
"items": {
"type": "object",
"properties": {
"pattern": {
"type": "string",
"description": "File pattern"
},
"issue": {
"type": "string",
"description": "Issue type"
},
"reason": {
"type": "string",
"description": "Reason for ignoring"
}
},
"required": ["pattern", "issue"]
}
},
"reportFormats": {
"type": "object",
"description": "Report format configuration",
"properties": {
"markdown": {
"type": "object",
"properties": {
"includeDetails": {
"type": "boolean",
"default": true
},
"includeSummary": {
"type": "boolean",
"default": true
}
}
},
"html": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": ["light", "dark", "auto"],
"default": "light"
}
}
}
}
}
},
"additionalProperties": false
}