forked from actualbudget/actual
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
292 changed files
with
1,890 additions
and
1,527 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
import { test, expect } from '@playwright/test'; | ||
|
||
import { ConfigurationPage } from './page-models/configuration-page'; | ||
import { MobileNavigation } from './page-models/mobile-navigation'; | ||
|
||
test.describe('Mobile Accounts', () => { | ||
let page; | ||
let navigation; | ||
let configurationPage; | ||
|
||
test.beforeEach(async ({ browser }) => { | ||
page = await browser.newPage(); | ||
navigation = new MobileNavigation(page); | ||
configurationPage = new ConfigurationPage(page); | ||
|
||
await page.setViewportSize({ | ||
width: 350, | ||
height: 600, | ||
}); | ||
await page.goto('/'); | ||
await configurationPage.createTestFile(); | ||
}); | ||
|
||
test.afterEach(async () => { | ||
await page.close(); | ||
}); | ||
|
||
test('opens the accounts page and asserts on balances', async () => { | ||
const accountsPage = await navigation.goToAccountsPage(); | ||
|
||
const account = await accountsPage.getNthAccount(1); | ||
|
||
await expect(account.name).toHaveText('Ally Savings'); | ||
await expect(account.balance).toHaveText('7,653.00'); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
test('opens individual account page and checks that filtering is working', async () => { | ||
const accountsPage = await navigation.goToAccountsPage(); | ||
const accountPage = await accountsPage.openNthAccount(0); | ||
|
||
await expect(accountPage.heading).toHaveText('Bank of America'); | ||
await expect(accountPage.transactionList).toBeVisible(); | ||
await expect(await accountPage.getBalance()).toBeGreaterThan(0); | ||
await expect(accountPage.noTransactionsMessage).not.toBeVisible(); | ||
await expect(page).toMatchThemeScreenshots(); | ||
|
||
await accountPage.searchByText('nothing should be found'); | ||
await expect(accountPage.noTransactionsMessage).toBeVisible(); | ||
await expect(accountPage.transactions).toHaveCount(0); | ||
await expect(page).toMatchThemeScreenshots(); | ||
|
||
await accountPage.searchByText('Kroger'); | ||
await expect(accountPage.transactions).not.toHaveCount(0); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
}); |
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
Binary file added
BIN
+35.3 KB
...e-Accounts-opens-the-accounts-page-and-asserts-on-balances-1-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+34.7 KB
...e-Accounts-opens-the-accounts-page-and-asserts-on-balances-2-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+34.9 KB
...e-Accounts-opens-the-accounts-page-and-asserts-on-balances-3-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+5 Bytes
(100%)
.../e2e/accounts.test.js-snapshots/Accounts-closes-an-account-1-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+4 Bytes
(100%)
.../e2e/accounts.test.js-snapshots/Accounts-closes-an-account-2-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
+4 Bytes
(100%)
.../e2e/accounts.test.js-snapshots/Accounts-closes-an-account-3-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified
BIN
-15 Bytes
(100%)
.../e2e/accounts.test.js-snapshots/Accounts-closes-an-account-4-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,281 @@ | ||
import { test, expect } from '@playwright/test'; | ||
|
||
import * as monthUtils from 'loot-core/src/shared/months'; | ||
|
||
import { ConfigurationPage } from './page-models/configuration-page'; | ||
import { MobileNavigation } from './page-models/mobile-navigation'; | ||
|
||
const budgetTypes = ['Envelope', 'Tracking']; | ||
|
||
budgetTypes.forEach(budgetType => { | ||
test.describe(`Mobile Budget [${budgetType}]`, () => { | ||
let page; | ||
let navigation; | ||
let configurationPage; | ||
let previousGlobalIsTesting; | ||
|
||
test.beforeAll(() => { | ||
// TODO: Hack, properly mock the currentMonth function | ||
previousGlobalIsTesting = global.IS_TESTING; | ||
global.IS_TESTING = true; | ||
}); | ||
|
||
test.afterAll(() => { | ||
// TODO: Hack, properly mock the currentMonth function | ||
global.IS_TESTING = previousGlobalIsTesting; | ||
}); | ||
|
||
test.beforeEach(async ({ browser }) => { | ||
page = await browser.newPage(); | ||
navigation = new MobileNavigation(page); | ||
configurationPage = new ConfigurationPage(page); | ||
|
||
await page.setViewportSize({ | ||
width: 350, | ||
height: 600, | ||
}); | ||
await page.goto('/'); | ||
await configurationPage.createTestFile(); | ||
|
||
if (budgetType === 'Tracking') { | ||
// Set budget type to tracking | ||
const settingsPage = await navigation.goToSettingsPage(); | ||
await settingsPage.useBudgetType('tracking'); | ||
} | ||
}); | ||
|
||
test.afterEach(async () => { | ||
await page.close(); | ||
}); | ||
|
||
test('loads the budget page with budgeted amounts', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
await expect(budgetPage.categoryNames).toHaveText([ | ||
'Food', | ||
'Restaurants', | ||
'Entertainment', | ||
'Clothing', | ||
'General', | ||
'Gift', | ||
'Medical', | ||
'Savings', | ||
'Cell', | ||
'Internet', | ||
'Mortgage', | ||
'Water', | ||
'Power', | ||
'Starting Balances', | ||
'Misc', | ||
'Income', | ||
]); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
// Page Header Tests | ||
|
||
test('checks that clicking the Actual logo in the page header opens the budget page menu', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
await budgetPage.openBudgetPageMenu(); | ||
|
||
const budgetPageMenuModal = page.getByRole('dialog'); | ||
|
||
await expect(budgetPageMenuModal).toBeVisible(); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
test("checks that clicking the left arrow in the page header shows the previous month's budget", async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const selectedMonth = await budgetPage.getSelectedMonth(); | ||
const displayMonth = monthUtils.format( | ||
selectedMonth, | ||
budgetPage.MONTH_HEADER_DATE_FORMAT, | ||
); | ||
|
||
await expect(budgetPage.heading).toHaveText(displayMonth); | ||
|
||
const previousMonth = await budgetPage.goToPreviousMonth(); | ||
const previousDisplayMonth = monthUtils.format( | ||
previousMonth, | ||
budgetPage.MONTH_HEADER_DATE_FORMAT, | ||
); | ||
|
||
await expect(budgetPage.heading).toHaveText(previousDisplayMonth); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
test('checks that clicking the month in the page header opens the month menu modal', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const selectedMonth = await budgetPage.getSelectedMonth(); | ||
|
||
await budgetPage.openMonthMenu(); | ||
|
||
const monthMenuModal = page.getByRole('dialog'); | ||
const monthMenuModalHeading = monthMenuModal.getByRole('heading'); | ||
|
||
const displayMonth = monthUtils.format( | ||
selectedMonth, | ||
budgetPage.MONTH_HEADER_DATE_FORMAT, | ||
); | ||
await expect(monthMenuModalHeading).toHaveText(displayMonth); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
test("checks that clicking the right arrow in the page header shows the next month's budget", async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const selectedMonth = await budgetPage.getSelectedMonth(); | ||
const displayMonth = monthUtils.format( | ||
selectedMonth, | ||
budgetPage.MONTH_HEADER_DATE_FORMAT, | ||
); | ||
|
||
await expect(budgetPage.heading).toHaveText(displayMonth); | ||
|
||
const nextMonth = await budgetPage.goToNextMonth(); | ||
const nextDisplayMonth = monthUtils.format( | ||
nextMonth, | ||
budgetPage.MONTH_HEADER_DATE_FORMAT, | ||
); | ||
|
||
await expect(budgetPage.heading).toHaveText(nextDisplayMonth); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
// Category / Category Group Menu Tests | ||
|
||
test('checks that clicking the category group name opens the category group menu modal', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const categoryGroupName = await budgetPage.getCategoryGroupNameForRow(0); | ||
await budgetPage.openCategoryGroupMenu(categoryGroupName); | ||
|
||
const categoryMenuModalHeading = page | ||
.getByRole('dialog') | ||
.getByRole('heading'); | ||
|
||
await expect(categoryMenuModalHeading).toHaveText(categoryGroupName); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
test('checks that clicking the category name opens the category menu modal', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const categoryName = await budgetPage.getCategoryNameForRow(0); | ||
await budgetPage.openCategoryMenu(categoryName); | ||
|
||
const categoryMenuModalHeading = page | ||
.getByRole('dialog') | ||
.getByRole('heading'); | ||
|
||
await expect(categoryMenuModalHeading).toHaveText(categoryName); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
// Budgeted Cell Tests | ||
|
||
test('checks that clicking the budgeted cell opens the budget menu modal', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const categoryName = await budgetPage.getCategoryNameForRow(0); | ||
await budgetPage.openBudgetMenu(categoryName); | ||
|
||
const budgetMenuModalHeading = page | ||
.getByRole('dialog') | ||
.getByRole('heading'); | ||
|
||
await expect(budgetMenuModalHeading).toHaveText(categoryName); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
test('updates the budgeted amount', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const categoryName = await budgetPage.getCategoryNameForRow(0); | ||
|
||
// Set to 100.00 | ||
await budgetPage.setBudget(categoryName, 10000); | ||
|
||
const budgetedButton = | ||
await budgetPage.getButtonForBudgeted(categoryName); | ||
|
||
await expect(budgetedButton).toHaveText('100.00'); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
// Spent Cell Tests | ||
|
||
test('checks that clicking spent cell redirects to the category transactions page', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const categoryName = await budgetPage.getCategoryNameForRow(0); | ||
const accountPage = await budgetPage.openSpentPage(categoryName); | ||
|
||
await expect(accountPage.heading).toContainText(categoryName); | ||
await expect(accountPage.transactionList).toBeVisible(); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
// Balance Cell Tests | ||
|
||
test('checks that clicking the balance cell opens the balance menu modal', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
const categoryName = await budgetPage.getCategoryNameForRow(0); | ||
await budgetPage.openBalanceMenu(categoryName); | ||
|
||
const balanceMenuModalHeading = page | ||
.getByRole('dialog') | ||
.getByRole('heading'); | ||
|
||
await expect(balanceMenuModalHeading).toHaveText(categoryName); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
|
||
if (budgetType === 'Envelope') { | ||
test('checks that clicking the To Budget/Overbudgeted amount opens the budget summary menu modal', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
await budgetPage.openEnvelopeBudgetSummaryMenu(); | ||
|
||
const summaryModalHeading = page | ||
.getByRole('dialog') | ||
.getByRole('heading'); | ||
|
||
await expect(summaryModalHeading).toHaveText('Budget Summary'); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
} | ||
|
||
if (budgetType === 'Tracking') { | ||
test('checks that clicking the Saved/Projected Savings/Overspent amount opens the budget summary menu modal', async () => { | ||
const budgetPage = await navigation.goToBudgetPage(); | ||
await budgetPage.waitForBudgetTable(); | ||
|
||
await budgetPage.openTrackingBudgetSummaryMenu(); | ||
|
||
const summaryModalHeading = page | ||
.getByRole('dialog') | ||
.getByRole('heading'); | ||
|
||
await expect(summaryModalHeading).toHaveText('Budget Summary'); | ||
await expect(page).toMatchThemeScreenshots(); | ||
}); | ||
} | ||
}); | ||
}); |
Binary file added
BIN
+41.4 KB
...cking--14404-in-the-page-header-opens-the-month-menu-modal-3-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+51.4 KB
...cking--321fd-ed-amount-opens-the-budget-summary-menu-modal-2-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+50.6 KB
...cking--4bb70-ed-amount-opens-the-budget-summary-menu-modal-1-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+32 KB
...cking--589a6-the-page-header-shows-the-next-month-s-budget-2-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+44.4 KB
...cking--6ab37-roup-name-opens-the-category-group-menu-modal-1-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+29.1 KB
...cking--6dbdb-page-header-shows-the-previous-month-s-budget-1-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+31.7 KB
...cking--7bd8f-the-page-header-shows-the-next-month-s-budget-3-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+29.9 KB
...cking--884ac-the-page-header-shows-the-next-month-s-budget-1-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+45 KB
...cking--94a79-roup-name-opens-the-category-group-menu-modal-2-chromium-linux.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+51.3 KB
...cking--94a85-ed-amount-opens-the-budget-summary-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+30.6 KB
...cking--96ebb-page-header-shows-the-previous-month-s-budget-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+50.3 KB
...cking--9e6aa-in-the-page-header-opens-the-budget-page-menu-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+44.7 KB
...cking--bbde3-roup-name-opens-the-category-group-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+41 KB
...cking--bed18-in-the-page-header-opens-the-month-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+13.7 KB
...cking--c18ad-l-redirects-to-the-category-transactions-page-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+41.6 KB
...cking--ceb3a-in-the-page-header-opens-the-month-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+50.5 KB
...cking--d270d-in-the-page-header-opens-the-budget-page-menu-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+30.9 KB
...cking--d7184-page-header-shows-the-previous-month-s-budget-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+14.1 KB
...cking--e995e-l-redirects-to-the-category-transactions-page-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+50.4 KB
...cking--fdd57-in-the-page-header-opens-the-budget-page-menu-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+14 KB
...cking--ff568-l-redirects-to-the-category-transactions-page-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.4 KB
...t-clicking-the-balance-button-opens-the-balance-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.6 KB
...t-clicking-the-balance-button-opens-the-balance-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.6 KB
...t-clicking-the-balance-button-opens-the-balance-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.4 KB
...hat-clicking-the-balance-cell-opens-the-balance-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.6 KB
...hat-clicking-the-balance-cell-opens-the-balance-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.6 KB
...hat-clicking-the-balance-cell-opens-the-balance-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.2 KB
...hat-clicking-the-budgeted-cell-opens-the-budget-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+47.1 KB
...hat-clicking-the-budgeted-cell-opens-the-budget-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.6 KB
...hat-clicking-the-budgeted-cell-opens-the-budget-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+41 KB
...t-clicking-the-category-name-opens-the-category-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+41.4 KB
...t-clicking-the-category-name-opens-the-category-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+41.1 KB
...t-clicking-the-category-name-opens-the-category-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+28.9 KB
...udget-Envelope-loads-the-budget-page-with-budgeted-amounts-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+30.6 KB
...udget-Envelope-loads-the-budget-page-with-budgeted-amounts-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+30.3 KB
...udget-Envelope-loads-the-budget-page-with-budgeted-amounts-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+29.7 KB
...apshots/Mobile-Budget-Envelope-updates-the-budgeted-amount-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+31.8 KB
...apshots/Mobile-Budget-Envelope-updates-the-budgeted-amount-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+31.7 KB
...apshots/Mobile-Budget-Envelope-updates-the-budgeted-amount-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+48.5 KB
...cking--0ba04-nt-amount-opens-the-budget-summary-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+26.6 KB
...cking--0dfe7-page-header-shows-the-previous-month-s-budget-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+14.1 KB
...cking--11290-l-redirects-to-the-category-transactions-page-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+50.4 KB
...cking--1ce6d-nt-amount-opens-the-budget-summary-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+41.1 KB
...cking--42062-in-the-page-header-opens-the-month-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+40.9 KB
...cking--49fb6-in-the-page-header-opens-the-month-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+14 KB
...cking--57d88-l-redirects-to-the-category-transactions-page-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+13.7 KB
...cking--5d90c-l-redirects-to-the-category-transactions-page-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+42.2 KB
...cking--5f098-roup-name-opens-the-category-group-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+27 KB
...cking--7c353-the-page-header-shows-the-next-month-s-budget-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+43.3 KB
...cking--929be-roup-name-opens-the-category-group-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+47.7 KB
...cking--a3783-in-the-page-header-opens-the-budget-page-menu-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+48.8 KB
...cking--a8b5e-in-the-page-header-opens-the-budget-page-menu-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+40 KB
...cking--b1562-in-the-page-header-opens-the-month-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+28.8 KB
...cking--cfb69-page-header-shows-the-previous-month-s-budget-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+25.3 KB
...cking--d5af6-the-page-header-shows-the-next-month-s-budget-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+43.6 KB
...cking--dc927-roup-name-opens-the-category-group-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+27.4 KB
...cking--f2198-the-page-header-shows-the-next-month-s-budget-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+50.1 KB
...cking--f224f-nt-amount-opens-the-budget-summary-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+28.6 KB
...cking--f7fa3-page-header-shows-the-previous-month-s-budget-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+48.8 KB
...cking--f8a19-in-the-page-header-opens-the-budget-page-menu-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+43.6 KB
...t-clicking-the-balance-button-opens-the-balance-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+45.2 KB
...t-clicking-the-balance-button-opens-the-balance-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+44.9 KB
...t-clicking-the-balance-button-opens-the-balance-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+43.6 KB
...hat-clicking-the-balance-cell-opens-the-balance-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+45.2 KB
...hat-clicking-the-balance-cell-opens-the-balance-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+44.9 KB
...hat-clicking-the-balance-cell-opens-the-balance-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.1 KB
...hat-clicking-the-budgeted-cell-opens-the-budget-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+47.1 KB
...hat-clicking-the-budgeted-cell-opens-the-budget-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+46.8 KB
...hat-clicking-the-budgeted-cell-opens-the-budget-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+38.7 KB
...t-clicking-the-category-name-opens-the-category-menu-modal-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+39.9 KB
...t-clicking-the-category-name-opens-the-category-menu-modal-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+39.6 KB
...t-clicking-the-category-name-opens-the-category-menu-modal-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+26.8 KB
...udget-Tracking-loads-the-budget-page-with-budgeted-amounts-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+28.9 KB
...udget-Tracking-loads-the-budget-page-with-budgeted-amounts-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+28.6 KB
...udget-Tracking-loads-the-budget-page-with-budgeted-amounts-3-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+27.4 KB
...apshots/Mobile-Budget-Tracking-updates-the-budgeted-amount-1-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+29.8 KB
...apshots/Mobile-Budget-Tracking-updates-the-budgeted-amount-2-chromium-linux.png
Oops, something went wrong.
Binary file added
BIN
+29.6 KB
...apshots/Mobile-Budget-Tracking-updates-the-budgeted-amount-3-chromium-linux.png
Oops, something went wrong.
Binary file modified
BIN
+54 Bytes
(100%)
...tion-available-funds-overspent-budgeted-and-for-next-month-1-chromium-linux.png
Oops, something went wrong.
Binary file modified
BIN
-54 Bytes
(100%)
...tion-available-funds-overspent-budgeted-and-for-next-month-3-chromium-linux.png
Oops, something went wrong.
Binary file removed
BIN
-23.2 KB
...s-snapshots/Mobile-checks-that-settings-page-can-be-opened-2-chromium-linux.png
Diff not rendered.
Binary file removed
BIN
-19.1 KB
...apshots/Mobile-creates-a-transaction-from-accounts-id-page-1-chromium-linux.png
Diff not rendered.
Binary file removed
BIN
-20.4 KB
...s-snapshots/Mobile-creates-a-transaction-via-footer-button-4-chromium-linux.png
Diff not rendered.
Binary file removed
BIN
-28.9 KB
...apshots/Mobile-loads-the-budget-page-with-budgeted-amounts-1-chromium-linux.png
Diff not rendered.
Binary file removed
BIN
-30.6 KB
...apshots/Mobile-loads-the-budget-page-with-budgeted-amounts-2-chromium-linux.png
Diff not rendered.
Binary file removed
BIN
-30.4 KB
...apshots/Mobile-loads-the-budget-page-with-budgeted-amounts-3-chromium-linux.png
Diff not rendered.
Binary file removed
BIN
-35.2 KB
...ots/Mobile-opens-the-accounts-page-and-asserts-on-balances-1-chromium-linux.png
Diff not rendered.
Binary file removed
BIN
-34.9 KB
...ots/Mobile-opens-the-accounts-page-and-asserts-on-balances-2-chromium-linux.png
Diff not rendered.
Binary file removed
BIN
-34.9 KB
...ots/Mobile-opens-the-accounts-page-and-asserts-on-balances-3-chromium-linux.png
Diff not rendered.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.