31 lines
1.4 KiB
TypeScript
31 lines
1.4 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import { resolveTeamWorkspaceView } from '@/renderer/pages/team/utils/teamWorkspaceView';
|
|
|
|
describe('resolveTeamWorkspaceView', () => {
|
|
it('prefers teams.workspace over leader fallback', () => {
|
|
const view = resolveTeamWorkspaceView('/project/app', '/tmp/leader');
|
|
expect(view.workspacePath).toBe('/project/app');
|
|
expect(view.workspaceEnabled).toBe(true);
|
|
expect(view.isTemporaryWorkspace).toBe(false);
|
|
});
|
|
|
|
it('uses leader workspace only as display fallback for legacy empty teams.workspace', () => {
|
|
const view = resolveTeamWorkspaceView('', '/tmp/aion/conversations/acp-temp-leader');
|
|
expect(view.workspacePath).toBe('/tmp/aion/conversations/acp-temp-leader');
|
|
expect(view.workspaceEnabled).toBe(true);
|
|
expect(view.isTemporaryWorkspace).toBe(true);
|
|
});
|
|
|
|
it('marks Team-scoped temp workspace as temporary even when teams.workspace is non-empty', () => {
|
|
const view = resolveTeamWorkspaceView('/tmp/aion/conversations/team-temp-team123', '');
|
|
expect(view.workspacePath).toBe('/tmp/aion/conversations/team-temp-team123');
|
|
expect(view.workspaceEnabled).toBe(true);
|
|
expect(view.isTemporaryWorkspace).toBe(true);
|
|
});
|
|
|
|
it('marks per-conversation temp workspace as temporary for compatibility display', () => {
|
|
const view = resolveTeamWorkspaceView('/tmp/aion/conversations/acp-temp-conv123', '');
|
|
expect(view.isTemporaryWorkspace).toBe(true);
|
|
});
|
|
});
|