Closed 12testgl closed 1 year ago
This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 30 days.
This issue was closed because it has been stalled for 30 days with no activity. Please open a new issue if the issue is still relevant, linking to this one.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. Please note this issue tracker is not a help forum. We recommend using StackOverflow or our discord channel for questions.
Version
29.6.1
Steps to reproduce
App.js
const express = require('express'); const path = require('path'); const helmet = require('helmet'); const cookieParser = require('cookie-parser'); const xss = require('xss-clean'); const compression = require('compression'); const cors = require('cors'); const passport = require('passport'); const useragent = require('express-useragent'); const session = require('express-session'); const bodyParser = require('body-parser'); const httpStatus = require('http-status'); const config = require('./config/config'); const i18n = require('./config/i18n'); const morgan = require('./config/morgan'); const sequelize = require('./config/sequelize'); const { jwtStrategy } = require('./config/passport'); const passportSaml = require('./config/passportSaml'); const { authLimiter } = require('./middlewares/rateLimiter'); const routes = require('./routes/v1'); const loginRouter = require('./routes/v1/login.route'); const { errorConverter, errorHandler } = require('./middlewares/error'); const ApiError = require('./utils/ApiError');
require('./models/index');
// Require routes const usersRouter = require("./routes/v1/user.route")
const corsOptions = { origin: function (origin, callback) { const isWhitelisted = config.originsWhitelist.split(',').indexOf(origin) !== -1;
}, };
const app = express();
// view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade');
app.enable('trust proxy');
// set security HTTP headers app.use(helmet());
// parse json request body app.use(express.json());
// parse urlencoded request body app.use(express.urlencoded({ extended: true }));
// sanitize request data app.use(xss());
// gzip compression app.use(compression());
// enable cors // app.use(cors(corsOptions)); app.options('*', cors(corsOptions));
app.use(bodyParser.json({ limit: '100mb' })); app.use(bodyParser.urlencoded({ extended: true, limit: '100mb' }));
app.use(cookieParser()); app.use(i18n.init); app.use(express.static(path.join(__dirname, 'public'))); app.use(useragent.express());
// jwt authentication app.use(passport.initialize()); passport.use('jwt', jwtStrategy);
if (config.env !== 'local') { sequelize.sync(); }
// v1 api routes app.use('/v1', routes);
// send back a 404 error for any unknown api request app.use((req, res, next) => { next(new ApiError(httpStatus.NOT_FOUND, 'Not found')); });
// convert error to ApiError, if needed app.use(errorConverter);
// handle error app.use(errorHandler);
module.exports = app;
docs.test.js
const request = require('supertest'); const httpStatus = require('http-status'); const app = require('../../src/app'); const config = require('../../src/config/config');
describe('Auth routes', () => { describe('GET /v1/docs', () => { test('should return 404 when running in production', async () => { config.env = 'production'; await request(app).get('/v1/docs').send().expect(httpStatus.NOT_FOUND); config.env = process.env.NODE_ENV; }); }); });
Expected behavior
PASS src/tests/docs.test.ts Test the root path √ It should response the GET method (17 ms)
Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 1.87 s, estimated 2 s Ran all test suites.
ReferenceError: You are trying to
import
a file after the Jest environment has been torn down. From tests/integration/docs.test.js.RUNS tests/integration/docs.test.js /Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:102 throw new SequelizeErrors.ConnectionError(err); ^
ConnectionError [SequelizeConnectionError]: Encoding not recognized: 'cesu8' (searched as: 'cesu8') at ConnectionManager.connect (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/mysql/connection-manager.js:126:17) at processTicksAndRejections (node:internal/process/task_queues:95:5) at ConnectionManager._connect (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/abstract/connection-manager.js:332:24) at /Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/abstract/connection-manager.js:250:32 at ConnectionManager.getConnection (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/abstract/connection-manager.js:280:7) at /Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/sequelize.js:638:26 at MySQLQueryInterface.tableExists (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/abstract/query-interface.js:242:17) at Function.sync (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/model.js:1349:21) at Sequelize.sync (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/sequelize.js:825:9) { parent: Error: Encoding not recognized: 'cesu8' (searched as: 'cesu8') at Object.getCodec (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:104:23) at Object.getDecoder (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:125:23) at Object..exports.decode (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/parsers/string.js:10:25)
at Packet.readNullTerminatedString (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packets/packet.js:412:25)
at Function.fromPacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packets/handshake.js:62:33)
at ClientHandshake.handshakeInit (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/commands/client_handshake.js:112:40)
at ClientHandshake.execute (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/commands/command.js:45:22)
at Connection.handlePacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:478:34)
at PacketParser.onPacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:97:12)
at PacketParser.executeStart (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packet_parser.js:75:16)
at Socket. (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:104:25)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Socket.Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
fatal: true
},
original: Error: Encoding not recognized: 'cesu8' (searched as: 'cesu8')
at Object.getCodec (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:104:23)
at Object.getDecoder (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:125:23)
at Object..exports.decode (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/parsers/string.js:10:25)
at Packet.readNullTerminatedString (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packets/packet.js:412:25)
at Function.fromPacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packets/handshake.js:62:33)
at ClientHandshake.handshakeInit (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/commands/client_handshake.js:112:40)
at ClientHandshake.execute (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/commands/command.js:45:22)
at Connection.handlePacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:478:34)
at PacketParser.onPacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:97:12)
at PacketParser.executeStart (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packet_parser.js:75:16)
at Socket. (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:104:25)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Socket.Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
fatal: true
}
}
Actual behavior
ReferenceError: You are trying to
import
a file after the Jest environment has been torn down. From tests/integration/docs.test.js.RUNS tests/integration/docs.test.js /Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:102 throw new SequelizeErrors.ConnectionError(err); ^
ConnectionError [SequelizeConnectionError]: Encoding not recognized: 'cesu8' (searched as: 'cesu8') at ConnectionManager.connect (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/mysql/connection-manager.js:126:17) at processTicksAndRejections (node:internal/process/task_queues:95:5) at ConnectionManager._connect (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/abstract/connection-manager.js:332:24) at /Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/abstract/connection-manager.js:250:32 at ConnectionManager.getConnection (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/abstract/connection-manager.js:280:7) at /Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/sequelize.js:638:26 at MySQLQueryInterface.tableExists (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/dialects/abstract/query-interface.js:242:17) at Function.sync (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/model.js:1349:21) at Sequelize.sync (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/sequelize/src/sequelize.js:825:9) { parent: Error: Encoding not recognized: 'cesu8' (searched as: 'cesu8') at Object.getCodec (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:104:23) at Object.getDecoder (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:125:23) at Object..exports.decode (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/parsers/string.js:10:25)
at Packet.readNullTerminatedString (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packets/packet.js:412:25)
at Function.fromPacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packets/handshake.js:62:33)
at ClientHandshake.handshakeInit (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/commands/client_handshake.js:112:40)
at ClientHandshake.execute (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/commands/command.js:45:22)
at Connection.handlePacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:478:34)
at PacketParser.onPacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:97:12)
at PacketParser.executeStart (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packet_parser.js:75:16)
at Socket. (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:104:25)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Socket.Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
fatal: true
},
original: Error: Encoding not recognized: 'cesu8' (searched as: 'cesu8')
at Object.getCodec (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:104:23)
at Object.getDecoder (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:125:23)
at Object..exports.decode (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/parsers/string.js:10:25)
at Packet.readNullTerminatedString (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packets/packet.js:412:25)
at Function.fromPacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packets/handshake.js:62:33)
at ClientHandshake.handshakeInit (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/commands/client_handshake.js:112:40)
at ClientHandshake.execute (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/commands/command.js:45:22)
at Connection.handlePacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:478:34)
at PacketParser.onPacket (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:97:12)
at PacketParser.executeStart (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/packet_parser.js:75:16)
at Socket. (/Users/rajpal/Documents/Projects/LSH/lsh-asset-sharing-backend/node_modules/mysql2/lib/connection.js:104:25)
at Socket.emit (node:events:513:28)
at addChunk (node:internal/streams/readable:324:12)
at readableAddChunk (node:internal/streams/readable:297:9)
at Socket.Readable.push (node:internal/streams/readable:234:10)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23) {
fatal: true
}
}
Additional context
No response
Environment