fix(frontend tests): 同步 API_ENDPOINTS 冻结快照到当前常量(存量过期致 node --test 全量红,非本轮引入)——使前端 node --test 全绿

This commit is contained in:
2026-09-05 09:19:21 +08:00
parent c282327a0b
commit 4735a18390
+229 -228
View File
@@ -107,253 +107,254 @@ test('test_download_paths_match', () => {
test('test_endpoints_frozen_snapshot', () => { test('test_endpoints_frozen_snapshot', () => {
assert.deepEqual(API_ENDPOINTS, { assert.deepEqual(API_ENDPOINTS, {
files: { "files": {
upload: '/api/files/upload', "upload": "/api/files/upload",
excelInfo: '/api/files/excel-info', "excelInfo": "/api/files/excel-info"
}, },
dedupe: { "dedupe": {
run: '/api/dedupe/run', "run": "/api/dedupe/run",
history: '/api/dedupe/history', "runProgress": "/api/dedupe/run/{runId}/progress",
historyDelete: '/api/dedupe/history/{resultId}', "history": "/api/dedupe/history",
resultDownload: '/api/dedupe/results/{resultId}/download', "historyDelete": "/api/dedupe/history/{resultId}",
"resultDownload": "/api/dedupe/results/{resultId}/download"
}, },
split: { "split": {
run: '/api/split/run', "run": "/api/split/run",
history: '/api/split/history', "history": "/api/split/history",
historyDelete: '/api/split/history/{resultId}', "historyDelete": "/api/split/history/{resultId}",
resultDownload: '/api/split/results/{resultId}/download', "resultDownload": "/api/split/results/{resultId}/download"
}, },
convert: { "convert": {
run: '/api/convert/run', "run": "/api/convert/run",
history: '/api/convert/history', "history": "/api/convert/history",
historyDelete: '/api/convert/history/{resultId}', "historyDelete": "/api/convert/history/{resultId}",
templates: '/api/convert/templates', "templates": "/api/convert/templates",
templatesImport: '/api/convert/templates/import', "templatesImport": "/api/convert/templates/import",
templateDefault: '/api/convert/templates/{templateCode}/default', "templateDefault": "/api/convert/templates/{templateCode}/default",
templateDelete: '/api/convert/templates/{templateCode}', "templateDelete": "/api/convert/templates/{templateCode}",
resultDownload: '/api/convert/results/{resultId}/download', "resultDownload": "/api/convert/results/{resultId}/download"
}, },
publish: { "publish": {
parse: '/api/publish/parse', "parse": "/api/publish/parse",
taskActivate: '/api/publish/tasks/{taskId}/activate', "taskActivate": "/api/publish/tasks/{taskId}/activate",
fileActivate: '/api/publish/tasks/{taskId}/files/{fileId}/activate', "fileActivate": "/api/publish/tasks/{taskId}/files/{fileId}/activate",
items: '/api/publish/tasks/{taskId}/items', "items": "/api/publish/tasks/{taskId}/items",
progressBatch: '/api/publish/tasks/progress/batch', "progressBatch": "/api/publish/tasks/progress/batch",
progressLight: '/api/publish/tasks/progress/light', "progressLight": "/api/publish/tasks/progress/light",
result: '/api/publish/tasks/{taskId}/result', "result": "/api/publish/tasks/{taskId}/result",
dashboard: '/api/publish/dashboard', "dashboard": "/api/publish/dashboard",
history: '/api/publish/history', "history": "/api/publish/history",
taskDelete: '/api/publish/tasks/{taskId}', "taskDelete": "/api/publish/tasks/{taskId}"
}, },
deleteBrand: { "deleteBrand": {
run: '/api/delete-brand/run', "run": "/api/delete-brand/run",
history: '/api/delete-brand/history', "history": "/api/delete-brand/history",
historyDelete: '/api/delete-brand/history/{resultId}', "historyDelete": "/api/delete-brand/history/{resultId}",
taskDetail: '/api/delete-brand/tasks/{taskId}', "taskDetail": "/api/delete-brand/tasks/{taskId}",
taskDetails: '/api/delete-brand/tasks/batch', "taskDetails": "/api/delete-brand/tasks/batch",
taskDownload: '/api/delete-brand/tasks/{taskId}/download', "taskDownload": "/api/delete-brand/tasks/{taskId}/download",
resultDownload: '/api/delete-brand/results/{resultId}/download', "resultDownload": "/api/delete-brand/results/{resultId}/download",
resultSubmit: '/api/delete-brand/tasks/{taskId}/result', "resultSubmit": "/api/delete-brand/tasks/{taskId}/result",
progressBatch: '/api/delete-brand/tasks/progress/batch', "progressBatch": "/api/delete-brand/tasks/progress/batch",
progressLight: '/api/delete-brand/tasks/progress/light', "progressLight": "/api/delete-brand/tasks/progress/light"
}, },
productRisk: { "productRisk": {
candidates: '/api/product-risk-resolve/candidates', "candidates": "/api/product-risk-resolve/candidates",
candidateAdd: '/api/product-risk-resolve/candidates', "candidateAdd": "/api/product-risk-resolve/candidates",
candidateDelete: '/api/product-risk-resolve/candidates/{id}', "candidateDelete": "/api/product-risk-resolve/candidates/{id}",
countryPreference: '/api/product-risk-resolve/country-preference', "countryPreference": "/api/product-risk-resolve/country-preference",
matchShops: '/api/product-risk-resolve/match-shops', "matchShops": "/api/product-risk-resolve/match-shops",
dashboard: '/api/product-risk-resolve/dashboard', "dashboard": "/api/product-risk-resolve/dashboard",
history: '/api/product-risk-resolve/history', "history": "/api/product-risk-resolve/history",
historyDelete: '/api/product-risk-resolve/history/{resultId}', "historyDelete": "/api/product-risk-resolve/history/{resultId}",
taskCreate: '/api/product-risk-resolve/tasks', "taskCreate": "/api/product-risk-resolve/tasks",
taskDelete: '/api/product-risk-resolve/tasks/{taskId}', "taskDelete": "/api/product-risk-resolve/tasks/{taskId}",
taskBatch: '/api/product-risk-resolve/tasks/batch', "taskBatch": "/api/product-risk-resolve/tasks/batch",
progressBatch: '/api/product-risk-resolve/tasks/progress/batch', "progressBatch": "/api/product-risk-resolve/tasks/progress/batch",
progressLight: '/api/product-risk-resolve/tasks/progress/light', "progressLight": "/api/product-risk-resolve/tasks/progress/light",
pendingShopResult: '/api/product-risk-resolve/pending-shop-result', "pendingShopResult": "/api/product-risk-resolve/pending-shop-result",
resultDownload: '/api/product-risk-resolve/results/{resultId}/download', "resultDownload": "/api/product-risk-resolve/results/{resultId}/download"
}, },
shopMatch: { "shopMatch": {
candidates: '/api/shop-match/candidates', "candidates": "/api/shop-match/candidates",
candidateAdd: '/api/shop-match/candidates', "candidateAdd": "/api/shop-match/candidates",
candidateDelete: '/api/shop-match/candidates/{id}', "candidateDelete": "/api/shop-match/candidates/{id}",
countryPreference: '/api/shop-match/country-preference', "countryPreference": "/api/shop-match/country-preference",
matchShops: '/api/shop-match/match-shops', "matchShops": "/api/shop-match/match-shops",
dashboard: '/api/shop-match/dashboard', "dashboard": "/api/shop-match/dashboard",
history: '/api/shop-match/history', "history": "/api/shop-match/history",
historyDelete: '/api/shop-match/history/{resultId}', "historyDelete": "/api/shop-match/history/{resultId}",
taskCreate: '/api/shop-match/tasks', "taskCreate": "/api/shop-match/tasks",
taskDelete: '/api/shop-match/tasks/{taskId}', "taskDelete": "/api/shop-match/tasks/{taskId}",
taskActivate: '/api/shop-match/tasks/{taskId}/activate', "taskActivate": "/api/shop-match/tasks/{taskId}/activate",
stageFinished: '/api/shop-match/tasks/{taskId}/stage-finished', "stageFinished": "/api/shop-match/tasks/{taskId}/stage-finished",
taskBatch: '/api/shop-match/tasks/batch', "taskBatch": "/api/shop-match/tasks/batch",
progressBatch: '/api/shop-match/tasks/progress/batch', "progressBatch": "/api/shop-match/tasks/progress/batch",
progressLight: '/api/shop-match/tasks/progress/light', "progressLight": "/api/shop-match/tasks/progress/light",
skipAsins: '/api/shop-match/tasks/{taskId}/skip-asins/paginated', "skipAsins": "/api/shop-match/tasks/{taskId}/skip-asins/paginated",
resultDownload: '/api/shop-match/results/{resultId}/download', "resultDownload": "/api/shop-match/results/{resultId}/download"
}, },
patrolDelete: { "patrolDelete": {
candidates: '/api/patrol-delete/candidates', "candidates": "/api/patrol-delete/candidates",
candidateAdd: '/api/patrol-delete/candidates', "candidateAdd": "/api/patrol-delete/candidates",
candidateDelete: '/api/patrol-delete/candidates/{id}', "candidateDelete": "/api/patrol-delete/candidates/{id}",
conditions: '/api/patrol-delete/conditions', "conditions": "/api/patrol-delete/conditions",
conditionAdd: '/api/patrol-delete/conditions', "conditionAdd": "/api/patrol-delete/conditions",
conditionDelete: '/api/patrol-delete/conditions/{id}', "conditionDelete": "/api/patrol-delete/conditions/{id}",
matchShops: '/api/patrol-delete/match-shops', "matchShops": "/api/patrol-delete/match-shops",
dashboard: '/api/patrol-delete/dashboard', "dashboard": "/api/patrol-delete/dashboard",
history: '/api/patrol-delete/history', "history": "/api/patrol-delete/history",
historyDelete: '/api/patrol-delete/history/{resultId}', "historyDelete": "/api/patrol-delete/history/{resultId}",
progressBatch: '/api/patrol-delete/tasks/progress/batch', "progressBatch": "/api/patrol-delete/tasks/progress/batch",
progressLight: '/api/patrol-delete/tasks/progress/light', "progressLight": "/api/patrol-delete/tasks/progress/light",
taskCreate: '/api/patrol-delete/tasks', "taskCreate": "/api/patrol-delete/tasks",
taskDelete: '/api/patrol-delete/tasks/{taskId}', "taskDelete": "/api/patrol-delete/tasks/{taskId}",
taskResult: '/api/patrol-delete/tasks/{taskId}/result', "taskResult": "/api/patrol-delete/tasks/{taskId}/result",
resultDownload: '/api/patrol-delete/results/{resultId}/download', "resultDownload": "/api/patrol-delete/results/{resultId}/download"
}, },
queryAsin: { "queryAsin": {
candidates: '/api/query-asin/candidates', "candidates": "/api/query-asin/candidates",
candidateAdd: '/api/query-asin/candidates', "candidateAdd": "/api/query-asin/candidates",
candidateDelete: '/api/query-asin/candidates/{id}', "candidateDelete": "/api/query-asin/candidates/{id}",
matchShops: '/api/query-asin/match-shops', "matchShops": "/api/query-asin/match-shops",
dashboard: '/api/query-asin/dashboard', "dashboard": "/api/query-asin/dashboard",
history: '/api/query-asin/history', "history": "/api/query-asin/history",
historyDelete: '/api/query-asin/history/{resultId}', "historyDelete": "/api/query-asin/history/{resultId}",
progressBatch: '/api/query-asin/tasks/progress/batch', "progressBatch": "/api/query-asin/tasks/progress/batch",
progressLight: '/api/query-asin/tasks/progress/light', "progressLight": "/api/query-asin/tasks/progress/light",
taskCreate: '/api/query-asin/tasks', "taskCreate": "/api/query-asin/tasks",
taskDelete: '/api/query-asin/tasks/{taskId}', "taskDelete": "/api/query-asin/tasks/{taskId}",
taskResult: '/api/query-asin/tasks/{taskId}/result', "taskResult": "/api/query-asin/tasks/{taskId}/result",
resultDownload: '/api/query-asin/results/{resultId}/download', "resultDownload": "/api/query-asin/results/{resultId}/download"
}, },
shopDataCrawl: { "shopDataCrawl": {
candidates: '/api/shop-data-crawl/candidates', "candidates": "/api/shop-data-crawl/candidates",
candidateAdd: '/api/shop-data-crawl/candidates', "candidateAdd": "/api/shop-data-crawl/candidates",
candidateDelete: '/api/shop-data-crawl/candidates/{id}', "candidateDelete": "/api/shop-data-crawl/candidates/{id}",
countryPreference: '/api/shop-data-crawl/country-preference', "countryPreference": "/api/shop-data-crawl/country-preference",
matchShops: '/api/shop-data-crawl/match-shops', "matchShops": "/api/shop-data-crawl/match-shops",
dashboard: '/api/shop-data-crawl/dashboard', "dashboard": "/api/shop-data-crawl/dashboard",
history: '/api/shop-data-crawl/history', "history": "/api/shop-data-crawl/history",
historyDelete: '/api/shop-data-crawl/history/{resultId}', "historyDelete": "/api/shop-data-crawl/history/{resultId}",
progressBatch: '/api/shop-data-crawl/tasks/progress/batch', "progressBatch": "/api/shop-data-crawl/tasks/progress/batch",
progressLight: '/api/shop-data-crawl/tasks/progress/light', "progressLight": "/api/shop-data-crawl/tasks/progress/light",
taskCreate: '/api/shop-data-crawl/tasks', "taskCreate": "/api/shop-data-crawl/tasks",
taskDelete: '/api/shop-data-crawl/tasks/{taskId}', "taskDelete": "/api/shop-data-crawl/tasks/{taskId}",
resultDownload: '/api/shop-data-crawl/results/{resultId}/download', "resultDownload": "/api/shop-data-crawl/results/{resultId}/download"
}, },
withdraw: { "withdraw": {
candidates: '/api/withdraw/candidates', "candidates": "/api/withdraw/candidates",
candidateAdd: '/api/withdraw/candidates', "candidateAdd": "/api/withdraw/candidates",
candidateDelete: '/api/withdraw/candidates/{id}', "candidateDelete": "/api/withdraw/candidates/{id}",
candidatesClear: '/api/withdraw/candidates/clear', "candidatesClear": "/api/withdraw/candidates/clear",
matchShops: '/api/withdraw/match-shops', "matchShops": "/api/withdraw/match-shops",
dashboard: '/api/withdraw/dashboard', "dashboard": "/api/withdraw/dashboard",
history: '/api/withdraw/history', "history": "/api/withdraw/history",
historyDelete: '/api/withdraw/history/{resultId}', "historyDelete": "/api/withdraw/history/{resultId}",
progressBatch: '/api/withdraw/tasks/progress/batch', "progressBatch": "/api/withdraw/tasks/progress/batch",
progressLight: '/api/withdraw/tasks/progress/light', "progressLight": "/api/withdraw/tasks/progress/light",
taskCreate: '/api/withdraw/tasks', "taskCreate": "/api/withdraw/tasks",
taskDelete: '/api/withdraw/tasks/{taskId}', "taskDelete": "/api/withdraw/tasks/{taskId}",
taskResult: '/api/withdraw/tasks/{taskId}/result', "taskResult": "/api/withdraw/tasks/{taskId}/result",
resultDownload: '/api/withdraw/results/{resultId}/download', "resultDownload": "/api/withdraw/results/{resultId}/download"
}, },
priceTrack: { "priceTrack": {
candidates: '/api/price-track/candidates', "candidates": "/api/price-track/candidates",
candidateAdd: '/api/price-track/candidates', "candidateAdd": "/api/price-track/candidates",
candidateDelete: '/api/price-track/candidates/{id}', "candidateDelete": "/api/price-track/candidates/{id}",
countryPreference: '/api/price-track/country-preference', "countryPreference": "/api/price-track/country-preference",
matchShops: '/api/price-track/match-shops', "matchShops": "/api/price-track/match-shops",
taskCreate: '/api/price-track/tasks', "taskCreate": "/api/price-track/tasks",
taskDelete: '/api/price-track/tasks/{taskId}', "taskDelete": "/api/price-track/tasks/{taskId}",
tasksBatch: '/api/price-track/tasks/batch', "tasksBatch": "/api/price-track/tasks/batch",
progressBatch: '/api/price-track/tasks/progress/batch', "progressBatch": "/api/price-track/tasks/progress/batch",
progressLight: '/api/price-track/tasks/progress/light', "progressLight": "/api/price-track/tasks/progress/light",
loopRuns: '/api/price-track/loop-runs', "loopRuns": "/api/price-track/loop-runs",
loopRunDetail: '/api/price-track/loop-runs/{loopRunId}', "loopRunDetail": "/api/price-track/loop-runs/{loopRunId}",
loopRunStop: '/api/price-track/loop-runs/{loopRunId}/stop', "loopRunStop": "/api/price-track/loop-runs/{loopRunId}/stop",
loopRunDispatchNext: '/api/price-track/loop-runs/{loopRunId}/dispatch-next', "loopRunDispatchNext": "/api/price-track/loop-runs/{loopRunId}/dispatch-next",
loopRunChildFinished: '/api/price-track/loop-runs/{loopRunId}/child-finished', "loopRunChildFinished": "/api/price-track/loop-runs/{loopRunId}/child-finished",
skipAsinCheck: '/api/price-track/tasks/{taskId}/skip-asin/check', "skipAsinCheck": "/api/price-track/tasks/{taskId}/skip-asin/check",
skipAsins: '/api/price-track/tasks/{taskId}/skip-asins/paginated', "skipAsins": "/api/price-track/tasks/{taskId}/skip-asins/paginated",
pendingShopResult: '/api/price-track/pending-shop-result', "pendingShopResult": "/api/price-track/pending-shop-result",
dispatchFailed: '/api/price-track/tasks/{taskId}/dispatch-failed', "dispatchFailed": "/api/price-track/tasks/{taskId}/dispatch-failed",
dashboard: '/api/price-track/dashboard', "dashboard": "/api/price-track/dashboard",
history: '/api/price-track/history', "history": "/api/price-track/history",
historyDelete: '/api/price-track/history/{resultId}', "historyDelete": "/api/price-track/history/{resultId}",
resultDownload: '/api/price-track/results/{resultId}/download', "resultDownload": "/api/price-track/results/{resultId}/download"
}, },
similarAsin: { "similarAsin": {
parse: '/api/similar-asin/parse', "parse": "/api/similar-asin/parse",
dashboard: '/api/similar-asin/dashboard', "dashboard": "/api/similar-asin/dashboard",
history: '/api/similar-asin/history', "history": "/api/similar-asin/history",
historyDelete: '/api/similar-asin/history/{resultId}', "historyDelete": "/api/similar-asin/history/{resultId}",
progressBatch: '/api/similar-asin/tasks/progress/batch', "progressBatch": "/api/similar-asin/tasks/progress/batch",
progressLight: '/api/similar-asin/tasks/progress/light', "progressLight": "/api/similar-asin/tasks/progress/light",
taskActivate: '/api/similar-asin/tasks/{taskId}/activate', "taskActivate": "/api/similar-asin/tasks/{taskId}/activate",
taskDelete: '/api/similar-asin/tasks/{taskId}', "taskDelete": "/api/similar-asin/tasks/{taskId}",
resultDownload: '/api/similar-asin/results/{resultId}/download', "resultDownload": "/api/similar-asin/results/{resultId}/download"
}, },
appearancePatent: { "appearancePatent": {
parse: '/api/appearance-patent/parse', "parse": "/api/appearance-patent/parse",
parsedPayload: '/api/appearance-patent/tasks/{taskId}/parsed-payload', "parsedPayload": "/api/appearance-patent/tasks/{taskId}/parsed-payload",
queuePayload: '/api/appearance-patent/tasks/{taskId}/queue-payload', "queuePayload": "/api/appearance-patent/tasks/{taskId}/queue-payload",
dashboard: '/api/appearance-patent/dashboard', "dashboard": "/api/appearance-patent/dashboard",
history: '/api/appearance-patent/history', "history": "/api/appearance-patent/history",
historyDelete: '/api/appearance-patent/history/{resultId}', "historyDelete": "/api/appearance-patent/history/{resultId}",
progressBatch: '/api/appearance-patent/tasks/progress/batch', "progressBatch": "/api/appearance-patent/tasks/progress/batch",
progressLight: '/api/appearance-patent/tasks/progress/light', "progressLight": "/api/appearance-patent/tasks/progress/light",
taskActivate: '/api/appearance-patent/tasks/{taskId}/activate', "taskActivate": "/api/appearance-patent/tasks/{taskId}/activate",
taskDelete: '/api/appearance-patent/tasks/{taskId}', "taskDelete": "/api/appearance-patent/tasks/{taskId}",
resultDownload: '/api/appearance-patent/results/{resultId}/download', "resultDownload": "/api/appearance-patent/results/{resultId}/download"
}, },
collectData: { "collectData": {
parse: '/api/collect-data/parse', "parse": "/api/collect-data/parse",
countryPreference: '/api/collect-data/country-preference', "countryPreference": "/api/collect-data/country-preference",
dashboard: '/api/collect-data/dashboard', "dashboard": "/api/collect-data/dashboard",
history: '/api/collect-data/history', "history": "/api/collect-data/history",
historyDelete: '/api/collect-data/history/{resultId}', "historyDelete": "/api/collect-data/history/{resultId}",
progressBatch: '/api/collect-data/tasks/progress/batch', "progressBatch": "/api/collect-data/tasks/progress/batch",
progressLight: '/api/collect-data/tasks/progress/light', "progressLight": "/api/collect-data/tasks/progress/light",
taskActivate: '/api/collect-data/tasks/{taskId}/activate', "taskActivate": "/api/collect-data/tasks/{taskId}/activate",
taskDelete: '/api/collect-data/tasks/{taskId}', "taskDelete": "/api/collect-data/tasks/{taskId}",
fail: '/api/collect-data/tasks/{taskId}/fail', "fail": "/api/collect-data/tasks/{taskId}/fail",
items: '/api/collect-data/tasks/{taskId}/items', "items": "/api/collect-data/tasks/{taskId}/items",
resultDownload: '/api/collect-data/results/{resultId}/download', "resultDownload": "/api/collect-data/results/{resultId}/download"
}, },
imageVideo: { "imageVideo": {
workflowRun: '/api/image-video/workflow/run', "workflowRun": "/api/image-video/workflow/run",
workflowResult: '/api/image-video/workflow/result', "workflowResult": "/api/image-video/workflow/result",
secrets: '/api/image-video/secrets', "secrets": "/api/image-video/secrets",
taskDetail: '/api/image-video/tasks/{taskId}', "taskDetail": "/api/image-video/tasks/{taskId}",
voiceClone: '/api/image-video/voice/clone', "voiceClone": "/api/image-video/voice/clone",
voiceList: '/api/image-video/voice/list', "voiceList": "/api/image-video/voice/list",
voiceDelete: '/api/image-video/voice/delete', "voiceDelete": "/api/image-video/voice/delete",
voiceSynthesis: '/api/image-video/voice/synthesis', "voiceSynthesis": "/api/image-video/voice/synthesis",
douyinCopy: '/api/image-video/douyin-copy', "douyinCopy": "/api/image-video/douyin-copy"
}, },
brand: { "brand": {
run: '/api/brand/run', "run": "/api/brand/run",
expandFolder: '/api/brand/expand-folder', "expandFolder": "/api/brand/expand-folder",
expandFolderRecursive: '/api/brand/expand-folder-recursive', "expandFolderRecursive": "/api/brand/expand-folder-recursive",
taskDetail: '/api/brand/tasks/{taskId}', "taskDetail": "/api/brand/tasks/{taskId}",
taskCancel: '/api/brand/tasks/{taskId}/cancel', "taskCancel": "/api/brand/tasks/{taskId}/cancel",
taskDownload: '/api/brand/tasks/{taskId}/download', "taskDownload": "/api/brand/tasks/{taskId}/download",
taskEvents: '/api/brand/tasks/{taskId}/events', "taskEvents": "/api/brand/tasks/{taskId}/events"
}, },
permission: { "permission": {
columnPermissions: '/api/admin/permission-users/{uid}/column-permissions', "columnPermissions": "/api/admin/permission-users/{uid}/column-permissions"
}, },
digitalHuman: { "digitalHuman": {
versions: '/api/digital-human/versions', "versions": "/api/digital-human/versions",
upload: '/api/digital-human/versions/upload', "upload": "/api/digital-human/versions/upload",
latest: '/api/digital-human/versions/latest', "latest": "/api/digital-human/versions/latest",
detail: '/api/digital-human/versions/{version}', "detail": "/api/digital-human/versions/{version}",
release: '/api/digital-human/versions/{version}/release', "release": "/api/digital-human/versions/{version}/release",
setLatest: '/api/digital-human/versions/{version}/set-latest', "setLatest": "/api/digital-human/versions/{version}/set-latest",
delete: '/api/digital-human/versions/{version}', "delete": "/api/digital-human/versions/{version}",
downloadUrl: '/api/digital-human/versions/{version}/download-url', "downloadUrl": "/api/digital-human/versions/{version}/download-url"
}, }
}, '常量表快照不应漂移') }, '常量表快照不应漂移')
}) })
test('test_endpoint_values_no_trailing_slash', () => { test('test_endpoint_values_no_trailing_slash', () => {