mirror of
https://github.com/actualbudget/actual.git
synced 2026-03-21 15:36:50 -05:00
Include scheduled transactions in nYNAB imports (#6844)
* Include scheduled transactions in nYNAB imports * Remove logs and restore schedule name from transaction memo * Simplify rule actions * Create schedules with unique names * Set the note rather than append * Update ynab5 demo budget and e2e test
This commit is contained in:
@@ -108,6 +108,12 @@
|
||||
"name": "Work",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"name": "Schedule Payee",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
}
|
||||
],
|
||||
"payee_locations": [],
|
||||
@@ -167,6 +173,12 @@
|
||||
"hidden": false,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "6d28a243-3670-4c96-8334-216e31ea9468",
|
||||
"name": "Category Group",
|
||||
"hidden": false,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "F5751985-3290-41E7-B17F-6DBE979F315D",
|
||||
"name": "Bills",
|
||||
@@ -726,6 +738,30 @@
|
||||
"goal_overall_funded": null,
|
||||
"goal_overall_left": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"category_group_id": "6d28a243-3670-4c96-8334-216e31ea9468",
|
||||
"name": "Category",
|
||||
"hidden": false,
|
||||
"original_category_group_id": null,
|
||||
"note": null,
|
||||
"budgeted": 0,
|
||||
"activity": 0,
|
||||
"balance": 0,
|
||||
"goal_type": null,
|
||||
"goal_day": null,
|
||||
"goal_cadence": null,
|
||||
"goal_cadence_frequency": null,
|
||||
"goal_creation_month": null,
|
||||
"goal_target": 0,
|
||||
"goal_target_month": null,
|
||||
"goal_percentage_complete": null,
|
||||
"goal_months_to_budget": null,
|
||||
"goal_under_funded": null,
|
||||
"goal_overall_funded": null,
|
||||
"goal_overall_left": null,
|
||||
"deleted": false
|
||||
}
|
||||
],
|
||||
"months": [
|
||||
@@ -1870,8 +1906,243 @@
|
||||
"deleted": false
|
||||
}
|
||||
],
|
||||
"scheduled_transactions": [],
|
||||
"scheduled_subtransactions": []
|
||||
"scheduled_transactions": [
|
||||
{
|
||||
"id": "1db8beb8-ef31-4a07-b9a5-0648b1e3071a",
|
||||
"date_first": "2025-08-05",
|
||||
"date_next": "2025-08-05",
|
||||
"frequency": "every4Weeks",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated every four weeks",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "2cb5676a-9b6e-4fff-aaf5-7ace218bb918",
|
||||
"date_first": "2025-08-03",
|
||||
"date_next": "2025-08-17",
|
||||
"frequency": "everyOtherWeek",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated every other week",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "34157157-8ad5-46b4-aa67-36f2035478ce",
|
||||
"date_first": "2025-08-05",
|
||||
"date_next": "2025-08-05",
|
||||
"frequency": "everyOtherYear",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated every other year",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "64a5e1ee-ac5f-4fd7-b955-818ed97c0886",
|
||||
"date_first": "2025-08-05",
|
||||
"date_next": "2025-08-05",
|
||||
"frequency": "every4Months",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated every four months",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "6a77929b-a54f-4401-9fc0-e3be672fe946",
|
||||
"date_first": "2025-08-03",
|
||||
"date_next": "2025-08-18",
|
||||
"frequency": "twiceAMonth",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated twice a month",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "700739ce-35a2-4fb5-9522-70d152b73a81",
|
||||
"date_first": "2025-08-05",
|
||||
"date_next": "2025-08-05",
|
||||
"frequency": "monthly",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated monthly",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "8afb5da0-e189-46bc-b41a-c3603588a950",
|
||||
"date_first": "2025-08-03",
|
||||
"date_next": "2025-08-10",
|
||||
"frequency": "weekly",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated weekly",
|
||||
"flag_color": "blue",
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "906ca596-9f93-4c73-aaf2-9ca1f8db8a86",
|
||||
"date_first": "2025-08-04",
|
||||
"date_next": "2025-08-04",
|
||||
"frequency": "never",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - not repeated",
|
||||
"flag_color": "red",
|
||||
"flag_name": "One-off",
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "a06f9cef-ec00-4561-9546-22513e0e11bb",
|
||||
"date_first": "2025-08-05",
|
||||
"date_next": "2025-08-05",
|
||||
"frequency": "twiceAYear",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated twice a year",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "d5bf68a6-5026-47a8-a40f-7ecd2f9ba4da",
|
||||
"date_first": "2025-08-05",
|
||||
"date_next": "2025-08-05",
|
||||
"frequency": "yearly",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated yearly",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "e842e6b8-096f-4152-8acd-9566cbee293b",
|
||||
"date_first": "2025-08-05",
|
||||
"date_next": "2025-08-05",
|
||||
"frequency": "everyOtherMonth",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated every other month",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "ec72c5af-00c9-4ea0-aaa8-6863471beea8",
|
||||
"date_first": "2025-08-05",
|
||||
"date_next": "2025-08-05",
|
||||
"frequency": "every3Months",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated every three months",
|
||||
"flag_color": null,
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "f80e4d81-b640-4cac-a50c-39e6400e23a6",
|
||||
"date_first": "2025-08-03",
|
||||
"date_next": "2025-08-04",
|
||||
"frequency": "daily",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - repeated daily",
|
||||
"flag_color": "purple",
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "4b8f0a2e-9c7a-4f8e-9dcb-6a20b3d54f0e",
|
||||
"date_first": "2025-08-06",
|
||||
"date_next": "2025-09-06",
|
||||
"frequency": "monthly",
|
||||
"amount": -100000,
|
||||
"memo": "Scheduled - split categories monthly",
|
||||
"flag_color": "green",
|
||||
"flag_name": "Split",
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": null,
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "6e9dcaa6-0e96-4b08-90f7-2f8f12b7e6b6",
|
||||
"date_first": "2025-08-07",
|
||||
"date_next": "2025-08-21",
|
||||
"frequency": "everyOtherWeek",
|
||||
"amount": -50000,
|
||||
"memo": "Scheduled - transfer to Saving",
|
||||
"flag_color": "orange",
|
||||
"flag_name": "Transfer",
|
||||
"account_id": "bc1d862f-bab0-41c3-bd1e-6cee8c688e32",
|
||||
"payee_id": "8d3017e0-2aa6-4fe2-b011-c53c9f147eb6",
|
||||
"category_id": null,
|
||||
"transfer_account_id": "125f339b-2a63-481e-84c0-f04d898905d2",
|
||||
"deleted": false
|
||||
}
|
||||
],
|
||||
"scheduled_subtransactions": [
|
||||
{
|
||||
"id": "2b5c23f6-109c-4f0f-8ee5-8b76407fc99f",
|
||||
"scheduled_transaction_id": "4b8f0a2e-9c7a-4f8e-9dcb-6a20b3d54f0e",
|
||||
"amount": -60000,
|
||||
"memo": "split part a",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "419ae801-27c8-424b-8f39-9611825803db",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
},
|
||||
{
|
||||
"id": "24a4b78f-5a83-4891-8205-b8bb3f9ddf34",
|
||||
"scheduled_transaction_id": "4b8f0a2e-9c7a-4f8e-9dcb-6a20b3d54f0e",
|
||||
"amount": -40000,
|
||||
"memo": "split part b",
|
||||
"payee_id": "0f0899e3-242f-42e6-aae9-a751060d878e",
|
||||
"category_id": "36120d44-6c61-4402-985a-891a8d267858",
|
||||
"transfer_account_id": null,
|
||||
"deleted": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"server_knowledge": 58
|
||||
}
|
||||
|
||||
@@ -64,6 +64,32 @@ test.describe('Onboarding', () => {
|
||||
|
||||
await navigation.goToAccountPage('Saving');
|
||||
await expect(accountPage.accountBalance).toHaveText('250.00');
|
||||
|
||||
await navigation.goToSchedulesPage();
|
||||
const scheduleRows = page.getByTestId('table').getByTestId('row');
|
||||
const scheduleNames = [
|
||||
'Scheduled - repeated every four weeks',
|
||||
'Scheduled - repeated every other week',
|
||||
'Scheduled - repeated every other year',
|
||||
'Scheduled - repeated every four months',
|
||||
'Scheduled - repeated twice a month',
|
||||
'Scheduled - repeated monthly',
|
||||
'Scheduled - repeated weekly',
|
||||
'Scheduled - not repeated',
|
||||
'Scheduled - repeated twice a year',
|
||||
'Scheduled - repeated yearly',
|
||||
'Scheduled - repeated every other month',
|
||||
'Scheduled - repeated every three months',
|
||||
'Scheduled - repeated daily',
|
||||
'Scheduled - split categories monthly',
|
||||
'Scheduled - transfer to Saving',
|
||||
];
|
||||
|
||||
for (const scheduleName of scheduleNames) {
|
||||
await expect(scheduleRows.filter({ hasText: scheduleName })).toHaveCount(
|
||||
1,
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
test('creates a new budget file by importing Actual budget', async () => {
|
||||
|
||||
Reference in New Issue
Block a user