- Install Jest for unit testing with React Testing Library - Install Playwright for end-to-end testing - Configure Jest with proper TypeScript support and module mapping - Create test setup files and utilities for both unit and e2e tests Components: * Jest configuration with coverage thresholds * Playwright configuration with browser automation * Unit tests for LoginForm, AuthContext, and useSocketIO hook * E2E tests for authentication, dashboard, and agents workflows * GitHub Actions workflow for automated testing * Mock data and API utilities for consistent testing * Test documentation with best practices Testing features: - Unit tests with 70% coverage threshold - E2E tests with API mocking and user journey testing - CI/CD integration for automated test runs - Cross-browser testing support with Playwright - Authentication system testing end-to-end 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
export function parseCommand(cmd) {
|
|
const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' ');
|
|
const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/);
|
|
const bregex = /\.*[\][<>]/g;
|
|
const firstCommand = splitCommand.shift();
|
|
if (!firstCommand)
|
|
throw new Error(`No command found in: ${cmd}`);
|
|
const parsedCommand = {
|
|
cmd: firstCommand.replace(bregex, ''),
|
|
demanded: [],
|
|
optional: [],
|
|
};
|
|
splitCommand.forEach((cmd, i) => {
|
|
let variadic = false;
|
|
cmd = cmd.replace(/\s/g, '');
|
|
if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1)
|
|
variadic = true;
|
|
if (/^\[/.test(cmd)) {
|
|
parsedCommand.optional.push({
|
|
cmd: cmd.replace(bregex, '').split('|'),
|
|
variadic,
|
|
});
|
|
}
|
|
else {
|
|
parsedCommand.demanded.push({
|
|
cmd: cmd.replace(bregex, '').split('|'),
|
|
variadic,
|
|
});
|
|
}
|
|
});
|
|
return parsedCommand;
|
|
}
|