✨ feat(vscode): 接口卡片找前端调用时,网址最后一段字面量后面紧贴的 ${...}(messages${qs} 这类)当查询串去掉再对接口
This commit is contained in:
1 parent
2c490cac2d
commit
7d5432df3b
2 files changed
+49
-5
No files matched your search
@@ -337,6 +337,40 @@ const SESSION_API = [
|
||||
'',
|
||||
].join('\n')
|
||||
|
||||
/** 网址末尾拼查询串:`messages${qs}`;和看着像、却不是查询串的。 */
|
||||
const QUERY = [
|
||||
'const API_PREFIX = "/api/v1";',
|
||||
'const TAIL = "messages";',
|
||||
'',
|
||||
'export async function list(id: string, qs: string, name: string, n: number, a: string) {',
|
||||
` await fetch(\`\${API_PREFIX}/sessions/\${id}/messages\${qs}\`);`,
|
||||
` await fetch(\`/api/v1/sessions/\${id}/\${TAIL}\${qs}\`);`,
|
||||
` await fetch(\`/api/v1/files/\${name}\`);`,
|
||||
` await fetch(\`/api/v\${n}/agents\`);`,
|
||||
` await fetch(\`/api/v1/sessions/\${id}\${qs}\`);`,
|
||||
` await fetch(\`/api/v1/sessions/\${id}messages\${qs}\`);`,
|
||||
` await fetch(\`/api/v1/sessions/messages\${a}\${qs}\`);`,
|
||||
` await fetch(\`/api/v1/sessions/messages\${qs}/\`);`,
|
||||
'}',
|
||||
'',
|
||||
].join('\n')
|
||||
|
||||
describe('网址末尾拼的查询串', () => {
|
||||
it('最后一段是字面量文字(常量展开的也算)后面紧贴一个插值时,插值当查询串去掉;整段就是插值的、这一段前面还有插值的、紧贴两个的、不在末尾的照写', async () => {
|
||||
const file = 'web/src/lib/messages.ts'
|
||||
expect((await requests({ [file]: QUERY }, 'GET')).map(line => line.split(' ')[3])).toEqual([
|
||||
`/api/v1/sessions/\${id}/messages`,
|
||||
`/api/v1/sessions/\${id}/messages`,
|
||||
`/api/v1/files/\${name}`,
|
||||
`/api/v\${n}/agents`,
|
||||
`/api/v1/sessions/\${id}\${qs}`,
|
||||
`/api/v1/sessions/\${id}messages\${qs}`,
|
||||
`/api/v1/sessions/messages\${a}\${qs}`,
|
||||
`/api/v1/sessions/messages\${qs}/`,
|
||||
])
|
||||
})
|
||||
})
|
||||
|
||||
describe('网址里拼的常量', () => {
|
||||
const files = { 'web/tsconfig.json': TSCONFIG, 'web/src/lib/root.ts': ROOT, 'web/src/lib/config.ts': CONFIG, 'web/src/app/(main)/chat/code/api.ts': SESSION_API }
|
||||
const API = 'web/src/app/(main)/chat/code/api.ts'
|
||||
|
||||
Reference in new issue
Block a user