jamdesk 1.0.13 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -4
- package/dist/__tests__/unit/auth.test.d.ts +2 -0
- package/dist/__tests__/unit/auth.test.d.ts.map +1 -0
- package/dist/__tests__/unit/auth.test.js +200 -0
- package/dist/__tests__/unit/auth.test.js.map +1 -0
- package/dist/__tests__/unit/config.test.d.ts +2 -0
- package/dist/__tests__/unit/config.test.d.ts.map +1 -0
- package/dist/__tests__/unit/config.test.js +76 -0
- package/dist/__tests__/unit/config.test.js.map +1 -0
- package/dist/__tests__/unit/deploy.test.d.ts +2 -0
- package/dist/__tests__/unit/deploy.test.d.ts.map +1 -0
- package/dist/__tests__/unit/deploy.test.js +273 -0
- package/dist/__tests__/unit/deploy.test.js.map +1 -0
- package/dist/__tests__/unit/deps-sync.test.js +3 -1
- package/dist/__tests__/unit/deps-sync.test.js.map +1 -1
- package/dist/__tests__/unit/dev-loading-server.test.d.ts +2 -0
- package/dist/__tests__/unit/dev-loading-server.test.d.ts.map +1 -0
- package/dist/__tests__/unit/dev-loading-server.test.js +141 -0
- package/dist/__tests__/unit/dev-loading-server.test.js.map +1 -0
- package/dist/__tests__/unit/docs-json-writer.test.d.ts +2 -0
- package/dist/__tests__/unit/docs-json-writer.test.d.ts.map +1 -0
- package/dist/__tests__/unit/docs-json-writer.test.js +71 -0
- package/dist/__tests__/unit/docs-json-writer.test.js.map +1 -0
- package/dist/__tests__/unit/loading-page.test.d.ts +2 -0
- package/dist/__tests__/unit/loading-page.test.d.ts.map +1 -0
- package/dist/__tests__/unit/loading-page.test.js +73 -0
- package/dist/__tests__/unit/loading-page.test.js.map +1 -0
- package/dist/__tests__/unit/login.test.d.ts +2 -0
- package/dist/__tests__/unit/login.test.d.ts.map +1 -0
- package/dist/__tests__/unit/login.test.js +125 -0
- package/dist/__tests__/unit/login.test.js.map +1 -0
- package/dist/__tests__/unit/logout.test.d.ts +2 -0
- package/dist/__tests__/unit/logout.test.d.ts.map +1 -0
- package/dist/__tests__/unit/logout.test.js +39 -0
- package/dist/__tests__/unit/logout.test.js.map +1 -0
- package/dist/__tests__/unit/tarball.test.d.ts +2 -0
- package/dist/__tests__/unit/tarball.test.d.ts.map +1 -0
- package/dist/__tests__/unit/tarball.test.js +126 -0
- package/dist/__tests__/unit/tarball.test.js.map +1 -0
- package/dist/__tests__/unit/whoami.test.d.ts +2 -0
- package/dist/__tests__/unit/whoami.test.d.ts.map +1 -0
- package/dist/__tests__/unit/whoami.test.js +47 -0
- package/dist/__tests__/unit/whoami.test.js.map +1 -0
- package/dist/commands/deploy.d.ts +13 -0
- package/dist/commands/deploy.d.ts.map +1 -0
- package/dist/commands/deploy.js +265 -0
- package/dist/commands/deploy.js.map +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +48 -25
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/login.d.ts +8 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +136 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +5 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +17 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/whoami.d.ts +5 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +24 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.js +50 -7
- package/dist/index.js.map +1 -1
- package/dist/lib/auth.d.ts +33 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +106 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/config.d.ts +10 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +7 -1
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/dev-loading-server.d.ts +22 -0
- package/dist/lib/dev-loading-server.d.ts.map +1 -0
- package/dist/lib/dev-loading-server.js +117 -0
- package/dist/lib/dev-loading-server.js.map +1 -0
- package/dist/lib/docs-config.d.ts +1 -0
- package/dist/lib/docs-config.d.ts.map +1 -1
- package/dist/lib/docs-config.js.map +1 -1
- package/dist/lib/docs-json-writer.d.ts +2 -0
- package/dist/lib/docs-json-writer.d.ts.map +1 -0
- package/dist/lib/docs-json-writer.js +35 -0
- package/dist/lib/docs-json-writer.js.map +1 -0
- package/dist/lib/loading-page.d.ts +11 -0
- package/dist/lib/loading-page.d.ts.map +1 -0
- package/dist/lib/loading-page.js +222 -0
- package/dist/lib/loading-page.js.map +1 -0
- package/dist/lib/output.d.ts +13 -5
- package/dist/lib/output.d.ts.map +1 -1
- package/dist/lib/output.js +22 -5
- package/dist/lib/output.js.map +1 -1
- package/dist/lib/tarball.d.ts +28 -0
- package/dist/lib/tarball.d.ts.map +1 -0
- package/dist/lib/tarball.js +117 -0
- package/dist/lib/tarball.js.map +1 -0
- package/package.json +5 -2
- package/vendored/app/[[...slug]]/page.tsx +6 -20
- package/vendored/app/api/chat/[project]/route.ts +323 -0
- package/vendored/app/api/mcp/[project]/route.ts +2 -63
- package/vendored/components/chat/ChatCodeBlock.tsx +63 -0
- package/vendored/components/chat/ChatEmptyState.tsx +79 -0
- package/vendored/components/chat/ChatFAB.tsx +36 -0
- package/vendored/components/chat/ChatInput.tsx +106 -0
- package/vendored/components/chat/ChatMessage.tsx +176 -0
- package/vendored/components/chat/ChatPanel.tsx +206 -0
- package/vendored/components/chat/ChatResizeHandle.tsx +108 -0
- package/vendored/components/chat/LazyChatPanel.tsx +19 -0
- package/vendored/components/layout/LayoutWrapper.tsx +134 -44
- package/vendored/components/layout/PageColumns.tsx +40 -0
- package/vendored/components/navigation/Header.tsx +74 -29
- package/vendored/components/navigation/Sidebar.tsx +17 -2
- package/vendored/hooks/useChat.ts +335 -0
- package/vendored/hooks/useChatPanel.tsx +101 -0
- package/vendored/lib/anthropic-client.ts +19 -0
- package/vendored/lib/build/extract-tarball.ts +150 -0
- package/vendored/lib/chat-prompt.ts +56 -0
- package/vendored/lib/docs-types.ts +14 -0
- package/vendored/lib/docs.ts +22 -4
- package/vendored/lib/embedding-chunker.ts +173 -0
- package/vendored/lib/generate-starter-questions.ts +98 -0
- package/vendored/lib/isr-build-executor.ts +2 -1
- package/vendored/lib/middleware-helpers.ts +21 -0
- package/vendored/lib/route-helpers.ts +96 -0
- package/vendored/lib/snippet-loader-isr.ts +107 -1
- package/vendored/lib/static-artifacts.ts +3 -2
- package/vendored/lib/validate-config.ts +1 -0
- package/vendored/lib/vector-store.ts +213 -0
- package/vendored/schema/docs-schema.json +33 -0
- package/vendored/scripts/dev-project.cjs +6 -0
- package/vendored/shared/types.ts +6 -5
- package/vendored/tailwind.config.ts +9 -0
- package/vendored/themes/jam/variables.css +2 -2
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
// --- Hoisted mocks ---
|
|
3
|
+
const { mockLoadConfig } = vi.hoisted(() => ({
|
|
4
|
+
mockLoadConfig: vi.fn(),
|
|
5
|
+
}));
|
|
6
|
+
vi.mock('../../lib/config.js', () => ({
|
|
7
|
+
loadConfig: mockLoadConfig,
|
|
8
|
+
}));
|
|
9
|
+
const { mockWriteProjectId } = vi.hoisted(() => ({
|
|
10
|
+
mockWriteProjectId: vi.fn(),
|
|
11
|
+
}));
|
|
12
|
+
vi.mock('../../lib/docs-json-writer.js', () => ({
|
|
13
|
+
writeProjectIdToDocsJson: mockWriteProjectId,
|
|
14
|
+
}));
|
|
15
|
+
const { mockIsLoggedIn, mockGetValidToken, mockApiCall } = vi.hoisted(() => ({
|
|
16
|
+
mockIsLoggedIn: vi.fn(),
|
|
17
|
+
mockGetValidToken: vi.fn(),
|
|
18
|
+
mockApiCall: vi.fn(),
|
|
19
|
+
}));
|
|
20
|
+
vi.mock('../../lib/auth.js', () => ({
|
|
21
|
+
isLoggedIn: mockIsLoggedIn,
|
|
22
|
+
getValidToken: mockGetValidToken,
|
|
23
|
+
apiCall: mockApiCall,
|
|
24
|
+
}));
|
|
25
|
+
const { mockCreateTarball, mockCollectFiles, mockCheckForSecrets } = vi.hoisted(() => ({
|
|
26
|
+
mockCreateTarball: vi.fn(),
|
|
27
|
+
mockCollectFiles: vi.fn(),
|
|
28
|
+
mockCheckForSecrets: vi.fn(),
|
|
29
|
+
}));
|
|
30
|
+
vi.mock('../../lib/tarball.js', () => ({
|
|
31
|
+
createTarball: mockCreateTarball,
|
|
32
|
+
collectFiles: mockCollectFiles,
|
|
33
|
+
checkForSecrets: mockCheckForSecrets,
|
|
34
|
+
}));
|
|
35
|
+
const { mockLoadDocsConfig } = vi.hoisted(() => ({
|
|
36
|
+
mockLoadDocsConfig: vi.fn(),
|
|
37
|
+
}));
|
|
38
|
+
vi.mock('../../lib/docs-config.js', () => ({
|
|
39
|
+
loadDocsConfig: mockLoadDocsConfig,
|
|
40
|
+
}));
|
|
41
|
+
const { mockSpinner, mockOutput } = vi.hoisted(() => {
|
|
42
|
+
const mockSpinner = {
|
|
43
|
+
succeed: vi.fn(),
|
|
44
|
+
fail: vi.fn(),
|
|
45
|
+
stop: vi.fn(),
|
|
46
|
+
text: '',
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
mockSpinner,
|
|
50
|
+
mockOutput: {
|
|
51
|
+
header: vi.fn(),
|
|
52
|
+
info: vi.fn(),
|
|
53
|
+
success: vi.fn(),
|
|
54
|
+
error: vi.fn(),
|
|
55
|
+
warn: vi.fn(),
|
|
56
|
+
hint: vi.fn(),
|
|
57
|
+
spinner: vi.fn(() => mockSpinner),
|
|
58
|
+
check: vi.fn(),
|
|
59
|
+
fail: vi.fn(),
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
});
|
|
63
|
+
vi.mock('../../lib/output.js', () => ({ output: mockOutput }));
|
|
64
|
+
// Mock global fetch
|
|
65
|
+
const mockFetch = vi.fn();
|
|
66
|
+
vi.stubGlobal('fetch', mockFetch);
|
|
67
|
+
import { deploy } from '../../commands/deploy.js';
|
|
68
|
+
// --- Test helpers ---
|
|
69
|
+
const AUTH_CONFIG = {
|
|
70
|
+
auth: { refreshToken: 'tok', email: 'u@t.com', uid: '1', expiresAt: 0 },
|
|
71
|
+
};
|
|
72
|
+
const ACME_PROJECT = { projectId: 'proj-1', name: 'Acme', slug: 'acme' };
|
|
73
|
+
function makeJsonResponse(data, status = 200) {
|
|
74
|
+
return {
|
|
75
|
+
ok: status >= 200 && status < 300,
|
|
76
|
+
status,
|
|
77
|
+
json: () => Promise.resolve(data),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/** Set up mocks for an authenticated session with a valid docs.json. */
|
|
81
|
+
function setupAuthenticatedSession(docsConfig) {
|
|
82
|
+
process.cwd = () => '/test/project';
|
|
83
|
+
mockLoadConfig.mockResolvedValue(AUTH_CONFIG);
|
|
84
|
+
mockIsLoggedIn.mockReturnValue(true);
|
|
85
|
+
if (docsConfig) {
|
|
86
|
+
mockLoadDocsConfig.mockResolvedValue(docsConfig);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Mock the standard deploy API chain: listProjects, getUploadUrl, queueBuild, R2 PUT. */
|
|
90
|
+
function mockDeployApiChain(projects, opts = {}) {
|
|
91
|
+
const buildId = opts.buildId ?? 'build-1';
|
|
92
|
+
const tarballKey = opts.tarballKey ?? `cli-uploads/${projects[0]?.projectId}/build.tar.gz`;
|
|
93
|
+
mockApiCall
|
|
94
|
+
.mockResolvedValueOnce(makeJsonResponse({ projects }))
|
|
95
|
+
.mockResolvedValueOnce(makeJsonResponse({ uploadUrl: 'https://r2.example.com/upload', tarballKey }))
|
|
96
|
+
.mockResolvedValueOnce(makeJsonResponse({ buildId }));
|
|
97
|
+
mockFetch.mockResolvedValueOnce({ ok: true, status: 200 });
|
|
98
|
+
}
|
|
99
|
+
describe('deploy', () => {
|
|
100
|
+
const originalCwd = process.cwd;
|
|
101
|
+
beforeEach(() => {
|
|
102
|
+
vi.clearAllMocks();
|
|
103
|
+
mockWriteProjectId.mockResolvedValue(undefined);
|
|
104
|
+
mockGetValidToken.mockResolvedValue('test-id-token');
|
|
105
|
+
mockCollectFiles.mockResolvedValue(['docs.json', 'intro.mdx']);
|
|
106
|
+
mockCheckForSecrets.mockReturnValue([]);
|
|
107
|
+
mockLoadDocsConfig.mockResolvedValue({ name: 'Test Docs', navigation: { groups: [] } });
|
|
108
|
+
mockCreateTarball.mockResolvedValue({
|
|
109
|
+
buffer: Buffer.from('fake-tarball'),
|
|
110
|
+
fileCount: 2,
|
|
111
|
+
size: 1024,
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
afterEach(() => {
|
|
115
|
+
process.cwd = originalCwd;
|
|
116
|
+
});
|
|
117
|
+
it('throws when not logged in', async () => {
|
|
118
|
+
mockLoadConfig.mockResolvedValue({});
|
|
119
|
+
mockIsLoggedIn.mockReturnValue(false);
|
|
120
|
+
await expect(deploy()).rejects.toThrow('Not logged in');
|
|
121
|
+
});
|
|
122
|
+
it('throws CLIError when token refresh fails', async () => {
|
|
123
|
+
mockLoadConfig.mockResolvedValue(AUTH_CONFIG);
|
|
124
|
+
mockIsLoggedIn.mockReturnValue(true);
|
|
125
|
+
mockGetValidToken.mockRejectedValue(new Error('Session expired'));
|
|
126
|
+
const error = await deploy().catch((e) => e);
|
|
127
|
+
expect(error.message).toBe('Session expired.');
|
|
128
|
+
expect(error.code).toBe('AUTH_EXPIRED');
|
|
129
|
+
});
|
|
130
|
+
it('throws when docs.json not found', async () => {
|
|
131
|
+
setupAuthenticatedSession();
|
|
132
|
+
mockLoadDocsConfig.mockResolvedValue(null);
|
|
133
|
+
await expect(deploy()).rejects.toThrow('docs.json not found');
|
|
134
|
+
});
|
|
135
|
+
it('deploys with detach flag (no polling)', async () => {
|
|
136
|
+
setupAuthenticatedSession({
|
|
137
|
+
name: 'Test Docs',
|
|
138
|
+
navigation: { groups: [] },
|
|
139
|
+
projectId: 'proj-1',
|
|
140
|
+
});
|
|
141
|
+
const tarballKey = 'cli-uploads/proj-1/build-123.tar.gz';
|
|
142
|
+
mockDeployApiChain([ACME_PROJECT], { buildId: 'build-123', tarballKey });
|
|
143
|
+
await deploy({ detach: true });
|
|
144
|
+
expect(mockApiCall).toHaveBeenCalledWith('getUploadUrl', {
|
|
145
|
+
method: 'POST',
|
|
146
|
+
body: { projectId: 'proj-1' },
|
|
147
|
+
});
|
|
148
|
+
expect(mockApiCall).toHaveBeenCalledWith('queueBuild', {
|
|
149
|
+
method: 'POST',
|
|
150
|
+
body: {
|
|
151
|
+
projectId: 'proj-1',
|
|
152
|
+
tarballKey,
|
|
153
|
+
triggeredBy: 'cli',
|
|
154
|
+
fullRebuild: false,
|
|
155
|
+
},
|
|
156
|
+
});
|
|
157
|
+
expect(mockFetch).toHaveBeenCalledWith('https://r2.example.com/upload', {
|
|
158
|
+
method: 'PUT',
|
|
159
|
+
headers: { 'Content-Type': 'application/gzip' },
|
|
160
|
+
body: expect.any(Buffer),
|
|
161
|
+
});
|
|
162
|
+
expect(mockOutput.spinner).toHaveBeenCalledWith('Packaging docs...');
|
|
163
|
+
expect(mockOutput.spinner).toHaveBeenCalledWith('Uploading...');
|
|
164
|
+
expect(mockOutput.spinner).toHaveBeenCalledWith('Queuing build...');
|
|
165
|
+
expect(mockSpinner.succeed).toHaveBeenCalledWith('Build queued');
|
|
166
|
+
});
|
|
167
|
+
it('auto-selects single project from API', async () => {
|
|
168
|
+
process.cwd = () => '/test/new-project';
|
|
169
|
+
setupAuthenticatedSession();
|
|
170
|
+
const soloProject = { projectId: 'proj-1', name: 'Solo', slug: 'solo' };
|
|
171
|
+
mockDeployApiChain([soloProject]);
|
|
172
|
+
await deploy({ detach: true });
|
|
173
|
+
expect(mockWriteProjectId).toHaveBeenCalledWith(expect.stringContaining('docs.json'), 'proj-1');
|
|
174
|
+
expect(mockOutput.info).toHaveBeenCalledWith('Auto-selected project: Solo');
|
|
175
|
+
});
|
|
176
|
+
it('passes fullRebuild flag to queueBuild', async () => {
|
|
177
|
+
setupAuthenticatedSession({
|
|
178
|
+
name: 'Test Docs',
|
|
179
|
+
navigation: { groups: [] },
|
|
180
|
+
projectId: 'proj-1',
|
|
181
|
+
});
|
|
182
|
+
mockDeployApiChain([ACME_PROJECT]);
|
|
183
|
+
await deploy({ detach: true, fullRebuild: true });
|
|
184
|
+
expect(mockApiCall).toHaveBeenCalledWith('queueBuild', {
|
|
185
|
+
method: 'POST',
|
|
186
|
+
body: expect.objectContaining({ fullRebuild: true }),
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
it('warns about suspicious secret files', async () => {
|
|
190
|
+
setupAuthenticatedSession({
|
|
191
|
+
name: 'Test Docs',
|
|
192
|
+
navigation: { groups: [] },
|
|
193
|
+
projectId: 'proj-1',
|
|
194
|
+
});
|
|
195
|
+
mockCheckForSecrets.mockReturnValue(['.env.local']);
|
|
196
|
+
mockDeployApiChain([ACME_PROJECT]);
|
|
197
|
+
await deploy({ detach: true });
|
|
198
|
+
expect(mockOutput.warn).toHaveBeenCalledWith(expect.stringContaining('secrets'));
|
|
199
|
+
});
|
|
200
|
+
it('handles API errors with user-friendly messages', async () => {
|
|
201
|
+
setupAuthenticatedSession({
|
|
202
|
+
name: 'Test Docs',
|
|
203
|
+
navigation: { groups: [] },
|
|
204
|
+
projectId: 'proj-1',
|
|
205
|
+
});
|
|
206
|
+
mockApiCall
|
|
207
|
+
.mockResolvedValueOnce(makeJsonResponse({ projects: [ACME_PROJECT] }))
|
|
208
|
+
.mockResolvedValueOnce(makeJsonResponse({}, 403));
|
|
209
|
+
await expect(deploy({ detach: true })).rejects.toThrow("You don't have access to this project");
|
|
210
|
+
expect(mockSpinner.fail).toHaveBeenCalled();
|
|
211
|
+
});
|
|
212
|
+
it('shows server error message on 500', async () => {
|
|
213
|
+
setupAuthenticatedSession({
|
|
214
|
+
name: 'Test Docs',
|
|
215
|
+
navigation: { groups: [] },
|
|
216
|
+
projectId: 'proj-1',
|
|
217
|
+
});
|
|
218
|
+
mockApiCall
|
|
219
|
+
.mockResolvedValueOnce(makeJsonResponse({ projects: [ACME_PROJECT] }))
|
|
220
|
+
.mockResolvedValueOnce(makeJsonResponse({ uploadUrl: 'https://r2.example.com/upload', tarballKey: 'key' }))
|
|
221
|
+
.mockResolvedValueOnce(makeJsonResponse({ error: 'Build service temporarily unavailable', errorSuggestion: 'Please try again in a few minutes.' }, 500));
|
|
222
|
+
mockFetch.mockResolvedValueOnce({ ok: true, status: 200 });
|
|
223
|
+
const error = await deploy({ detach: true }).catch((e) => e);
|
|
224
|
+
expect(error.message).toBe('Build service temporarily unavailable');
|
|
225
|
+
expect(error.hint).toBe('Please try again in a few minutes.');
|
|
226
|
+
});
|
|
227
|
+
it('uses spinners for local deploy steps', async () => {
|
|
228
|
+
setupAuthenticatedSession({
|
|
229
|
+
name: 'Test Docs',
|
|
230
|
+
navigation: { groups: [] },
|
|
231
|
+
projectId: 'proj-1',
|
|
232
|
+
});
|
|
233
|
+
mockDeployApiChain([ACME_PROJECT]);
|
|
234
|
+
await deploy({ detach: true });
|
|
235
|
+
const spinnerCalls = mockOutput.spinner.mock.calls.map((c) => c[0]);
|
|
236
|
+
expect(spinnerCalls).toEqual([
|
|
237
|
+
'Verifying project...',
|
|
238
|
+
'Packaging docs...',
|
|
239
|
+
'Uploading...',
|
|
240
|
+
'Queuing build...',
|
|
241
|
+
]);
|
|
242
|
+
const succeedCalls = mockSpinner.succeed.mock.calls.map((c) => c[0]);
|
|
243
|
+
expect(succeedCalls).toContain('Uploaded');
|
|
244
|
+
expect(succeedCalls).toContain('Build queued');
|
|
245
|
+
// Packaging succeed includes file count (project verification uses .stop(), not .succeed())
|
|
246
|
+
expect(succeedCalls[0]).toMatch(/Packaged 2 files/);
|
|
247
|
+
});
|
|
248
|
+
it('uses --project flag to select project directly', async () => {
|
|
249
|
+
setupAuthenticatedSession();
|
|
250
|
+
mockDeployApiChain([ACME_PROJECT]);
|
|
251
|
+
await deploy({ detach: true, project: 'proj-1' });
|
|
252
|
+
// --project flag should NOT persist to docs.json (ephemeral override)
|
|
253
|
+
expect(mockWriteProjectId).not.toHaveBeenCalled();
|
|
254
|
+
});
|
|
255
|
+
it('throws when --project flag specifies nonexistent project', async () => {
|
|
256
|
+
setupAuthenticatedSession();
|
|
257
|
+
mockApiCall.mockResolvedValueOnce(makeJsonResponse({ projects: [ACME_PROJECT] }));
|
|
258
|
+
await expect(deploy({ detach: true, project: 'nonexistent-id' })).rejects.toThrow("Project nonexistent-id not found or you don't have access");
|
|
259
|
+
});
|
|
260
|
+
it('re-selects when docs.json projectId is stale', async () => {
|
|
261
|
+
setupAuthenticatedSession({
|
|
262
|
+
name: 'Test Docs',
|
|
263
|
+
navigation: { groups: [] },
|
|
264
|
+
projectId: 'stale-id',
|
|
265
|
+
});
|
|
266
|
+
const newProject = { projectId: 'proj-new', name: 'New Project', slug: 'new' };
|
|
267
|
+
mockDeployApiChain([newProject]);
|
|
268
|
+
await deploy({ detach: true });
|
|
269
|
+
expect(mockOutput.warn).toHaveBeenCalledWith(expect.stringContaining('no longer valid'));
|
|
270
|
+
expect(mockWriteProjectId).toHaveBeenCalledWith(expect.stringContaining('docs.json'), 'proj-new');
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
//# sourceMappingURL=deploy.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/deploy.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,6 +40,8 @@ const EXCLUDED_PACKAGES = [
|
|
|
40
40
|
'@aws-sdk/', // R2/S3 uploads (server-only)
|
|
41
41
|
'firebase-admin', // Firestore access (server-only)
|
|
42
42
|
'@upstash/redis', // Redis caching (server-only, ISR production)
|
|
43
|
+
'@upstash/vector', // Vector store for AI chat (server-only)
|
|
44
|
+
'@anthropic-ai/sdk', // Claude API for AI chat (server-only)
|
|
43
45
|
'playwright', // Screenshot capture (server-only)
|
|
44
46
|
'fast-glob', // File globbing (server-only, ISR build)
|
|
45
47
|
// Type-only imports (not runtime deps)
|
|
@@ -52,7 +54,7 @@ const EXCLUDED_PACKAGES = [
|
|
|
52
54
|
'./', '../', '@/', '~/',
|
|
53
55
|
// Node built-ins
|
|
54
56
|
'fs', 'path', 'crypto', 'url', 'util', 'stream', 'events', 'child_process',
|
|
55
|
-
'node:', 'fs-extra',
|
|
57
|
+
'os', 'node:', 'fs-extra',
|
|
56
58
|
];
|
|
57
59
|
describe('CLI dependency sync', () => {
|
|
58
60
|
it('should include all critical browser dependencies in REQUIRED_DEPS', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps-sync.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/deps-sync.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deps-sync.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/deps-sync.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-loading-server.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/dev-loading-server.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { describe, it, expect, afterEach } from 'vitest';
|
|
2
|
+
import http from 'http';
|
|
3
|
+
import { createLoadingServer } from '../../lib/dev-loading-server.js';
|
|
4
|
+
// Helper to make an HTTP request and return status + headers + body
|
|
5
|
+
function request(port, path) {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
http
|
|
8
|
+
.get(`http://127.0.0.1:${port}${path}`, (res) => {
|
|
9
|
+
let body = '';
|
|
10
|
+
res.on('data', (chunk) => (body += chunk));
|
|
11
|
+
res.on('end', () => resolve({ status: res.statusCode, headers: res.headers, body }));
|
|
12
|
+
})
|
|
13
|
+
.on('error', reject);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
// Use unique ports per test to avoid port reuse conflicts
|
|
17
|
+
let portCounter = 49200;
|
|
18
|
+
function nextPorts() {
|
|
19
|
+
const proxyPort = portCounter;
|
|
20
|
+
portCounter += 2;
|
|
21
|
+
return { proxyPort, nextPort: proxyPort + 1 };
|
|
22
|
+
}
|
|
23
|
+
describe('dev-loading-server', () => {
|
|
24
|
+
let server = null;
|
|
25
|
+
let mockNextServer = null;
|
|
26
|
+
afterEach(async () => {
|
|
27
|
+
await server?.close();
|
|
28
|
+
server = null;
|
|
29
|
+
await new Promise((resolve) => {
|
|
30
|
+
if (mockNextServer) {
|
|
31
|
+
mockNextServer.close(() => resolve());
|
|
32
|
+
mockNextServer.closeAllConnections?.();
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
resolve();
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
mockNextServer = null;
|
|
39
|
+
});
|
|
40
|
+
function createServer(proxyPort, nextPort) {
|
|
41
|
+
server = createLoadingServer({
|
|
42
|
+
proxyPort,
|
|
43
|
+
nextPort,
|
|
44
|
+
basePath: '/docs',
|
|
45
|
+
firstPage: 'introduction',
|
|
46
|
+
projectName: 'test-project',
|
|
47
|
+
});
|
|
48
|
+
return server;
|
|
49
|
+
}
|
|
50
|
+
function startMockNextServer(port) {
|
|
51
|
+
return new Promise((resolve) => {
|
|
52
|
+
mockNextServer = http.createServer((_req, res) => {
|
|
53
|
+
res.writeHead(200, { 'Content-Type': 'text/html' });
|
|
54
|
+
res.end('Next.js page content');
|
|
55
|
+
});
|
|
56
|
+
mockNextServer.listen(port, '127.0.0.1', () => resolve());
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
it('serves loading page HTML when state is loading', async () => {
|
|
60
|
+
const { proxyPort, nextPort } = nextPorts();
|
|
61
|
+
const s = createServer(proxyPort, nextPort);
|
|
62
|
+
await s.start();
|
|
63
|
+
const res = await request(proxyPort, '/');
|
|
64
|
+
expect(res.status).toBe(200);
|
|
65
|
+
expect(res.headers['content-type']).toContain('text/html');
|
|
66
|
+
expect(res.headers['cache-control']).toBe('no-store');
|
|
67
|
+
expect(res.body).toContain('Building Your Site');
|
|
68
|
+
expect(res.body).toContain('test-project');
|
|
69
|
+
});
|
|
70
|
+
it('returns correct JSON at /_jd/dev-status', async () => {
|
|
71
|
+
const { proxyPort, nextPort } = nextPorts();
|
|
72
|
+
const s = createServer(proxyPort, nextPort);
|
|
73
|
+
await s.start();
|
|
74
|
+
const res = await request(proxyPort, '/_jd/dev-status');
|
|
75
|
+
expect(res.status).toBe(200);
|
|
76
|
+
expect(res.headers['content-type']).toContain('application/json');
|
|
77
|
+
expect(res.headers['cache-control']).toBe('no-store');
|
|
78
|
+
const data = JSON.parse(res.body);
|
|
79
|
+
expect(data.status).toBe('loading');
|
|
80
|
+
expect(data.targetUrl).toBe('/docs/introduction');
|
|
81
|
+
});
|
|
82
|
+
it('reflects state transitions in status endpoint', async () => {
|
|
83
|
+
const { proxyPort, nextPort } = nextPorts();
|
|
84
|
+
const s = createServer(proxyPort, nextPort);
|
|
85
|
+
await s.start();
|
|
86
|
+
s.setState('compiling');
|
|
87
|
+
let data = JSON.parse((await request(proxyPort, '/_jd/dev-status')).body);
|
|
88
|
+
expect(data.status).toBe('compiling');
|
|
89
|
+
s.setState('ready');
|
|
90
|
+
data = JSON.parse((await request(proxyPort, '/_jd/dev-status')).body);
|
|
91
|
+
expect(data.status).toBe('ready');
|
|
92
|
+
});
|
|
93
|
+
it('returns failed status at endpoint', async () => {
|
|
94
|
+
const { proxyPort, nextPort } = nextPorts();
|
|
95
|
+
const s = createServer(proxyPort, nextPort);
|
|
96
|
+
await s.start();
|
|
97
|
+
s.setState('failed');
|
|
98
|
+
const data = JSON.parse((await request(proxyPort, '/_jd/dev-status')).body);
|
|
99
|
+
expect(data.status).toBe('failed');
|
|
100
|
+
});
|
|
101
|
+
it('still serves loading page HTML when state is compiling', async () => {
|
|
102
|
+
const { proxyPort, nextPort } = nextPorts();
|
|
103
|
+
const s = createServer(proxyPort, nextPort);
|
|
104
|
+
await s.start();
|
|
105
|
+
s.setState('compiling');
|
|
106
|
+
const res = await request(proxyPort, '/some-page');
|
|
107
|
+
expect(res.status).toBe(200);
|
|
108
|
+
expect(res.headers['content-type']).toContain('text/html');
|
|
109
|
+
expect(res.body).toContain('Building Your Site');
|
|
110
|
+
});
|
|
111
|
+
it('proxies HTTP requests to mock Next.js when ready', async () => {
|
|
112
|
+
const { proxyPort, nextPort } = nextPorts();
|
|
113
|
+
await startMockNextServer(nextPort);
|
|
114
|
+
const s = createServer(proxyPort, nextPort);
|
|
115
|
+
await s.start();
|
|
116
|
+
s.setState('ready');
|
|
117
|
+
const res = await request(proxyPort, '/docs/introduction');
|
|
118
|
+
expect(res.status).toBe(200);
|
|
119
|
+
expect(res.body).toBe('Next.js page content');
|
|
120
|
+
});
|
|
121
|
+
it('returns 502 on proxy connection error', async () => {
|
|
122
|
+
const { proxyPort, nextPort } = nextPorts();
|
|
123
|
+
// No mock Next.js server running — connection will be refused
|
|
124
|
+
const s = createServer(proxyPort, nextPort);
|
|
125
|
+
await s.start();
|
|
126
|
+
s.setState('ready');
|
|
127
|
+
const res = await request(proxyPort, '/');
|
|
128
|
+
expect(res.status).toBe(502);
|
|
129
|
+
expect(res.body).toContain('Dev server restarting');
|
|
130
|
+
});
|
|
131
|
+
it('close() cleanly shuts down the server', async () => {
|
|
132
|
+
const { proxyPort, nextPort } = nextPorts();
|
|
133
|
+
const s = createServer(proxyPort, nextPort);
|
|
134
|
+
await s.start();
|
|
135
|
+
await s.close();
|
|
136
|
+
server = null; // Prevent afterEach double-close
|
|
137
|
+
// Verify server is no longer accepting connections
|
|
138
|
+
await expect(request(proxyPort, '/')).rejects.toThrow();
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
//# sourceMappingURL=dev-loading-server.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-loading-server.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/dev-loading-server.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-json-writer.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/docs-json-writer.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import JSON5 from 'json5';
|
|
6
|
+
import { writeProjectIdToDocsJson } from '../../lib/docs-json-writer.js';
|
|
7
|
+
describe('writeProjectIdToDocsJson', () => {
|
|
8
|
+
let tmpDir;
|
|
9
|
+
let filePath;
|
|
10
|
+
beforeEach(async () => {
|
|
11
|
+
tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), 'jd-test-'));
|
|
12
|
+
filePath = path.join(tmpDir, 'docs.json');
|
|
13
|
+
});
|
|
14
|
+
afterEach(async () => {
|
|
15
|
+
await fs.remove(tmpDir);
|
|
16
|
+
});
|
|
17
|
+
/** Write initial content, run the writer, return the resulting file content. */
|
|
18
|
+
async function writeAndRead(initial, projectId) {
|
|
19
|
+
await fs.writeFile(filePath, initial);
|
|
20
|
+
await writeProjectIdToDocsJson(filePath, projectId);
|
|
21
|
+
return fs.readFile(filePath, 'utf-8');
|
|
22
|
+
}
|
|
23
|
+
it('inserts projectId after opening brace in standard JSON', async () => {
|
|
24
|
+
const content = await writeAndRead('{\n "name": "Test"\n}', 'proj-123');
|
|
25
|
+
expect(content).toContain('"projectId": "proj-123"');
|
|
26
|
+
expect(content.indexOf('"projectId"')).toBeLessThan(content.indexOf('"name"'));
|
|
27
|
+
const parsed = JSON.parse(content);
|
|
28
|
+
expect(parsed.projectId).toBe('proj-123');
|
|
29
|
+
});
|
|
30
|
+
it('replaces existing projectId value', async () => {
|
|
31
|
+
const content = await writeAndRead('{\n "projectId": "old-id",\n "name": "Test"\n}', 'new-id');
|
|
32
|
+
expect(content).toContain('"projectId": "new-id"');
|
|
33
|
+
expect(content).not.toContain('old-id');
|
|
34
|
+
expect(content.match(/"projectId"/g)?.length).toBe(1);
|
|
35
|
+
});
|
|
36
|
+
it('preserves JSON5 comments', async () => {
|
|
37
|
+
const content = await writeAndRead('{\n // Site name\n "name": "Test"\n}', 'proj-abc');
|
|
38
|
+
expect(content).toContain('// Site name');
|
|
39
|
+
expect(content).toContain('"projectId": "proj-abc"');
|
|
40
|
+
});
|
|
41
|
+
it('matches existing indentation', async () => {
|
|
42
|
+
const content = await writeAndRead('{\n "name": "Test"\n}', 'proj-456');
|
|
43
|
+
expect(content).toContain(' "projectId": "proj-456"');
|
|
44
|
+
});
|
|
45
|
+
it('inserts after $schema when present', async () => {
|
|
46
|
+
const content = await writeAndRead('{\n "$schema": "https://www.jamdesk.com/docs.json",\n "name": "Test"\n}', 'proj-789');
|
|
47
|
+
expect(content).toContain('"projectId": "proj-789"');
|
|
48
|
+
expect(content.indexOf('"$schema"')).toBeLessThan(content.indexOf('"projectId"'));
|
|
49
|
+
expect(content.indexOf('"projectId"')).toBeLessThan(content.indexOf('"name"'));
|
|
50
|
+
});
|
|
51
|
+
it('inserts after $schema even without trailing comma', async () => {
|
|
52
|
+
const content = await writeAndRead('{\n "$schema": "https://www.jamdesk.com/docs.json"\n}', 'proj-edge');
|
|
53
|
+
expect(content).toContain('"projectId": "proj-edge"');
|
|
54
|
+
expect(content.indexOf('"$schema"')).toBeLessThan(content.indexOf('"projectId"'));
|
|
55
|
+
const parsed = JSON5.parse(content);
|
|
56
|
+
expect(parsed.projectId).toBe('proj-edge');
|
|
57
|
+
});
|
|
58
|
+
it('preserves valid JSON5 after insertion with comments', async () => {
|
|
59
|
+
const content = await writeAndRead('{\n // Site name\n "name": "Test"\n}', 'proj-parse');
|
|
60
|
+
const parsed = JSON5.parse(content);
|
|
61
|
+
expect(parsed.projectId).toBe('proj-parse');
|
|
62
|
+
expect(parsed.name).toBe('Test');
|
|
63
|
+
});
|
|
64
|
+
it('rejects projectId with unsafe characters', async () => {
|
|
65
|
+
await fs.writeFile(filePath, '{\n "name": "Test"\n}');
|
|
66
|
+
await expect(writeProjectIdToDocsJson(filePath, 'proj"inject')).rejects.toThrow('Invalid projectId');
|
|
67
|
+
await expect(writeProjectIdToDocsJson(filePath, 'proj$ref')).rejects.toThrow('Invalid projectId');
|
|
68
|
+
await expect(writeProjectIdToDocsJson(filePath, 'proj id')).rejects.toThrow('Invalid projectId');
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=docs-json-writer.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-json-writer.test.js","sourceRoot":"","sources":["../../../src/__tests__/unit/docs-json-writer.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loading-page.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/unit/loading-page.test.ts"],"names":[],"mappings":""}
|