Skip to content

Commit

Permalink
Merge pull request #149 from Arquisoft/Ruben
Browse files Browse the repository at this point in the history
Empezada monitorización y nuevos tests
  • Loading branch information
UO289337 authored Apr 27, 2024
2 parents b6b6d18 + c7bd3ef commit 4857ec2
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 4 deletions.
40 changes: 40 additions & 0 deletions apis/allquestionservice/question-model.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
const mongoose = require('mongoose');
const { MongoMemoryServer } = require('mongodb-memory-server');
const Question = require('./question-model');

let mongoServer;

beforeAll(async () => {
mongoServer = await MongoMemoryServer.create();
const mongoUri = mongoServer.getUri();
process.env.MONGODB_URI = mongoUri;
await mongoose.connect(mongoUri, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
});

afterAll(async () => {
await mongoose.disconnect();
await mongoServer.stop();
});

describe('Question Model', () => {
it('should create a new question', async () => {
const questionData = {
enunciado: '¿Cuál es la capital de España?',
respuesta_correcta: 'Madrid',
respuesta_falsa1: 'París',
respuesta_falsa2: 'Londres',
respuesta_falsa3: 'Berlín',
};

const newQuestion = await Question.create(questionData);

expect(newQuestion.enunciado).toBe(questionData.enunciado);
expect(newQuestion.respuesta_correcta).toBe(questionData.respuesta_correcta);
expect(newQuestion.respuesta_falsa1).toBe(questionData.respuesta_falsa1);
expect(newQuestion.respuesta_falsa2).toBe(questionData.respuesta_falsa2);
expect(newQuestion.respuesta_falsa3).toBe(questionData.respuesta_falsa3);
});
});
7 changes: 7 additions & 0 deletions apis/alluserservice/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions apis/alluserservice/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
"axios": "^0.21.1",
"bcrypt": "^5.1.1",
"body-parser": "^1.20.2",
"crypto": "^1.0.1",
"express": "^4.18.2",
"mongoose": "^8.3.2"
},
Expand Down
48 changes: 48 additions & 0 deletions apis/alluserservice/user-model.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
const mongoose = require('mongoose');
const { MongoMemoryServer } = require('mongodb-memory-server');
const User = require('./user-model');
const { randomBytes } = require('crypto');

let mongoServer;

function generateSecureRandomPassword(length) {
const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_=+';
const password = [];
const bytes = randomBytes(length);
for (let i = 0; i < length; i++) {
const randomIndex = bytes[i] % characters.length;
password.push(characters[randomIndex]);
}
return password.join('');
}

beforeAll(async () => {
mongoServer = await MongoMemoryServer.create();
const mongoUri = mongoServer.getUri();
process.env.MONGODB_URI = mongoUri;
await mongoose.connect(mongoUri, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
});

afterAll(async () => {
await mongoose.disconnect();
await mongoServer.stop();
});

describe('Question Model', () => {
it('should create a new user', async () => {
const userData = {
username: 'testuser',
email: '[email protected]',
password: generateSecureRandomPassword(8),
};

const newUser = await User.create(userData);

expect(newUser.username).toBe(userData.username);
expect(newUser.email).toBe(userData.email);
expect(newUser.password).toBe(userData.password);
});
});
11 changes: 10 additions & 1 deletion gatewayservice/monitoring/prometheus/prometheus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,13 @@ global:
scrape_configs:
- job_name: "example-nodejs-app"
static_configs:
- targets: ["gatewayservice:8000"]
- targets:
- "gatewayservice:8000"
- "apis/allquestionservice:8007"
- "apis/allquestionservice:8006"
- "gamehistoryservice:8004"
- "perfilservice:8005"
- "questiongenerator:8003"
- "users/authservice:8002"
- "users/userservice:8001"
- "webapp:3000"
5 changes: 2 additions & 3 deletions questiongenerator/question.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,12 +43,11 @@ describe('Question Generator test', () => {
it('Should return a question when calling /generateQuestion', async () => {
const response = await request(app)
.get('/generateQuestion')
.query({ thematic: 'Todas', user: 'user', language: 'es' })
.timeout(10000);
.query({ thematic: 'Todas', user: 'user', language: 'es' });

expect(response.status).toBe(200);
expect(response.body).toHaveProperty('responseQuestion', 'responseOptions', 'responseCorrectOption', 'question_Id', 'responseImage');
});
}, 10000);

it('Should manager errors when calling /generateQuestion', async () => {
await simulateError('get', '/generateQuestion', 'Error al obtener datos', { error: "Error al obtener datos RangeError [ERR_OUT_OF_RANGE]: The value of \"max\" is out of range. It must be greater than the value of \"min\" (0). Received 0" });
Expand Down

0 comments on commit 4857ec2

Please sign in to comment.