import { describe, expect, it } from 'vitest';
|
|
import { hasApprovalOpinion, hasValue, isApprovalOpinionRequired, shouldOpenApprovalDrawer } from '../approvalOpinion';
|
|
describe('approvalOpinion', () => {
|
it('requires an opinion only for configured approval and rejection actions', () => {
|
const properties = { hasOpinion: true, opinionRequired: true };
|
|
expect(isApprovalOpinionRequired(properties, 'audit')).toBe(true);
|
expect(isApprovalOpinionRequired(properties, 'reject')).toBe(true);
|
expect(isApprovalOpinionRequired(properties, 'submit')).toBe(false);
|
expect(isApprovalOpinionRequired({ hasOpinion: false, opinionRequired: true }, 'audit')).toBe(false);
|
});
|
|
it('rejects empty and whitespace-only opinions', () => {
|
expect(hasApprovalOpinion('')).toBe(false);
|
expect(hasApprovalOpinion(' ')).toBe(false);
|
expect(hasApprovalOpinion('\n\t')).toBe(false);
|
expect(hasApprovalOpinion('已核对,予以同意')).toBe(true);
|
});
|
|
it('recognizes approval form values used after the drawer is collapsed', () => {
|
expect(hasValue([])).toBe(false);
|
expect(hasValue(['file-id'])).toBe(true);
|
expect(hasValue(0)).toBe(true);
|
expect(hasValue(null)).toBe(false);
|
});
|
|
it('submits when a required opinion is already filled and the drawer is collapsed', () => {
|
const properties = { hasOpinion: true, opinionRequired: true };
|
|
expect(shouldOpenApprovalDrawer(undefined, properties, 'audit', { handleOpinion: '同意' })).toBe(false);
|
expect(shouldOpenApprovalDrawer(undefined, properties, 'audit', { handleOpinion: '' })).toBe(true);
|
expect(shouldOpenApprovalDrawer(undefined, { hasSign: true }, 'audit', { signImg: '' })).toBe(true);
|
});
|
});
|