刘光辉
2 小时以前 cf11e63b659afcc9792ab3e395f1b45d844431a8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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);
  });
});