Skip to content

Commit

Permalink
Merge pull request #54 from borsini/fix/invalid_transactions
Browse files Browse the repository at this point in the history
fix: invalid transactions
  • Loading branch information
Benjamin Orsini authored Mar 21, 2020
2 parents 577e712 + 8aee882 commit e19d5d9
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 15 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "simplehomeaccounting",
"version": "0.5.6",
"version": "0.5.7",
"license": "MIT",
"main": "main.js",
"author": "Benlenem",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2012,7 +2012,9 @@ Object {
"nbTransactions": 0,
},
},
"invalidTransactions": Array [],
"invalidTransactions": Array [
"uuid 1",
],
},
"entities": Object {
"transactions": Object {
Expand All @@ -2038,6 +2040,16 @@ Object {
],
"uuid": "uuid 0",
},
"uuid 1": Object {
"header": Object {
"date": 1520080726,
"isVerified": false,
"tags": Array [],
"title": "Titre",
},
"postings": Array [],
"uuid": "uuid 1",
},
},
},
"ui": Object {
Expand Down
13 changes: 2 additions & 11 deletions src/app/shared/reducers/__tests__/app-state-reducers.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { transactionWithNestedAccounts, transactionsWithMissingAmounts } from './fixtures';
import { transactionWithNestedAccounts, transactionsWithMissingAmounts, transactionWithoutPostings } from './fixtures';
import { AnyAction } from 'redux';


Expand Down Expand Up @@ -172,7 +172,7 @@ describe(rootReducer.name, () => {
});

it('updates transaction', () => {
const state1 = rootReducer(undefined, AppStateActions.addTransactions([transactions[0]]));
const state1 = rootReducer(undefined, AppStateActions.addTransactions([transactions[0], transactionWithoutPostings]));
const transaction = Object.values(state1.entities.transactions)[0];
const modifiedTransaction = {
...transactions[1],
Expand All @@ -185,15 +185,6 @@ describe(rootReducer.name, () => {
});

it('computes invalid transaction', () => {
const transactionWithoutPostings = {
header: {
date: 1520080726,
isVerified: false,
title: 'Titre',
tags: [],
},
postings: [],
};
const finalState = rootReducer(undefined, AppStateActions.addTransactions([transactionWithoutPostings]));

expect(finalState).toMatchSnapshot();
Expand Down
10 changes: 10 additions & 0 deletions src/app/shared/reducers/__tests__/fixtures.ts
Original file line number Diff line number Diff line change
Expand Up @@ -117,3 +117,13 @@ export const transactionsWithMissingAmounts: Transaction[] = [
],
},
];

export const transactionWithoutPostings: Transaction = {
header: {
date: 1520080726,
isVerified: false,
title: 'Titre',
tags: [],
},
postings: [],
}
7 changes: 5 additions & 2 deletions src/app/shared/reducers/app-state-reducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -284,13 +284,14 @@ const addTransactions = (state: AppState, transactions: Transaction[], clearOldT
const newAccounts = addTransactionsToAccounts(clearOldTransactions ? [] : Object.values(state.computed.accounts),transactionsWithUuid)
.reduce<AccountMap>( (prev, curr) => ({...prev, [curr.name]: curr}), {});

const oldInvalidTransaction = state.computed.invalidTransactions
const newInvalidTransactions = transactionsWithUuid.filter(t =>
t.header.title === undefined ||
t.postings.length < 2).map(t2 => t2.uuid);

const computed: Computed = {
accounts: newAccounts,
invalidTransactions: newInvalidTransactions
invalidTransactions: [oldInvalidTransaction, newInvalidTransactions].reduce(unionReducer)
}

//Create Ui
Expand Down Expand Up @@ -384,13 +385,15 @@ const updateTransactions = (state: AppState, transactions: [TransactionWithUUID]
)
.reduce<AccountMap>( (prev, curr) => ({...prev, [curr.name]: curr}), {});

const oldInvalidTransaction = state.computed.invalidTransactions
const oldInvalidTransactionWithoutUpdatedOnes = [oldInvalidTransaction, transactions.map(t => t.uuid)].reduce(differenceReducer)
const newInvalidTransactions = transactionsWithUuid.filter(t =>
t.header.title === undefined ||
t.postings.length < 2).map(t2 => t2.uuid);

const computed: Computed = {
accounts: newAccounts,
invalidTransactions: newInvalidTransactions
invalidTransactions: [oldInvalidTransactionWithoutUpdatedOnes, newInvalidTransactions].reduce(unionReducer)
}

//Create Ui
Expand Down

0 comments on commit e19d5d9

Please sign in to comment.