fix(projects): open draft after adding project
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import { describe, expect, it, vi } from 'vitest';
|
||||
import express from 'express';
|
||||
import request from 'supertest';
|
||||
import { registerOpenCodeRoutes } from './routes.js';
|
||||
|
||||
const createApp = (overrides = {}) => {
|
||||
const app = express();
|
||||
app.use(express.json());
|
||||
const dependencies = {
|
||||
fsPromises: { mkdir: vi.fn(async () => undefined) },
|
||||
validateDirectoryPath: vi.fn(async (directory) => ({ ok: true, directory })),
|
||||
readSettingsFromDisk: vi.fn(async () => ({ projects: [] })),
|
||||
sanitizeProjects: (projects) => projects,
|
||||
persistSettings: vi.fn(async (settings) => settings),
|
||||
...overrides,
|
||||
};
|
||||
registerOpenCodeRoutes(app, dependencies);
|
||||
return { app, dependencies };
|
||||
};
|
||||
|
||||
describe('OpenCode project directory route', () => {
|
||||
it('creates and activates a requested project outside the active workspace', async () => {
|
||||
const { app, dependencies } = createApp();
|
||||
|
||||
const response = await request(app)
|
||||
.post('/api/opencode/directory')
|
||||
.send({ path: '/projects/testing-one', create: true })
|
||||
.expect(200);
|
||||
|
||||
expect(dependencies.fsPromises.mkdir).toHaveBeenCalledWith('/projects/testing-one', { recursive: true });
|
||||
expect(dependencies.validateDirectoryPath).toHaveBeenCalledWith('/projects/testing-one');
|
||||
expect(response.body).toMatchObject({ success: true, path: '/projects/testing-one' });
|
||||
});
|
||||
|
||||
it('does not create a directory for the existing activation flow', async () => {
|
||||
const { app, dependencies } = createApp();
|
||||
|
||||
await request(app)
|
||||
.post('/api/opencode/directory')
|
||||
.send({ path: '/projects/existing' })
|
||||
.expect(200);
|
||||
|
||||
expect(dependencies.fsPromises.mkdir).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user