feat(reconciliation): absorb the last bank-view tools and retire /reports/bank-reconciliation (#1871)
The old Bankavstämning report page was the only place a user could still tag a bank row as ingående balans or move it to another bank account, so the new /reconciliation page kept linking out to it and the reconciliation lived in two places. Both row tools now live on the account overview (hover-revealed, same endpoints), the ?autorun=1 deep link from the transactions inbox runs the matcher on the new page, and the report slug redirects: old links, ⌘K, the bokslut readiness wizard and the ignore toast all land on /reconciliation. BankReconciliationView and its FocusedReport branches (own range preset, help popover, autoRun plumbing) are removed; the source-grepping parity test for its quick-book path goes with it. Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Jakob Wennberg
Claude Fable 5
parent
d88df74b85
commit
9ebb2e518f
@@ -112,14 +112,11 @@ describe('transactions page booking feedback', () => {
|
||||
* Duplicate-guard feedback parity: every client of POST /categorize must route
|
||||
* a TRANSACTION_BOOK_POSSIBLE_DUPLICATE 409 into DuplicateBookingDialog (which
|
||||
* offers match / ignore / book-anyway), never into a destructive toast that
|
||||
* names no way forward. Two clients used to dead-end: the counterparty-
|
||||
* template branch of handleQuickReviewConfirm, and BankReconciliationView's
|
||||
* quick-book.
|
||||
* names no way forward. The counterparty-template branch of
|
||||
* handleQuickReviewConfirm used to dead-end. (The old BankReconciliationView
|
||||
* quick-book was retired with the view on 2026-08-25; /reconciliation books
|
||||
* through the shared transactions inbox flow instead.)
|
||||
*/
|
||||
const BANK_RECON_SRC = fs.readFileSync(
|
||||
path.resolve(__dirname, '../../reports/BankReconciliationView.tsx'),
|
||||
'utf8',
|
||||
)
|
||||
|
||||
describe('duplicate-guard 409 routing parity', () => {
|
||||
it('handles the duplicate code on both booking paths of the transactions page', () => {
|
||||
@@ -136,14 +133,4 @@ describe('duplicate-guard 409 routing parity', () => {
|
||||
/TRANSACTION_BOOK_POSSIBLE_DUPLICATE'[\s\S]{0,600}cpCategorize\(\{\s*\n?\s*expectedDuplicateJournalEntryId: candidate\.journal_entry_id,/,
|
||||
)
|
||||
})
|
||||
|
||||
it('routes the quick-book 409 on the reconciliation page into the shared dialog', () => {
|
||||
expect(BANK_RECON_SRC).toContain("'TRANSACTION_BOOK_POSSIBLE_DUPLICATE'")
|
||||
expect(BANK_RECON_SRC).toContain('<DuplicateBookingDialog')
|
||||
expect(BANK_RECON_SRC).toMatch(/setDuplicateWarning\(\{/)
|
||||
// The retry re-runs the quick-book with force bound to the candidate.
|
||||
expect(BANK_RECON_SRC).toMatch(
|
||||
/handleQuickBook\(transactionId, templateId, \{\s*\n?\s*expectedDuplicateJournalEntryId: candidate\.journal_entry_id,/,
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user