diff --git a/server/models/index.js b/server/models/index.js index a219859..13338c7 100644 --- a/server/models/index.js +++ b/server/models/index.js @@ -1,23 +1,35 @@ const { Sequelize } = require('sequelize'); require('dotenv').config(); -const sequelize = new Sequelize( - process.env.DB_NAME || 'drone_detection', - process.env.DB_USER || 'postgres', - process.env.DB_PASSWORD || 'password', - { - host: process.env.DB_HOST || 'localhost', - port: process.env.DB_PORT || 5432, - dialect: 'postgres', - logging: process.env.NODE_ENV === 'development' ? console.log : false, - pool: { - max: 5, - min: 0, - acquire: 30000, - idle: 10000 +// Configure database based on environment +let sequelize; +if (process.env.NODE_ENV === 'test') { + // Use SQLite in-memory database for testing + sequelize = new Sequelize({ + dialect: 'sqlite', + storage: ':memory:', + logging: false + }); +} else { + // Use PostgreSQL for production/development + sequelize = new Sequelize( + process.env.DB_NAME || 'drone_detection', + process.env.DB_USER || 'postgres', + process.env.DB_PASSWORD || 'password', + { + host: process.env.DB_HOST || 'localhost', + port: process.env.DB_PORT || 5432, + dialect: 'postgres', + logging: process.env.NODE_ENV === 'development' ? console.log : false, + pool: { + max: 5, + min: 0, + acquire: 30000, + idle: 10000 + } } - } -); + ); +} // Import models const Device = require('./Device')(sequelize); diff --git a/server/tests/setup.js b/server/tests/setup.js index 6a1bf26..c877ad9 100644 --- a/server/tests/setup.js +++ b/server/tests/setup.js @@ -1,6 +1,14 @@ const { Sequelize } = require('sequelize'); const path = require('path'); +// Set test environment variables +process.env.NODE_ENV = 'test'; +process.env.JWT_SECRET = 'test-jwt-secret-key-for-testing-only'; +process.env.DATABASE_URL = ':memory:'; +process.env.DB_DIALECT = 'sqlite'; +process.env.DB_STORAGE = ':memory:'; +process.env.DB_LOGGING = 'false'; + // Test database configuration const testDatabase = { dialect: 'sqlite',