Skip to content

Commit 0a66259

Browse files
committed
test(json-api-nestjs): Fixe e2e test
1 parent 4696f51 commit 0a66259

File tree

59 files changed

+747
-1219
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+747
-1219
lines changed

.e2e-micro.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
DB_LOGGING=0
2+
ORM_TYPE=microorm

.e2e.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
DB_LOGGING=0
2+
ORM_TYPE=typeorm

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ jobs:
8585
- run: npm run typeorm migration:run
8686
- run: npm run seed:run
8787
- run: npx nx affected -t e2e --parallel=1
88+
- run: npx nx affected -t e2e-micro --parallel=1
8889
- name: Save cached .nx
8990
id: cache-dependencies-save
9091
uses: actions/cache/save@v4

.test.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
NODE_OPTIONS=--experimental-vm-modules --disable-warning=ExperimentalWarning
2+
DB_LOGGING=0

apps/json-api-server-e2e/project.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,17 @@
1616
"passWithNoTests": true,
1717
"parallel": 1
1818
}
19+
},
20+
"e2e-micro": {
21+
"executor": "@nx/jest:jest",
22+
"outputs": [
23+
"{workspaceRoot}/coverage/{e2eProjectRoot}"
24+
],
25+
"options": {
26+
"jestConfig": "apps/json-api-server-e2e/jest.config.ts",
27+
"passWithNoTests": true,
28+
"parallel": 1
29+
}
1930
}
2031
}
2132
}

apps/json-api-server-e2e/src/json-api/json-api-sdk/get-method.spec.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,10 @@ describe('GET method:', () => {
9696
return Promise.all(tmp);
9797
})
9898
);
99-
await Promise.all(addressArray);
99+
100100
await Promise.all(
101-
[...usersArray, ...commentsArray, ...rolesArray].map((i) =>
102-
jsonSdk.jonApiSdkService.deleteOne(i)
101+
[...usersArray, ...commentsArray, ...rolesArray, ...addressArray].map(
102+
(i) => jsonSdk.jonApiSdkService.deleteOne(i)
103103
)
104104
);
105105
});
@@ -339,6 +339,7 @@ describe('GET method:', () => {
339339
userItem.id,
340340
{ include: ['addresses'] }
341341
);
342+
342343
expect(result).toBe(`${resultGetOne.addresses.id}`);
343344
});
344345

libs/json-api/json-api-nestjs-sdk/src/lib/service/json-api-utils.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import {
2121
HttpParams,
2222
isObject,
2323
isRelation,
24-
kebabToCamel,
2524
ObjectTyped,
2625
} from '../utils';
2726
import { ID_KEY } from '../constants';
@@ -273,6 +272,7 @@ export class JsonApiUtilsService {
273272
(includedItem) =>
274273
includedItem.type === item.type && includedItem.id === item.id
275274
);
275+
276276
if (!relatedIncluded) return;
277277

278278
const entityObject = {

libs/json-api/json-api-nestjs/src/lib/mock-utils/microrom/entities/comments.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ export class Comments {
4747
updatedAt: Date = new Date();
4848

4949
@ManyToOne(() => Users, {
50+
// #TODO need add chaeck for nullable relation to zod
51+
nullable: true,
5052
fieldName: 'created_by',
5153
})
5254
createdBy!: IUsers;

libs/json-api/json-api-nestjs/src/lib/mock-utils/microrom/index.ts

Lines changed: 2 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ import { CURRENT_ENTITY, GLOBAL_MODULE_OPTIONS_TOKEN } from '../../constants';
3333
export * from './entities';
3434
export * from './utils';
3535

36-
export const entities = [Users, UserGroups, Roles, Comments, Addresses, Notes];
37-
3836
import { sharedConnect, initMikroOrm, pullAllData } from './utils';
3937
import { DEFAULT_ARRAY_TYPE } from '../../modules/micro-orm/constants';
4038
import { JsonApiTransformerService } from '../../modules/mixin/service/json-api-transformer.service';
4139

40+
export const entities = [Users, UserGroups, Roles, Comments, Addresses, Notes];
41+
4242
export function mockDbPgLiteTestModule(dbName = `test_db_${Date.now()}`) {
4343
const mikroORM = {
4444
provide: MikroORM,
@@ -54,24 +54,6 @@ export function mockDbPgLiteTestModule(dbName = `test_db_${Date.now()}`) {
5454
};
5555
}
5656

57-
export function mockDBTestModule(db: IMemoryDb): DynamicModule {
58-
const mikroORM = {
59-
provide: MikroORM,
60-
useFactory: () =>
61-
db.adapters.createMikroOrm({
62-
highlighter: new SqlHighlighter(),
63-
entities: [Users, UserGroups, Roles, Comments, Addresses, Notes],
64-
driver: PostgreSqlDriver,
65-
allowGlobalContext: true,
66-
debug: ['query', 'query-params'],
67-
}),
68-
};
69-
return {
70-
module: MikroOrmModule,
71-
providers: [mikroORM],
72-
exports: [mikroORM],
73-
};
74-
}
7557
const readOnlyDbName = `readonly_db_${Date.now()}`;
7658

7759
export function dbRandomName(readOnly = false) {
@@ -114,27 +96,6 @@ export function getModuleForPgLite<E extends ObjectLiteral>(
11496
}).compile();
11597
}
11698

117-
export function getModuleFor<E extends ObjectLiteral>(
118-
db: IMemoryDb,
119-
entity: E
120-
): Promise<TestingModule> {
121-
return Test.createTestingModule({
122-
imports: [mockDBTestModule(db)],
123-
providers: [
124-
CurrentMicroOrmProvider(),
125-
CurrentEntityManager(),
126-
CurrentEntityMetadata(),
127-
CurrentEntityRepository(entity),
128-
MicroOrmUtilService,
129-
{
130-
provide: CURRENT_ENTITY,
131-
useValue: entity,
132-
},
133-
OrmServiceFactory(),
134-
],
135-
}).compile();
136-
}
137-
13899
export function getDefaultQuery<R extends ObjectLiteral>(): Query<R> {
139100
return {
140101
[QueryField.filter]: {

libs/json-api/json-api-nestjs/src/lib/mock-utils/microrom/utils/init-db.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ export async function initMikroOrm(knex: TypeKnex, testDbName: string) {
6464
entities: [Users, UserGroups, Roles, Comments, Addresses, Notes],
6565
allowGlobalContext: true,
6666
schema: 'public',
67-
debug: ['query', 'query-params'],
67+
debug:
68+
process.env['DB_LOGGING'] !== '0' ? ['query', 'query-params'] : false,
6869
});
6970

7071
if ((result['rows'] as []).length === 0) {

0 commit comments

Comments
 (0)