diff --git a/packages/desktop-client/e2e/budget.test.js b/packages/desktop-client/e2e/budget.test.js index d1160a5bc7ace35da0b4b74a2a980537adf7618c..ebfd78d005801e8667c02cea079b7194c398784b 100644 --- a/packages/desktop-client/e2e/budget.test.js +++ b/packages/desktop-client/e2e/budget.test.js @@ -50,4 +50,14 @@ test.describe('Budget', () => { balance: expect.any(Number), }); }); + + test('clicking on spent amounts opens a transaction page', async () => { + let categoryName = await budgetPage.getCategoryNameForRow(1); + let accountPage = await budgetPage.clickOnSpentAmountForRow(1); + expect(page.url()).toContain('/accounts'); + expect(await accountPage.accountName.textContent()).toMatch( + new RegExp(String.raw`${categoryName} \(\w+ \d+\)`), + ); + await page.getByRole('button', { name: 'Back' }).click(); + }); }); diff --git a/packages/desktop-client/e2e/page-models/budget-page.js b/packages/desktop-client/e2e/page-models/budget-page.js index 3af42c338272446824b30a5495fa1a61a551d0e7..86b168a2e1d7f6507b9d7e6fdedcf7ae5e5d9220 100644 --- a/packages/desktop-client/e2e/page-models/budget-page.js +++ b/packages/desktop-client/e2e/page-models/budget-page.js @@ -1,3 +1,5 @@ +import { AccountPage } from './account-page'; + export class BudgetPage { constructor(page) { this.page = page; @@ -46,12 +48,25 @@ export class BudgetPage { ); } - async transferAllBalance(fromIdx, toIdx) { - const toName = await this.budgetTable + async getCategoryNameForRow(idx) { + return this.budgetTable .getByTestId('row') - .nth(toIdx) + .nth(idx) .getByTestId('category-name') .textContent(); + } + + async clickOnSpentAmountForRow(idx) { + await this.budgetTable + .getByTestId('row') + .nth(idx) + .getByTestId('category-month-spent') + .click(); + return new AccountPage(this.page); + } + + async transferAllBalance(fromIdx, toIdx) { + const toName = await this.getCategoryNameForRow(toIdx); await this.budgetTable .getByTestId('row') diff --git a/packages/desktop-client/src/components/budget/index.js b/packages/desktop-client/src/components/budget/index.js index b14ab026787f37977fc892f027939fa77bdd45c6..2436b32efab934d1654366030a59fe2c217ad44a 100644 --- a/packages/desktop-client/src/components/budget/index.js +++ b/packages/desktop-client/src/components/budget/index.js @@ -332,8 +332,7 @@ class Budget extends PureComponent { }; onShowActivity = (categoryName, categoryId, month) => { - this.props.navigate({ - pathname: '/accounts', + this.props.navigate('/accounts', { state: { goBack: true, filterName: `${categoryName} (${monthUtils.format( diff --git a/packages/desktop-client/src/components/budget/report/components.tsx b/packages/desktop-client/src/components/budget/report/components.tsx index dd663c6c19778cf480d773ad4f2d0b80481b9e38..f93467cb478d9a5c1b0a9f5d3b168a6354b32c9c 100644 --- a/packages/desktop-client/src/components/budget/report/components.tsx +++ b/packages/desktop-client/src/components/budget/report/components.tsx @@ -246,6 +246,7 @@ export const CategoryMonth = memo(function CategoryMonth({ style={{ textAlign: 'right' }} > <span + data-testid="category-month-spent" onClick={() => onShowActivity(category.name, category.id, monthIndex)} > <CellValue diff --git a/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx b/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx index b9ec4d0f788126503b968a99635c88acec6da85f..9cbc268aacea9b3edeea18019279661e5b0851df 100644 --- a/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx +++ b/packages/desktop-client/src/components/budget/rollover/rollover-components.tsx @@ -371,6 +371,7 @@ export const ExpenseCategoryMonth = memo(function ExpenseCategoryMonth({ style={{ textAlign: 'right' }} > <span + data-testid="category-month-spent" onClick={() => onShowActivity(category.name, category.id, monthIndex)} > <CellValue diff --git a/upcoming-release-notes/1182.md b/upcoming-release-notes/1182.md new file mode 100644 index 0000000000000000000000000000000000000000..0290813bde3c828eb0a167f1ff7605b178699f16 --- /dev/null +++ b/upcoming-release-notes/1182.md @@ -0,0 +1,6 @@ +--- +category: Bugfix +authors: [j-f1] +--- + +Fix navigating to the per-category per-month page