From 453cb05228e49d28e8ea587921a9c917b610a0fb Mon Sep 17 00:00:00 2001 From: Alvar San Martin Date: Tue, 27 Jan 2026 10:00:51 +0100 Subject: [PATCH] Arreglo de config de tests para jwt --- package.json | 3 +- packages/sim-consumidor-activaciones/.env | 23 ------------ .../aplication/JWT.service.test.ts | 15 ++++++++ .../aplication/JWT.service.ts | 14 ++++--- .../config/env/index.ts | 6 ++- .../sim-consumidor-activaciones/tsconfig.json | 5 ++- .../vitest.config.ts | 15 ++++++++ tsconfig.json | 24 ++++++------ tsconfig.vitest.json | 15 ++++++++ vitest.config.ts | 37 +++++++++++++++++++ yarn.lock | 37 ++++++++++++++++++- 11 files changed, 150 insertions(+), 44 deletions(-) create mode 100644 packages/sim-consumidor-activaciones/aplication/JWT.service.test.ts create mode 100644 packages/sim-consumidor-activaciones/vitest.config.ts create mode 100644 tsconfig.vitest.json create mode 100644 vitest.config.ts diff --git a/package.json b/package.json index d7def61..c15c599 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "cors": "^2.8.5", "dotenv": "^17.2.3", "express": "^5.2.1", - "typescript": "^5.9.3" + "typescript": "^5.9.3", + "vite-tsconfig-paths": "^6.0.5" }, "devDependencies": { "@types/cors": "^2.8.19", diff --git a/packages/sim-consumidor-activaciones/.env b/packages/sim-consumidor-activaciones/.env index 79929fa..232c329 100644 --- a/packages/sim-consumidor-activaciones/.env +++ b/packages/sim-consumidor-activaciones/.env @@ -1,26 +1,3 @@ -PORT=3000 -RABBITMQ_USER=guest -RABBITMQ_PASSWORD=guest - -ENVIORMENT=development - -RABBITMQ_HOST=rabbitmq-sim-broker -#RABBITMQ_HOST=localhost -RABBITMQ_PORT=5672 -RABBITMQ_USER=guest -RABBITMQ_PASSWORD=guest -RABBITMQ_SECURE=false -RABBITMQ_VHOST=sim-vhost - -# Hay cosas que unificar de varios servicios -POSTGRES_DB=postgres -POSTGRES_DATABASE=postres -POSTGRES_HOST=postgresql-sim-1 -POSTGRES_PORT=5432 -DEV_POSTGRES_PORT=5432 -POSTGRES_USER=postgres -POSTGRES_PASSWORD=1234 - # claves de Objenious OBJ_PEM_PATH=./obj.pem OBJ_AUTHORIZATION=XOc7FtwXD8hUX2SFVX94XSty8wkOmChkwDNF09O_aIxPubMDdFUdCDCB4zpzSIxi8nOcTg7r_LM_nmd5qm7uLbksf_XArjI8iAyhjKz_2BAXPhmvKs4Fc9f3vv5LDfCVrPB9lP8P7rJ66_qnWs4jvhLQxSfn29m96hgXeCf8oySdIDUjN2q9Js3KAS5LL52Ri6ryvUeO1PvMhaPQMWRqoHIqTV1wPfPtiqQwcjUPmu5GeW164Kq1JLgV3KaGzfCZ9Qv9lbv30EJrukXxWuLCAhBS0kzrBXZoWvf2pb9uh3Am_93_dDxiIGQfIap9ZU_m8ZD1HPgvZOMCY6ZkxQconQ diff --git a/packages/sim-consumidor-activaciones/aplication/JWT.service.test.ts b/packages/sim-consumidor-activaciones/aplication/JWT.service.test.ts new file mode 100644 index 0000000..e34df34 --- /dev/null +++ b/packages/sim-consumidor-activaciones/aplication/JWT.service.test.ts @@ -0,0 +1,15 @@ +import { test, describe } from "vitest" +import { JWTService } from "./JWT.service" +import { loadEnvFile } from "node:process" + +describe("Tokens Objenious", () => { + const jwtService = new JWTService() + loadEnvFile("packages/sim-consumidor-activaciones/.env") + + console.log("test env", process.env.OBJ_CLIENT_ID) + + test("Solicicitud normal de auth", async () => { + //const token = await jwtService.getAccessToken() + + }) +}) diff --git a/packages/sim-consumidor-activaciones/aplication/JWT.service.ts b/packages/sim-consumidor-activaciones/aplication/JWT.service.ts index fefa638..f485f8b 100644 --- a/packages/sim-consumidor-activaciones/aplication/JWT.service.ts +++ b/packages/sim-consumidor-activaciones/aplication/JWT.service.ts @@ -6,7 +6,6 @@ import { JWTToken } from "#shared/domain/JWT" import axios from "axios"; -import { throwDeprecation } from "node:process"; type GrantAccessRequestBody = { grant_type: string, @@ -15,7 +14,7 @@ type GrantAccessRequestBody = { client_assertion: string } -type GrantAccessRequestResponse = { +type TokensRequestResponse = { "access_token": string, "expires_in": number, "refresh_token": string @@ -79,8 +78,10 @@ export class JWTService { let res; try { - res = (await req).data as GrantAccessRequestResponse; - + res = (await req).data as TokensRequestResponse; + this.authToken = new JWTToken(res.access_token) + this.refreshToken = new JWTToken(res.refresh_token) + return this.authToken } catch (e) { const errorString = "No se ha podido conseguir el token de acceso de OBJENIOUS" console.error(errorString, e) @@ -107,7 +108,10 @@ export class JWTService { let res; try { - res = (await req).data as GrantAccessRequestResponse; + res = (await req).data as TokensRequestResponse; + this.authToken = new JWTToken(res.access_token) + this.refreshToken = new JWTToken(res.refresh_token) + return this.authToken } catch (e) { const errorString = "No se ha podido conseguir el token de acceso de OBJENIOUS" console.error(errorString, e) diff --git a/packages/sim-consumidor-activaciones/config/env/index.ts b/packages/sim-consumidor-activaciones/config/env/index.ts index 4756960..a0871a7 100644 --- a/packages/sim-consumidor-activaciones/config/env/index.ts +++ b/packages/sim-consumidor-activaciones/config/env/index.ts @@ -1,8 +1,9 @@ import { loadEnvFile } from "node:process"; +import path from "node:path"; -loadEnvFile("../../../../.env") // Global -loadEnvFile("../../.env") // Especifica del servicio +loadEnvFile(path.join(__dirname, "../../../../.env")) // Global +loadEnvFile(path.join(__dirname, "../../.env")) // base export const env = { ENVIRONMENT: process.env.ENVIORMENT, @@ -30,3 +31,4 @@ export const env = { }; +console.log("env", env) diff --git a/packages/sim-consumidor-activaciones/tsconfig.json b/packages/sim-consumidor-activaciones/tsconfig.json index 7761702..d97e9ea 100644 --- a/packages/sim-consumidor-activaciones/tsconfig.json +++ b/packages/sim-consumidor-activaciones/tsconfig.json @@ -1,7 +1,7 @@ { "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "../../dist/sim-consumidor", + "outDir": "../../dist/sim-consumidor-activaciones", "baseUrl": ".", "paths": { "#config/*": [ @@ -22,6 +22,9 @@ "#shared/*": [ "../shared/*" ], + "#root/*": [ + "../../*" + ], } }, "exclude": [ diff --git a/packages/sim-consumidor-activaciones/vitest.config.ts b/packages/sim-consumidor-activaciones/vitest.config.ts new file mode 100644 index 0000000..810d5cb --- /dev/null +++ b/packages/sim-consumidor-activaciones/vitest.config.ts @@ -0,0 +1,15 @@ + +import { defineConfig } from 'vitest/config' +import tsconfigPaths from 'vite-tsconfig-paths' +import { loadEnv } from 'vite' + +export default defineConfig(({ mode }) => ({ + test: { + env: loadEnv(mode, process.cwd(), '') + }, + plugins: [ + tsconfigPaths({ + root: "./" + }) + ] +})) diff --git a/tsconfig.json b/tsconfig.json index 2d4e0a4..c3446ad 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,13 +1,15 @@ { - "extends": "@tsconfig/node22/tsconfig.json", - "compilerOptions": { - "outDir": "./dist", - "rootDir": "./" - }, - "include": [ - "**/*.ts" - ], - "exclude": [ - "dist" - ] + "extends": "@tsconfig/node22/tsconfig.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./", + "paths": {} + }, + "include": [ + "**/*.ts", + "tsconfig.vitest.json" + ], + "exclude": [ + "dist" + ] } diff --git a/tsconfig.vitest.json b/tsconfig.vitest.json new file mode 100644 index 0000000..77064fb --- /dev/null +++ b/tsconfig.vitest.json @@ -0,0 +1,15 @@ +{ + "extends": "./tsconfig.app.json", + "include": [ + "vitest/**/*", + ], + "exclude": [], + "compilerOptions": { + "composite": true, + "lib": [], + "types": [ + "node", + "jsdom" + ], + } +} diff --git a/vitest.config.ts b/vitest.config.ts new file mode 100644 index 0000000..66c6119 --- /dev/null +++ b/vitest.config.ts @@ -0,0 +1,37 @@ +import { defineConfig } from 'vitest/config' +import tsconfigPaths from 'vite-tsconfig-paths' +import fs from 'node:fs' +import path from 'node:path' + +const packagesDir = path.resolve(__dirname, 'packages') +const projects = [path.resolve(__dirname, 'tsconfig.json')] + +if (fs.existsSync(packagesDir)) { + const packages = fs.readdirSync(packagesDir) + for (const pkg of packages) { + const tsconfigPath = path.join(packagesDir, pkg, 'tsconfig.json') + if (fs.existsSync(tsconfigPath)) { + projects.push(tsconfigPath) + } + } +} + +export default defineConfig({ + test: { + projects: [ + './packages/*', + { + extends: true, + envDir: "./" + } + ] + }, + plugins: [ + tsconfigPaths({ + root: "./", + projects + }) + ], + resolve: { + } +}) diff --git a/yarn.lock b/yarn.lock index df32760..d7cff42 100644 --- a/yarn.lock +++ b/yarn.lock @@ -990,7 +990,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.3.4, debug@npm:^4.3.7, debug@npm:^4.4.0, debug@npm:^4.4.3": +"debug@npm:4, debug@npm:^4.1.1, debug@npm:^4.3.4, debug@npm:^4.3.7, debug@npm:^4.4.0, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -1480,6 +1480,13 @@ __metadata: languageName: node linkType: hard +"globrex@npm:^0.1.2": + version: 0.1.2 + resolution: "globrex@npm:0.1.2" + checksum: 10/81ce62ee6f800d823d6b7da7687f841676d60ee8f51f934ddd862e4057316d26665c4edc0358d4340a923ac00a514f8b67c787e28fe693aae16350f4e60d55e9 + languageName: node + linkType: hard + "gopd@npm:^1.2.0": version: 1.2.0 resolution: "gopd@npm:1.2.0" @@ -2396,6 +2403,7 @@ __metadata: supertest: "npm:^7.1.4" tsx: "npm:^4.21.0" typescript: "npm:^5.9.3" + vite-tsconfig-paths: "npm:^6.0.5" vitest: "npm:^4.0.16" languageName: unknown linkType: soft @@ -2635,6 +2643,20 @@ __metadata: languageName: node linkType: hard +"tsconfck@npm:^3.0.3": + version: 3.1.6 + resolution: "tsconfck@npm:3.1.6" + peerDependencies: + typescript: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + bin: + tsconfck: bin/tsconfck.js + checksum: 10/8574595286850273bf83319b4e67ca760088df3c36f7ca1425aaf797416672e854271bd31e75c9b3e1836ed5b66410c6bc38cbbda9c638a5416c6a682ed94132 + languageName: node + linkType: hard + "tslib@npm:^2.1.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" @@ -2738,6 +2760,19 @@ __metadata: languageName: node linkType: hard +"vite-tsconfig-paths@npm:^6.0.5": + version: 6.0.5 + resolution: "vite-tsconfig-paths@npm:6.0.5" + dependencies: + debug: "npm:^4.1.1" + globrex: "npm:^0.1.2" + tsconfck: "npm:^3.0.3" + peerDependencies: + vite: "*" + checksum: 10/1c3d38102ed34d057fc602c332bfd059bfedd0b378ee87b1a73eac89e20f6d81ee4bd9639557287e275cae2230f1d9225d2d7d83a2fa355a380cf77568f2cd31 + languageName: node + linkType: hard + "vite@npm:^6.0.0 || ^7.0.0": version: 7.3.1 resolution: "vite@npm:7.3.1"