Fix jwt-token

This commit is contained in:
2025-09-16 06:34:27 +02:00
parent 819e0b8414
commit 7d53623647
2 changed files with 113 additions and 82 deletions

View File

@@ -5,13 +5,17 @@ if (process.env.NODE_ENV !== 'test') {
require('dotenv').config();
}
// Check if models are already initialized (for tests)
if (global.__TEST_MODELS__) {
module.exports = global.__TEST_MODELS__;
} else {
// Configure database based on environment
let sequelize;
if (process.env.NODE_ENV === 'test') {
// Use SQLite file database for testing to allow sharing between modules
// Use SQLite in-memory database for testing
sequelize = new Sequelize({
dialect: 'sqlite',
storage: './test.db',
storage: ':memory:',
logging: false
});
} else {
@@ -77,7 +81,7 @@ if (process.env.NODE_ENV === 'test') {
});
}
module.exports = {
const models = {
sequelize,
Device,
DroneDetection,
@@ -88,3 +92,11 @@ module.exports = {
Tenant,
ManagementUser
};
// Store models globally for tests
if (process.env.NODE_ENV === 'test') {
global.__TEST_MODELS__ = models;
}
module.exports = models;
}

View File

@@ -1,5 +1,21 @@
// IMPORTANT: Set environment variables FIRST, before any other imports
process.env.NODE_ENV = 'test';
proces // Return test context
models = {
sequelize,
Device,
DroneDetection,
Heartbeat,
User,
AlertRule,
AlertLog,
Tenant,
ManagementUser
};
// Store models globally so routes can access them
global.__TEST_MODELS__ = models;
return { sequelize, models };est';
process.env.JWT_SECRET = 'test-jwt-secret-key-for-testing-only';
process.env.DATABASE_URL = ':memory:';
process.env.DB_DIALECT = 'sqlite';
@@ -20,7 +36,7 @@ afterEach(() => {
// Test database configuration
const testDatabase = {
dialect: 'sqlite',
storage: './test.db', // Use same file database as models/index.js
storage: ':memory:', // In-memory database for fast tests
logging: false, // Disable SQL logging in tests
sync: { force: true } // Always recreate tables for tests
};
@@ -32,6 +48,9 @@ let models;
* Setup test environment before all tests
*/
async function setupTestEnvironment() {
// Clear any existing global models
delete global.__TEST_MODELS__;
// Create test database connection
sequelize = new Sequelize(testDatabase);