agent-ecosystem/src/shared/utils/__tests__/ephemeralProjectPath.test.ts

42 lines
1.5 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { isEphemeralProjectPath } from '../ephemeralProjectPath';
function absolutePath(...segments: string[]): string {
return `/${segments.join('/')}`;
}
describe('isEphemeralProjectPath', () => {
it('detects generated MCP project paths', () => {
expect(isEphemeralProjectPath(absolutePath('tmp', 'rendered_mcp_config', 'project'))).toBe(
true
);
expect(isEphemeralProjectPath('/Users/test/rendered_mcp_123/project')).toBe(true);
expect(isEphemeralProjectPath(absolutePath('tmp', 'portable-mcp-live', 'project'))).toBe(true);
});
it('detects Codex appstyle temp workspaces only under temp roots', () => {
expect(
isEphemeralProjectPath(
'/private/var/folders/7b/ydmc_b0n251bc4hss4tz8y880000gn/T/codex-agent-teams-appstyle-zudek6i9'
)
).toBe(true);
expect(isEphemeralProjectPath(absolutePath('tmp', 'codex-agent-teams-appstyle-zudek6i9'))).toBe(
true
);
expect(
isEphemeralProjectPath(
'C:\\Users\\test\\AppData\\Local\\Temp\\codex-agent-teams-appstyle-zudek6i9'
)
).toBe(true);
expect(isEphemeralProjectPath('/Users/test/projects/codex-agent-teams-appstyle-real')).toBe(
false
);
});
it('keeps normal project paths selectable', () => {
expect(isEphemeralProjectPath('/Users/test/projects/claude_team')).toBe(false);
expect(isEphemeralProjectPath('')).toBe(false);
expect(isEphemeralProjectPath(null)).toBe(false);
});
});