Skip to content

Commit 6af8af1

Browse files
committed
fix(tests): fix jest-extended typings and eslint problems
1 parent f539b29 commit 6af8af1

File tree

7 files changed

+38
-41
lines changed

7 files changed

+38
-41
lines changed

jest.e2e.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ module.exports = {
88
moduleNameMapper: {
99
'^@nestjs-query/(.*)$': '<rootDir>/packages/$1/src',
1010
},
11+
"setupFilesAfterEnv": ["jest-extended"],
1112
snapshotSerializers: ['jest-snapshot-serializer-raw/always']
1213
};

jest.unit.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,6 @@ module.exports = {
88
moduleNameMapper: {
99
'^@nestjs-query/(.*)$': '<rootDir>/packages/$1/src',
1010
},
11+
"setupFilesAfterEnv": ["jest-extended"],
1112
snapshotSerializers: ['jest-snapshot-serializer-raw/always']
1213
};

packages/query-typeorm/__tests__/query/__snapshots__/relation-query.builder.spec.ts.snap

Lines changed: 14 additions & 14 deletions
Large diffs are not rendered by default.

packages/query-typeorm/__tests__/query/filter-query.builder.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ describe('FilterQueryBuilder', (): void => {
4848
oneTestRelation: { relationOfTestRelation: {} },
4949
});
5050
});
51-
it('with nested and / or', () => {
51+
it('with nested and / or', () => {
5252
const mockWhereBuilder = mock<WhereBuilder<TestEntity>>(WhereBuilder);
5353
const qb = getEntityQueryBuilder(TestEntity, instance(mockWhereBuilder));
5454
expect(

packages/query-typeorm/__tests__/services/typeorm-query.service.spec.ts

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import 'jest-extended';
21
import { Filter, SortDirection } from '@nestjs-query/core';
32
import { Test, TestingModule } from '@nestjs/testing';
43
import { plainToClass } from 'class-transformer';
@@ -156,10 +155,10 @@ describe('TypeOrmQueryService', (): void => {
156155
},
157156
},
158157
});
159-
expect(queryResults).toBeArrayOfSize(6)
158+
expect(queryResults).toBeArrayOfSize(6);
160159
queryResults.map((e, idx) => {
161-
expect(e).toMatchObject(TEST_RELATIONS[idx])
162-
})
160+
expect(e).toMatchObject(TEST_RELATIONS[idx]);
161+
});
163162
});
164163

165164
it('should allow filtering on a uni directional many to one relation', async () => {
@@ -173,10 +172,10 @@ describe('TypeOrmQueryService', (): void => {
173172
},
174173
},
175174
});
176-
expect(queryResults).toBeArrayOfSize(6)
175+
expect(queryResults).toBeArrayOfSize(6);
177176
queryResults.map((e, idx) => {
178-
expect(e).toMatchObject(TEST_RELATIONS[idx])
179-
})
177+
expect(e).toMatchObject(TEST_RELATIONS[idx]);
178+
});
180179
});
181180

182181
it('should allow filtering on a many to one relation with paging', async () => {
@@ -197,10 +196,10 @@ describe('TypeOrmQueryService', (): void => {
197196
sorting: [{ field: 'testRelationPk', direction: SortDirection.ASC }],
198197
paging: { limit: 3 },
199198
});
200-
expect(queryResults).toBeArrayOfSize(3)
199+
expect(queryResults).toBeArrayOfSize(3);
201200
queryResults.map((e, idx) => {
202-
expect(e).toMatchObject(TEST_RELATIONS[idx])
203-
})
201+
expect(e).toMatchObject(TEST_RELATIONS[idx]);
202+
});
204203
});
205204
});
206205

@@ -617,7 +616,9 @@ describe('TypeOrmQueryService', (): void => {
617616
it('call select and return the with a uni-directional relation', async () => {
618617
const entity = TEST_ENTITIES[2];
619618
const queryService = moduleRef.get(TestEntityService);
620-
const queryResult = (await queryService.queryRelations(TestRelation, 'manyToManyUniDirectional', entity, {})).map((r) => {
619+
const queryResult = (
620+
await queryService.queryRelations(TestRelation, 'manyToManyUniDirectional', entity, {})
621+
).map((r) => {
621622
delete r.relationOfTestRelationId;
622623
return r;
623624
});

packages/query-typeorm/src/query/filter-query.builder.ts

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -270,28 +270,21 @@ export class FilterQueryBuilder<Entity> {
270270
}
271271

272272
getReferencedRelationsRecursive(metadata: EntityMetadata, filter: Filter<unknown> = {}): NestedRecord {
273-
const referencedFields = Array.from(new Set(Object.keys(filter)));
273+
const referencedFields = Array.from(new Set(Object.keys(filter) as (keyof Filter<unknown>)[]));
274274
return referencedFields.reduce((prev, curr) => {
275-
if (filter.and) {
276-
for (const andFilter of filter.and) {
277-
prev = merge(prev, this.getReferencedRelationsRecursive(metadata, andFilter));
278-
}
279-
}
280-
if (filter.or) {
281-
for (const orFilter of filter.or) {
282-
prev = merge(prev, this.getReferencedRelationsRecursive(metadata, orFilter));
275+
const currFilterValue = filter[curr];
276+
if ((curr === 'and' || curr === 'or') && currFilterValue) {
277+
for (const subFilter of currFilterValue) {
278+
prev = merge(prev, this.getReferencedRelationsRecursive(metadata, subFilter));
283279
}
284280
}
285281
const referencedRelation = metadata.relations.find((r) => r.propertyName === curr);
286282
if (!referencedRelation) return prev;
287283
return {
288284
...prev,
289285
[curr]: merge(
290-
(prev as Record<string, any>)[curr],
291-
this.getReferencedRelationsRecursive(
292-
referencedRelation.inverseEntityMetadata,
293-
(filter as Record<string, Filter<unknown>>)[curr],
294-
),
286+
(prev as NestedRecord)[curr],
287+
this.getReferencedRelationsRecursive(referencedRelation.inverseEntityMetadata, currFilterValue),
295288
),
296289
};
297290
}, {});

tsconfig.build.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"noImplicitReturns": true,
1919
"pretty": true,
2020
"strict": true,
21-
"noUnusedLocals": true
21+
"noUnusedLocals": true,
22+
"types": ["jest-extended"]
2223
},
2324
"exclude": ["node_modules"]
2425
}

0 commit comments

Comments
 (0)