38 lines
1.0 KiB
JavaScript
38 lines
1.0 KiB
JavaScript
import {
|
|
buildOutboxQuery,
|
|
nextAction,
|
|
stateLabel,
|
|
stateType,
|
|
typeLabel
|
|
} from '@/views/sense/outbox/outboxState'
|
|
|
|
describe('Sense outbox presentation state', () => {
|
|
test('uses operator-facing labels and non-color-only states', () => {
|
|
expect(stateLabel('dead')).toBe('死信')
|
|
expect(stateType('dead')).toBe('danger')
|
|
expect(typeLabel('local_event_candidate')).toBe('本地事件候选')
|
|
})
|
|
test('builds an allowlisted trimmed query', () => {
|
|
expect(
|
|
buildOutboxQuery({
|
|
pageIndex: 2,
|
|
pageSize: 20,
|
|
state: 'retry',
|
|
internalType: 'local_event_candidate',
|
|
keyword: ' key ',
|
|
ignored: 'no'
|
|
})
|
|
).toEqual({
|
|
pageIndex: 2,
|
|
pageSize: 20,
|
|
state: 'retry',
|
|
internalType: 'local_event_candidate',
|
|
keyword: 'key'
|
|
})
|
|
})
|
|
test('explains the next recovery action', () => {
|
|
expect(nextAction({ state: 'dead' })).toBe('等待人工处理')
|
|
expect(nextAction({ state: 'pending' })).toBe('等待 worker 领取')
|
|
})
|
|
})
|