Skip to content

Commit 2014180

Browse files
committed
refactor: migrate to pgLite
1 parent 84851f5 commit 2014180

Some content is hidden

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

56 files changed

+764
-682
lines changed

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

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77
"projectType": "application",
88
"targets": {
99
"e2e": {
10-
"dependsOn":[ {
11-
"dependencies": true,
12-
"target": "build",
13-
"params": "ignore"
14-
}],
10+
"dependsOn": ["json-api-server:build", "json-api-nestjs-sdk:build"],
1511
"executor": "@nx/vite:test",
1612
"outputs": [
1713
"{workspaceRoot}/coverage/{e2eProjectRoot}"
@@ -23,11 +19,7 @@
2319
}
2420
},
2521
"e2e-micro": {
26-
"dependsOn":[ {
27-
"dependencies": true,
28-
"target": "build",
29-
"params": "ignore"
30-
}],
22+
"dependsOn": ["json-api-server:build", "json-api-nestjs-sdk:build"],
3123
"executor": "@nx/vite:test",
3224
"outputs": [
3325
"{workspaceRoot}/coverage/{e2eProjectRoot}"

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

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {
1010
import { faker } from '@faker-js/faker';
1111
import { getUser } from '../utils/data-utils';
1212
import { run, creatSdk } from '../utils/run-application';
13+
import { AxiosError } from 'axios';
1314

1415
let app: INestApplication;
1516

@@ -189,14 +190,22 @@ describe('Atomic method:', () => {
189190
roles.name = faker.string.alpha(50);
190191
roles.key = faker.string.alpha(50);
191192

193+
const userAddress = new Addresses();
194+
195+
userAddress.city = faker.string.alpha(50);
196+
userAddress.state = faker.string.alpha(50);
197+
userAddress.country = faker.string.alpha(50);
198+
userAddress.id = 10003;
199+
192200
const user = getUser();
193-
user.addresses = address;
201+
user.addresses = userAddress;
194202
user.manager = manager;
195203
user.roles = [roles];
196204

197-
const [addressPost, managerPost, rolesPost, userPost] = await jsonSdk
205+
const [addressPost, userAddressPost, managerPost, rolesPost, userPost] = await jsonSdk
198206
.atomicFactory()
199207
.postOne(address)
208+
.postOne(userAddress)
200209
.postOne(manager)
201210
.postOne(roles)
202211
.postOne(user)
@@ -218,9 +227,9 @@ describe('Atomic method:', () => {
218227
expect(selectManager.addresses.id).toBe(addressPost.id);
219228
expect(selectUser.manager.id).toBe(managerPost.id);
220229
expect(selectUser.roles).toEqual([rolesPost]);
221-
expect(selectUser.addresses).toEqual(addressPost);
230+
expect(selectUser.addresses.id).toEqual(userAddressPost.id);
222231

223-
addressArray.push(addressPost);
232+
addressArray.push(addressPost, userAddressPost);
224233
rolesArray.push(rolesPost);
225234
usersId.push(managerPost.id);
226235
usersId.push(userPost.id);

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { faker } from '@faker-js/faker';
1111
import { FilterOperand, JsonSdkPromise } from '@klerick/json-api-nestjs-sdk';
1212
import { getUser } from '../utils/data-utils';
1313
import { creatSdk, run } from '../utils/run-application';
14+
import { AxiosError } from 'axios';
1415

1516
let app: INestApplication;
1617

@@ -124,6 +125,9 @@ describe('GET method:', () => {
124125
},
125126
},
126127
},
128+
}).catch((e: AxiosError) => {
129+
console.log(e);
130+
throw e;
127131
});
128132
expect(users).toBeDefined();
129133
expect(users.length).toBe(2);

apps/json-api-server-e2e/src/json-api/utils/data-utils.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
import { Users } from '@nestjs-json-api/typeorm-database';
2-
import { faker } from '@faker-js/faker';
2+
import { faker, Sex } from '@faker-js/faker';
33

44
export const getUser = () => {
5+
6+
// const gender: Sex = this.genderList[faker.number.int(1)];
7+
//
8+
// const firstName = faker.person.firstName(gender);
9+
// const lastName = faker.person.lastName(gender);
10+
511
const user = new Users();
612
user.firstName = faker.string.alpha(50);
713
user.lastName = faker.string.alpha(50);

apps/json-api-server-e2e/src/json-api/utils/run-application.ts

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,28 @@ let saveApp: INestApplication;
2525
export const port = 3000;
2626
export const globalPrefix = 'api';
2727
export const run = async () => {
28-
if (saveApp) return saveApp;
29-
const moduleRef = await Test.createTestingModule({
30-
imports: [AppModule],
31-
}).compile();
32-
const app = moduleRef.createNestApplication<NestExpressApplication>({
33-
bufferLogs: true,
34-
logger: false,
35-
});
36-
app.useLogger(app.get(Logger));
37-
// const app = await NestFactory.create(AppModule);
38-
app.setGlobalPrefix(globalPrefix);
39-
app.useWebSocketAdapter(new WsAdapter(app));
40-
app.set('query parser', 'extended');
41-
await app.init();
42-
await app.listen(port);
4328

44-
saveApp = app;
45-
return app;
29+
// if (saveApp) return saveApp;
30+
// const moduleRef = await Test.createTestingModule({
31+
// imports: [AppModule],
32+
// }).compile();
33+
// const app = moduleRef.createNestApplication<NestExpressApplication>({
34+
// bufferLogs: true,
35+
// logger: false,
36+
// });
37+
// app.useLogger(app.get(Logger));
38+
// // const app = await NestFactory.create(AppModule);
39+
// app.setGlobalPrefix(globalPrefix);
40+
// app.useWebSocketAdapter(new WsAdapter(app));
41+
// app.set('query parser', 'extended');
42+
// await app.init();
43+
// await app.listen(port);
44+
//
45+
// saveApp = app;
46+
// return app;
47+
return {
48+
close(){}
49+
} as any
4650
};
4751

4852
export const creatSdk = (config: Partial<JsonConfig> = {}) =>

apps/json-api-server-e2e/src/support/global-setup.ts

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,61 @@
11
/* eslint-disable */
2+
import { waitForPortOpen } from '@nx/node/utils';
3+
import {logger, workspaceRoot } from '@nx/devkit'
4+
import { spawn, execSync } from 'node:child_process';
5+
import { rmSync } from 'node:fs';
6+
import { join } from 'node:path';
7+
8+
29
export default async function() {
310
// Start services that that the app needs to run (e.g. database, docker-compose, etc.).
4-
console.log('\nSetting up...\n');
11+
12+
const isNxRuner = !!process.env.NX_INVOKED_BY_RUNNER;
13+
14+
logger.info('\nSetting up...\n');
15+
if (isNxRuner) {
16+
let target: 'microorm' | 'typeorm';
17+
switch (process.env.NX_TASK_TARGET_TARGET) {
18+
case 'e2e-micro':
19+
target = 'microorm';
20+
break;
21+
case 'e2e':
22+
target = 'typeorm';
23+
break;
24+
default:
25+
throw new Error('Unknown target');
26+
}
27+
28+
logger.info('\nRuning migration for "' + target + '"...\n');
29+
rmSync(join(workspaceRoot, './tmp/pg-test/', target), {
30+
recursive: true,
31+
force: true,
32+
});
33+
execSync('npm run ' + target + ':up', {
34+
env: {
35+
...process.env,
36+
},
37+
stdio: 'inherit',
38+
});
39+
40+
logger.info('\nStarting server "' + target + '"...\n');
41+
42+
const server = spawn(
43+
'TYPE_ORM=' + target,
44+
['npx', 'nx', 'serve', 'json-api-server'],
45+
{
46+
shell: true,
47+
stdio: 'pipe',
48+
}
49+
);
50+
globalThis.__SERVER_PROCESS__ = server;
51+
} else {
52+
logger.info('\nRun from IDE\n');
53+
}
54+
const host = process.env.HOST ?? 'localhost';
55+
const port = process.env.PORT ? Number(process.env.PORT) : 3000;
56+
await waitForPortOpen(port, { host });
57+
58+
559

660
// Hint: Use `globalThis` to pass variables to global teardown.
761
globalThis.__TEARDOWN_MESSAGE__ = '\nTearing down...\n';
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
import { killPort } from '@nx/node/utils';
12
/* eslint-disable */
23

3-
export default async function() {
4+
module.exports = async function () {
45
// Put clean up logic here (e.g. stopping services, docker-compose, etc.).
56
// Hint: `globalThis` is shared between setup and teardown.
7+
const port = process.env.PORT ? Number(process.env.PORT) : 3000;
8+
// await killPort(port);
69
console.log(globalThis.__TEARDOWN_MESSAGE__);
7-
}
10+
};

apps/json-api-server-e2e/vite.config.mts

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,6 @@ import path from 'node:path';
88
export default defineConfig(() => ({
99
root: __dirname,
1010
cacheDir: '../../node_modules/.vite/apps/json-api-server-e2e',
11-
// resolve: {
12-
// alias: {
13-
// '@klerick/json-api-nestjs': path.resolve(
14-
// __dirname,
15-
// '../../dist/libs/json-api/json-api-nestjs'
16-
// ),
17-
// '@klerick/json-api-nestjs-microorm': path.resolve(
18-
// __dirname,
19-
// '../../dist/libs/json-api/json-api-nestjs-microorm'
20-
// ),
21-
// '@klerick/json-api-nestjs-shared': path.resolve(
22-
// __dirname,
23-
// '../../dist/libs/json-api/json-api-nestjs-shared'
24-
// ),
25-
// '@klerick/json-api-nestjs-typeorm': path.resolve(
26-
// __dirname,
27-
// '../../dist/libs/json-api/json-api-nestjs-typeorm'
28-
// ),
29-
// '@klerick/json-api-nestjs-sdk': path.resolve(
30-
// __dirname,
31-
// '../../dist/libs/json-api/json-api-nestjs-sdk'
32-
// ),
33-
// },
34-
// },
3511
plugins: [
3612
nxViteTsPaths(),
3713
swc.vite({

apps/json-api-server/project.json

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,26 @@
6161
"buildTarget": "json-api-server:build:production"
6262
}
6363
}
64+
},
65+
"serve-microorm": {
66+
"continuous": true,
67+
"executor": "nx:run-commands",
68+
"options": {
69+
"command": "npx nx run json-api-server:serve",
70+
"env": {
71+
"ORM_TYPE": "microorm"
72+
}
73+
}
74+
},
75+
"serve-typeorm": {
76+
"continuous": true,
77+
"executor": "nx:run-commands",
78+
"options": {
79+
"command": "npx nx run json-api-server:serve",
80+
"env": {
81+
"ORM_TYPE": "typeorm"
82+
}
83+
}
6484
}
6585
},
6686
"tags": []

apps/json-api-server/src/app/resources/micro-orm/resources-micro.module.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import { ExtendBookListController } from './controllers/extend-book-list/extend-
1313
import { ExtendUserController } from './controllers/extend-user/extend-user.controller';
1414
import { ExampleService } from './service/example.service';
1515

16+
import { wrapperJsonApiController } from '@klerick/acl-json-api-nestjs';
17+
1618
@Module({
1719
imports: [
1820
JsonApiModule.forRoot(MicroOrmJsonApiModule, {
@@ -24,6 +26,9 @@ import { ExampleService } from './service/example.service';
2426
requiredSelectField: false,
2527
operationUrl: 'operation',
2628
},
29+
// hooks: {
30+
// afterCreateController: wrapperJsonApiController,
31+
// },
2732
}),
2833
],
2934
})

0 commit comments

Comments
 (0)