refactor: unify cleaner history status display
This commit is contained in:
42
tests/unit/cleaner-history-status.test.tsx
Normal file
42
tests/unit/cleaner-history-status.test.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
import React from 'react'
|
||||
import { renderToStaticMarkup } from 'react-dom/server'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import {
|
||||
getCleanerHistoryStatusDisplay,
|
||||
getCleanerMaterialResultDisplay
|
||||
} from '../../src/renderer/src/components/cleaner-history-status'
|
||||
|
||||
describe('cleaner history status helpers', () => {
|
||||
it('returns shared label, badge class and icon for known statuses', () => {
|
||||
const display = getCleanerHistoryStatusDisplay('erp_not_found')
|
||||
|
||||
expect(display.label).toBe('ERP不存在')
|
||||
expect(display.badgeClassName).toBe('bg-orange-100 text-orange-700')
|
||||
expect(renderToStaticMarkup(React.createElement(React.Fragment, null, display.icon))).toContain(
|
||||
'text-orange-600'
|
||||
)
|
||||
})
|
||||
|
||||
it('falls back to pending style for unknown statuses while preserving text', () => {
|
||||
const display = getCleanerHistoryStatusDisplay('custom_status')
|
||||
|
||||
expect(display.label).toBe('custom_status')
|
||||
expect(display.badgeClassName).toBe('bg-gray-100 text-gray-700')
|
||||
})
|
||||
|
||||
it('maps failed material outcomes through the shared helper', () => {
|
||||
const display = getCleanerMaterialResultDisplay('failed_timeout')
|
||||
|
||||
expect(display.title).toBe('Failed')
|
||||
expect(renderToStaticMarkup(React.createElement(React.Fragment, null, display.icon))).toContain(
|
||||
'text-red-600'
|
||||
)
|
||||
})
|
||||
|
||||
it('returns plain text for unknown material outcomes', () => {
|
||||
const display = getCleanerMaterialResultDisplay('needs_manual_check')
|
||||
|
||||
expect(display.title).toBe('needs_manual_check')
|
||||
expect(display.icon).toBeNull()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user