This commit is contained in:
2026-08-19 09:14:35 +08:00
parent c188482c24
commit 80cfca5056
36 changed files with 854 additions and 1044 deletions
@@ -3,14 +3,27 @@ import { resolve } from 'node:path'
import { describe, expect, it } from 'vitest'
const source = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceFormalSettlementPage.vue'), 'utf8')
const statementsSource = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceCustomerStatementsView.vue'), 'utf8')
describe('Finance formal settlement desktop presentation', () => {
it('keeps settlement totals and list actions in one compact toolbar', () => {
expect(source).toContain('<section class="settlement-list-toolbar" aria-label="结算汇总与列表操作">')
it('keeps settlement totals on the left and list actions on the right of the table toolbar', () => {
expect(source).toContain('<template #toolbar-start>')
expect(source).toContain('<div class="settlement-summary" aria-label="结算汇总">')
expect(source).toContain('<template #toolbar-actions>')
expect(source).toContain('<div class="settlement-list-actions">')
expect(source).toContain('.settlement-list-toolbar { display: flex; min-height: 54px;')
expect(source).not.toContain('<template #toolbar-actions>')
expect(source).not.toContain('class="settlement-list-toolbar"')
})
it('paginates customer statements and both settlement lists after filtering', () => {
for (const pageSource of [statementsSource, source]) {
expect(pageSource).toContain('const page = ref(1)')
expect(pageSource).toContain('const pageSize = ref(20)')
expect(pageSource).toContain('const paginatedRows = computed(() => {')
expect(pageSource).toContain('filteredRows.value.slice(start, start + pageSize.value)')
expect(pageSource).toContain('v-model:page="page" v-model:page-size="pageSize" :data="paginatedRows"')
expect(pageSource).toContain(':total="filteredRows.length"')
expect(pageSource).toContain('page.value = 1')
}
})
it('renders up to three row actions as compact icon buttons without wrapping', () => {