Fix jwt-token

This commit is contained in:
2025-09-16 22:19:26 +02:00
parent d9997c456d
commit c2c18821dd
2 changed files with 27 additions and 21 deletions

View File

@@ -4,39 +4,31 @@ const sinon = require('sinon');
const request = require('supertest');
const express = require('express');
const { setupTestEnvironment, teardownTestEnvironment, cleanDatabase, createTestUser, createTestTenant, createTestDevice, generateTestToken } = require('../setup');
const { authenticateToken, setModels } = require('../../middleware/auth');
describe('Device Routes', () => {
let app, models, sequelize;
let app, models, sequelize, deviceRoutes;
before(async () => {
({ models, sequelize } = await setupTestEnvironment());
// Inject models globally for routes and into auth middleware for testing
global.__TEST_MODELS__ = models;
setModels(models);
// Require device routes AFTER setting up global models
deviceRoutes = require('../../routes/device');
// Setup express app for testing
app = express();
app.use(express.json());
// Mock authentication middleware
app.use((req, res, next) => {
if (req.headers.authorization) {
const token = req.headers.authorization.replace('Bearer ', '');
try {
const jwt = require('jsonwebtoken');
const decoded = jwt.verify(token, process.env.JWT_SECRET || 'test-secret');
req.user = { id: decoded.userId, tenant_id: decoded.tenantId };
req.tenant = { id: decoded.tenantId };
} catch (error) {
return res.status(401).json({ success: false, message: 'Invalid token' });
}
}
next();
});
// Setup device routes
const deviceRoutes = require('../../routes/device');
app.use(authenticateToken);
app.use('/devices', deviceRoutes);
});
after(async () => {
// Clean up global test models
delete global.__TEST_MODELS__;
await teardownTestEnvironment();
});