proposalView.test.js 1.11 KB
import { describe, expect, it } from 'vitest'
import { canViewProposal, getProposalFiles } from '../proposalView'

describe('proposalView', () => {
  it('处理中且有 proposal_files 时应该允许查看', () => {
    expect(canViewProposal({
      order_status: '5',
      proposal_files: [{ file_name: '计划书.pdf', file_url: 'https://example.com/plan.pdf' }]
    })).toBe(true)
  })

  it('处理中但没有文件时不应该允许查看', () => {
    expect(canViewProposal({
      order_status: '5',
      proposal_files: []
    })).toBe(false)
  })

  it('待处理即使有文件时也不应该允许查看', () => {
    expect(canViewProposal({
      order_status: '3',
      proposal_files: [{ file_name: '计划书.pdf', file_url: 'https://example.com/plan.pdf' }]
    })).toBe(false)
  })

  it('应该兼容 proposalFiles 字段', () => {
    const files = [{ file_name: '计划书.pdf', file_url: 'https://example.com/plan.pdf' }]

    expect(getProposalFiles({ proposalFiles: files })).toEqual(files)
    expect(canViewProposal({
      status: 'processing',
      proposalFiles: files
    })).toBe(true)
  })
})