优化客服权限-增加兑换截图和关闭任务

This commit is contained in:
yml
2026-04-14 20:36:52 +08:00
parent 9636167177
commit 4d03b4ef8d
6 changed files with 82 additions and 32 deletions
@@ -0,0 +1,39 @@
import test from 'node:test'
import assert from 'node:assert/strict'
import {
canViewerCloseTask,
createAdminViewerContext,
resolveAdminTaskScreenshotUrl,
} from './admin-read-shared-helpers.js'
test('resolveAdminTaskScreenshotUrl lets support view final redeemed screenshot', async () => {
const task = {
id: 12,
screenshot_path: '/tmp/redeemed-12.png',
browser_session_id: '',
}
const screenshotUrl = await resolveAdminTaskScreenshotUrl(task, createAdminViewerContext({ role: 'support' }))
assert.equal(screenshotUrl, '/api/v1/admin/tasks/12/screenshot')
})
test('resolveAdminTaskScreenshotUrl falls back to review screenshot when only browser session exists', async () => {
const task = {
id: 13,
screenshot_path: '',
browser_session_id: 'browser-session-13',
}
const screenshotUrl = await resolveAdminTaskScreenshotUrl(task, createAdminViewerContext({ role: 'support' }))
assert.equal(screenshotUrl, '/api/v1/admin/tasks/13/screenshot')
})
test('canViewerCloseTask allows support to close active task but not redeemed task', () => {
const viewerContext = createAdminViewerContext({ role: 'support' })
assert.equal(canViewerCloseTask({ task_status: 'link_generated' }, viewerContext), true)
assert.equal(canViewerCloseTask({ task_status: 'redeemed' }, viewerContext), false)
})