Skip to content

Commit

Permalink
[Fix] Issue with deep entity normilization
Browse files Browse the repository at this point in the history
Fixed a bug where only the top level of an exported entity would be
normalized.
References #59, #60, #61 and #62.
  • Loading branch information
angel-penchev committed Feb 2, 2021
1 parent 5c7c83e commit be1ad0f
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion server/services/core/@types/global.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -404,7 +404,7 @@ export interface QueueMessage {
export interface DatabaseClient {
query<R extends QueryResultRow = any, I extends any[] = any[]>(
queryTextOrConfig: string | QueryConfig<I>,
values?: I,
values?: any[],
): Promise<QueryResult<R>>;
}

Expand Down
4 changes: 2 additions & 2 deletions server/services/core/entities/utilities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ export function exportToNormalEntity<T extends Object, U extends Object>(
// Checking whether there is a nested object within the value. If there
// is, this function is run on it. Otherwise only the result from the
// getter is stored.
typeof entry[1] === 'object' ? exportToNormalEntity(entry[1]()) :
entry[1](),
typeof entry[1]() === 'object' ? exportToNormalEntity(entry[1]()) :
entry[1](),
] : []),
);
}
Expand Down
2 changes: 0 additions & 2 deletions server/services/order-service/src/entities/order/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import ipRegex from 'ip-regex';
import buildMakeOrder from './order';
import validator from '../../../../core/entities/validator';
import buildSource from '../../../../core/entities/source';
import decompressOrder from './order-decompress';

const makeSource = buildSource({isValidIp});
const makeOrder = buildMakeOrder({
Expand All @@ -23,4 +22,3 @@ function isValidIp(ip: string): boolean {
}

export default makeOrder;
export {decompressOrder};
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
import makeOrdersDatabase from './orders-database';
import makeFakeOrder from '../../../test/fixtures/order';
import makeOrder, {decompressOrder} from '../../entities/order';
import makeOrder from '../../entities/order';
import makeFakeDatabaseClient from '../../../test/fixtures/database-client';
import {OrderDatabaseController} from '../../../../core/@types/global';
import {
Order,
OrderDatabaseController,
OrderExport,
} from '../../../../core/@types/global';
import {exportToNormalEntity} from '../../../../core/entities/utilities';


describe('order-database', () => {
let ordersDatabase: OrderDatabaseController;
const order = decompressOrder(makeOrder(makeFakeOrder()));
const order = exportToNormalEntity<OrderExport, Order>(
makeOrder(makeFakeOrder()),
);
const databaseClient = makeFakeDatabaseClient(order);

beforeEach(async () => {
Expand Down

0 comments on commit be1ad0f

Please sign in to comment.