diff --git a/apps/frontend/package.json b/apps/frontend/package.json index ebb9b13..41e4985 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -7,7 +7,7 @@ "dev": "vite", "build": "vue-tsc -b && vite build", "preview": "vite preview", - "test": "node --test --experimental-strip-types src/app/theme.test.ts src/components/templates/template-config.test.ts src/views/dashboard-license.test.ts", + "test": "node --test --experimental-strip-types src/app/theme.test.ts src/components/templates/template-config.test.ts src/utils/format.test.ts src/views/dashboard-license.test.ts", "typecheck": "vue-tsc -b", "lint": "eslint . --fix", "lint:check": "eslint .", diff --git a/apps/frontend/src/utils/format.test.ts b/apps/frontend/src/utils/format.test.ts new file mode 100644 index 0000000..6b39f69 --- /dev/null +++ b/apps/frontend/src/utils/format.test.ts @@ -0,0 +1,9 @@ +import assert from 'node:assert/strict' +import test from 'node:test' +import { statusLabel, statusTone } from './format.ts' + +test('formats token_expired status for check-in records', () => { + assert.equal(statusLabel('token_expired'), '凭证过期') + assert.equal(statusTone('token_expired'), 'danger') + assert.equal(statusLabel('token-expired'), 'token-expired') +}) diff --git a/apps/frontend/src/utils/format.ts b/apps/frontend/src/utils/format.ts index fe9e829..3112590 100644 --- a/apps/frontend/src/utils/format.ts +++ b/apps/frontend/src/utils/format.ts @@ -35,6 +35,7 @@ export function statusLabel(status?: string | null) { running: '进行中', already_submitted: '已提交', out_of_time: '超出时间', + token_expired: '凭证过期', unknown: '未知', manual: '手动', scheduler: '定时', @@ -47,7 +48,14 @@ export function statusLabel(status?: string | null) { export function statusTone(status?: string | null) { if (status === 'success' || status === 'already_submitted') return 'success' if (status === 'pending' || status === 'running') return 'warning' - if (status === 'failure' || status === 'failed' || status === 'out_of_time') return 'danger' + if ( + status === 'failure' || + status === 'failed' || + status === 'out_of_time' || + status === 'token_expired' + ) { + return 'danger' + } return 'neutral' } diff --git a/apps/frontend/src/views/RecordsView.vue b/apps/frontend/src/views/RecordsView.vue index 68264c5..4cfe4b9 100644 --- a/apps/frontend/src/views/RecordsView.vue +++ b/apps/frontend/src/views/RecordsView.vue @@ -48,6 +48,7 @@ onMounted(load) +