Files
admin-web/src/modules/finance/pages/FinanceSettlementRouteLayout.test.ts
T

25 lines
1.4 KiB
TypeScript

import { readFileSync } from 'node:fs'
import { resolve } from 'node:path'
import { describe, expect, it } from 'vitest'
const receivableSource = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceSettlementReceivablesView.vue'), 'utf8')
const payableSource = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceSettlementPayablesView.vue'), 'utf8')
describe('Finance settlement route 1920px layout', () => {
it.each([
['应收', receivableSource, 'finance-settlement-route--receivable'],
['应付', payableSource, 'finance-settlement-route--payable'],
])('delegates the detail grid to the shared settlement page for %s', (_label, source, routeClass) => {
expect(source).toContain(routeClass)
expect(source).toContain('<FinanceFormalSettlementPage')
expect(source).toContain(':settlement-id="settlementId"')
expect(source).toContain('@open-detail="openDetail" @back="back"')
expect(source).toContain('kind="' + (routeClass.endsWith('receivable') ? 'receivable' : 'payable') + '"')
expect(source).not.toContain('<style')
const shared = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceFormalSettlementPage.vue'), 'utf8')
expect(shared).toContain(':column="4" class="settlement-detail-info density-descriptions"')
expect(shared).toContain('finance-density-detail')
expect(shared).not.toContain('width: min(100%, 1920px)')
})
})