mirror of
https://github.com/actualbudget/actual.git
synced 2026-07-10 12:31:32 -05:00
* Fix preview transactions not loading in multi-account views and uncategorized splits not loading * Update release notes * Fix typecheck error * Coderabbit feedback * Fix lint error * Fix banners * Fix uncategorized view to use new route * Updates * Update VRT * Dummy commit * Fix lint * [autofix.ci] apply automated fixes * Update loading * Coderabbit feedback * [autofix.ci] apply automated fixes * Delete old snapshots * Translate Closed * Update Closed translation * Update translation Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk> * [autofix.ci] apply automated fixes --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
154 lines
5.1 KiB
TypeScript
154 lines
5.1 KiB
TypeScript
import { type Page } from '@playwright/test';
|
|
|
|
import { expect, test } from './fixtures';
|
|
import { ConfigurationPage } from './page-models/configuration-page';
|
|
import { MobileNavigation } from './page-models/mobile-navigation';
|
|
|
|
test.describe('Mobile Transactions', () => {
|
|
let page: Page;
|
|
let navigation: MobileNavigation;
|
|
let configurationPage: 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('creates a transaction via footer button', async () => {
|
|
const transactionEntryPage = await navigation.goToTransactionEntryPage();
|
|
await expect(page).toMatchThemeScreenshots();
|
|
|
|
await expect(transactionEntryPage.header).toHaveText('New Transaction');
|
|
|
|
await transactionEntryPage.amountField.fill('12.34');
|
|
// Click anywhere to cancel active edit.
|
|
await transactionEntryPage.header.click();
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('payee-field'),
|
|
'Kroger',
|
|
);
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('category-field'),
|
|
'Clothing',
|
|
);
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('account-field'),
|
|
'Ally Savings',
|
|
);
|
|
await expect(page).toMatchThemeScreenshots();
|
|
|
|
await transactionEntryPage.createTransaction();
|
|
await expect(page.getByLabel('Transaction list')).toHaveCount(0);
|
|
await expect(page).toMatchThemeScreenshots();
|
|
});
|
|
|
|
test('creates a transaction from `/accounts/:id` page', async () => {
|
|
const accountsPage = await navigation.goToAccountsPage();
|
|
const accountPage = await accountsPage.openNthAccount(2);
|
|
const transactionEntryPage = await accountPage.clickCreateTransaction();
|
|
|
|
await expect(transactionEntryPage.header).toHaveText('New Transaction');
|
|
await expect(page).toMatchThemeScreenshots();
|
|
|
|
await transactionEntryPage.amountField.fill('12.34');
|
|
// Click anywhere to cancel active edit.
|
|
await transactionEntryPage.header.click();
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('payee-field'),
|
|
'Kroger',
|
|
);
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('category-field'),
|
|
'Clothing',
|
|
);
|
|
|
|
await transactionEntryPage.createTransaction();
|
|
|
|
await expect(accountPage.transactions.nth(0)).toHaveText(
|
|
'KrogerClothing-12.34',
|
|
);
|
|
});
|
|
|
|
test('creates an uncategorized transaction from `/categories/uncategorized` page', async () => {
|
|
// Create uncategorized transaction
|
|
let transactionEntryPage = await navigation.goToTransactionEntryPage();
|
|
await transactionEntryPage.amountField.fill('12.35');
|
|
// Click anywhere to cancel active edit.
|
|
await transactionEntryPage.header.click();
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('account-field'),
|
|
'Ally Savings',
|
|
);
|
|
await transactionEntryPage.createTransaction();
|
|
|
|
const uncategorizedPage = await navigation.goToUncategorizedPage();
|
|
transactionEntryPage = await uncategorizedPage.clickCreateTransaction();
|
|
|
|
await expect(transactionEntryPage.header).toHaveText('New Transaction');
|
|
|
|
await transactionEntryPage.amountField.fill('12.34');
|
|
// Click anywhere to cancel active edit.
|
|
await transactionEntryPage.header.click();
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('payee-field'),
|
|
'Kroger',
|
|
);
|
|
|
|
await transactionEntryPage.createTransaction();
|
|
|
|
await expect(uncategorizedPage.transactions.nth(0)).toHaveText(
|
|
'KrogerUncategorized-12.34',
|
|
);
|
|
await expect(page).toMatchThemeScreenshots();
|
|
});
|
|
|
|
test('creates a categorized transaction from `/categories/uncategorized` page', async () => {
|
|
// Create uncategorized transaction
|
|
let transactionEntryPage = await navigation.goToTransactionEntryPage();
|
|
await transactionEntryPage.amountField.fill('12.35');
|
|
// Click anywhere to cancel active edit.
|
|
await transactionEntryPage.header.click();
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('account-field'),
|
|
'Ally Savings',
|
|
);
|
|
await transactionEntryPage.createTransaction();
|
|
|
|
const uncategorizedPage = await navigation.goToUncategorizedPage();
|
|
transactionEntryPage = await uncategorizedPage.clickCreateTransaction();
|
|
|
|
await expect(transactionEntryPage.header).toHaveText('New Transaction');
|
|
|
|
await transactionEntryPage.amountField.fill('12.34');
|
|
// Click anywhere to cancel active edit.
|
|
await transactionEntryPage.header.click();
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('payee-field'),
|
|
'Kroger',
|
|
);
|
|
await transactionEntryPage.fillField(
|
|
page.getByTestId('category-field'),
|
|
'Clothing',
|
|
);
|
|
|
|
await transactionEntryPage.createTransaction();
|
|
|
|
await expect(uncategorizedPage.transactions.nth(0)).toHaveText(
|
|
'(No payee)Uncategorized-12.35',
|
|
);
|
|
await expect(page).toMatchThemeScreenshots();
|
|
});
|
|
});
|