diff --git a/docker-compose.macmini.yml b/docker-compose.macmini.yml index e67525cac..520be5da4 100644 --- a/docker-compose.macmini.yml +++ b/docker-compose.macmini.yml @@ -1290,6 +1290,7 @@ volumes: name: mana-redis-data minio_data: name: mana-minio-data + external: true victoriametrics_data: name: mana-victoria-data grafana_data: diff --git a/services/mana-core-auth/package.json b/services/mana-core-auth/package.json index 100580660..7c1cca50c 100644 --- a/services/mana-core-auth/package.json +++ b/services/mana-core-auth/package.json @@ -43,6 +43,7 @@ "duckdb-async": "^1.1.1", "helmet": "^8.0.0", "jose": "^6.1.2", + "jsonwebtoken": "^9.0.2", "nanoid": "^5.0.9", "nodemailer": "^7.0.12", "postgres": "^3.4.5", @@ -63,6 +64,7 @@ "@types/cookie-parser": "^1.4.7", "@types/express": "^5.0.0", "@types/jest": "^29.5.14", + "@types/jsonwebtoken": "^9.0.7", "@types/node": "^22.10.2", "@types/nodemailer": "^7.0.5", "@types/supertest": "^6.0.2", diff --git a/services/mana-core-auth/test/__mocks__/jose.ts b/services/mana-core-auth/test/__mocks__/jose.ts index 269e2cf7a..1e38f3b7d 100644 --- a/services/mana-core-auth/test/__mocks__/jose.ts +++ b/services/mana-core-auth/test/__mocks__/jose.ts @@ -1,20 +1,19 @@ /** - * Jose Mock - Re-exports the real module functions + * Jose Mock - Uses jest.requireActual to get the real module * * We use the real jose library for JWT validation tests * since we're testing actual JWT creation and verification. - * - * Note: We need to explicitly require and re-export because - * jest module mocking doesn't handle ESM re-exports well. */ -// eslint-disable-next-line @typescript-eslint/no-require-imports -const jose = require('jose'); +// Use jest.requireActual to bypass the mock and get the real module +const actualJose = jest.requireActual('jose'); -export const SignJWT = jose.SignJWT; -export const jwtVerify = jose.jwtVerify; -export const createRemoteJWKSet = jose.createRemoteJWKSet; -export const errors = jose.errors; -export const generateKeyPair = jose.generateKeyPair; -export const exportJWK = jose.exportJWK; -export const importJWK = jose.importJWK; +export const SignJWT = actualJose.SignJWT; +export const jwtVerify = actualJose.jwtVerify; +export const createRemoteJWKSet = actualJose.createRemoteJWKSet; +export const errors = actualJose.errors; +export const generateKeyPair = actualJose.generateKeyPair; +export const exportJWK = actualJose.exportJWK; +export const importJWK = actualJose.importJWK; +export const decodeJwt = actualJose.decodeJwt; +export const decodeProtectedHeader = actualJose.decodeProtectedHeader;