42 lines
1.5 KiB
TypeScript
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);
|
|
});
|
|
});
|