actual/packages/loot-core/src/server/budget/base.test.js
Tom French 9c0df36e16
Sort import in alphabetical order (#238)
* style: enforce sorting of imports

* style: alphabetize imports

* style: merge duplicated imports
2022-09-02 15:07:24 +01:00

66 lines
1.7 KiB
JavaScript

import * as monthUtils from '../../shared/months';
import * as db from '../db';
import * as sheet from '../sheet';
import { createAllBudgets } from './base';
beforeEach(() => {
return global.emptyDatabase()();
});
describe('Base budget', () => {
it('Recomputes budget cells when account fields change', async () => {
await sheet.loadSpreadsheet(db);
await db.insertCategoryGroup({ id: 'group1', name: 'group1' });
await db.insertCategoryGroup({
id: 'group2',
name: 'income',
is_income: 1
});
let catId = await db.insertCategory({
name: 'foo',
cat_group: 'group1'
});
await createAllBudgets();
// Insert a transaction referencing an account that doesn't exist
// yet
await db.insertTransaction({
date: '2016-12-15',
amount: -5000,
account: '29eef937-9933-49ef-80d9-71627074cf31',
category: catId
});
// Make sure that the spreadsheet finishes processing to make sure
// the next change doesn't get batched in with it
await sheet.waitOnSpreadsheet();
// The category should have nothing spent on it yet
expect(
sheet.getCellValue(
monthUtils.sheetForMonth('2016-12'),
`sum-amount-${catId}`
)
).toBe(0);
// Create the referenced account
await db.insertAccount({
id: '29eef937-9933-49ef-80d9-71627074cf31',
name: 'foo'
});
// Make sure the spreadsheet finishes processing
await sheet.waitOnSpreadsheet();
// The category should see the transaction
expect(
sheet.getCellValue(
monthUtils.sheetForMonth('2016-12'),
`sum-amount-${catId}`
)
).toBe(-5000);
});
});