Add tests, templates, and Gitea Actions workflows
This commit is contained in:
48
.tests/integration/cli.test.ts
Normal file
48
.tests/integration/cli.test.ts
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
import * as path from 'path';
|
||||||
|
import * as fs from 'fs-extra';
|
||||||
|
import * as os from 'os';
|
||||||
|
import simpleGit from 'simple-git';
|
||||||
|
import { setupTestRepo, cleanupTestRepo } from './helpers';
|
||||||
|
|
||||||
|
describe('Integration Tests', () => {
|
||||||
|
let testRepo: string;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
testRepo = await setupTestRepo();
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(async () => {
|
||||||
|
if (testRepo) {
|
||||||
|
await cleanupTestRepo(testRepo);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Error Handling', () => {
|
||||||
|
it('should handle invalid agent names gracefully', async () => {
|
||||||
|
const { sanitizeAgentName, isValidAgentName } = await import('../../src/utils/file-utils');
|
||||||
|
|
||||||
|
expect(isValidAgentName('')).toBe(false);
|
||||||
|
expect(isValidAgentName('123')).toBe(false);
|
||||||
|
expect(isValidAgentName('my agent')).toBe(true);
|
||||||
|
expect(isValidAgentName('my@agent')).toBe(true);
|
||||||
|
expect(sanitizeAgentName('My Agent')).toBe('my-agent');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail when not in a git repository', async () => {
|
||||||
|
const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gas-not-git-'));
|
||||||
|
|
||||||
|
try {
|
||||||
|
const git = simpleGit(tempDir);
|
||||||
|
let errorThrown = false;
|
||||||
|
try {
|
||||||
|
await git.raw('rev-parse', '--is-inside-work-tree');
|
||||||
|
} catch {
|
||||||
|
errorThrown = true;
|
||||||
|
}
|
||||||
|
expect(errorThrown).toBe(true);
|
||||||
|
} finally {
|
||||||
|
fs.removeSync(tempDir);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user