1
This commit is contained in:
@@ -7,6 +7,7 @@ import { enableAutoUnmount, flushPromises, mount } from '@vue/test-utils'
|
||||
import { afterAll, afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import { useAccessPreviewStore } from '@/core/access/accessPreview'
|
||||
import { useAuthStore } from '@/core/auth/auth'
|
||||
import { ApiResponseError } from '@/shared/api/http'
|
||||
import { createPlatformExportTask } from '@/modules/downloads'
|
||||
import { listPlatformTenants } from '@/modules/iam'
|
||||
import { showExportTaskCreatedDialog } from '@/shared/components/exportTaskCreatedDialog'
|
||||
@@ -292,6 +293,30 @@ describe('FinanceCustomerStatementsView', () => {
|
||||
expect(router.currentRoute.value).toMatchObject({ name: 'finance-customer-statement-detail', params: { statementId: '502' } })
|
||||
})
|
||||
|
||||
it('keeps the generation dialog open with a customer-friendly message when no billable fees exist', async () => {
|
||||
const permissions = ['platform:finance:customer-statement:list', 'platform:finance:reconciliation:create', 'platform:customer:list']
|
||||
const { wrapper } = await mountPage(permissions)
|
||||
const vm = wrapper.vm as unknown as {
|
||||
createOpen: boolean
|
||||
createError: { message: string } | null
|
||||
createForm: { customerId: string; periodStart: string; periodEnd: string; generationMode: string; feeSourceIds: string[] }
|
||||
openCreate(): void
|
||||
createStatement(): Promise<void>
|
||||
}
|
||||
vm.openCreate()
|
||||
vm.createForm.customerId = '10001'
|
||||
vm.createForm.generationMode = 'BY_CUTOFF'
|
||||
vm.createForm.periodStart = '2026-08-01'
|
||||
vm.createForm.periodEnd = '2026-08-25'
|
||||
vi.mocked(createReconciliationStatement).mockRejectedValueOnce(new ApiResponseError('没有符合结算条件的CNY应收费用来源', 'FIN_409'))
|
||||
|
||||
await vm.createStatement()
|
||||
await flushPromises()
|
||||
expect(vm.createOpen).toBe(true)
|
||||
expect(vm.createError?.message).toContain('没有可生成的应收费用')
|
||||
expect(document.body.textContent).toContain('请调整账期或选择其他客户后重试')
|
||||
})
|
||||
|
||||
it('uses statement detail snapshots without a second fee-source request or technical trace fields', async () => {
|
||||
const { wrapper } = await mountPage(['platform:finance:customer-statement:list'])
|
||||
await (wrapper.vm as unknown as { openDetail(row: FinanceStatementReadModel): Promise<void> }).openDetail(statement)
|
||||
|
||||
Reference in New Issue
Block a user