diff --git a/core/models/answer.js b/core/models/answer.js index d53bfe4..6ee6847 100644 --- a/core/models/answer.js +++ b/core/models/answer.js @@ -27,12 +27,14 @@ module.exports = class Answer { } async getAnswersByQuestion(id) { - try { - const sql = `SELECT * FROM answers WHERE question_id = "${id}";` - const answers = await this.db.all(sql) - return answers - } catch (err) { - throw err - } + const sql = `SELECT answers.*, users.name AS user_name FROM answers + INNER JOIN users ON users.id = answers.user_id WHERE question_id = "${id}";` + const answers = await this.db.all(sql) + return answers + } + + async __testData() { + await this.db.run(table.createUsersTable()) + await this.db.run('INSERT INTO users(name, username, password) VALUES("Wallef", "username", "password");') } } diff --git a/core/views/answer.hbs b/core/views/answer.hbs index 601ec3a..e12c808 100644 --- a/core/views/answer.hbs +++ b/core/views/answer.hbs @@ -18,7 +18,7 @@

{{ body }}

{{ date }}

-

{{ user_id }}

+

{{ user_name }}


{{/each}} diff --git a/unit test/answer.spec.js b/unit test/answer.spec.js index 2422e01..460920b 100644 --- a/unit test/answer.spec.js +++ b/unit test/answer.spec.js @@ -28,14 +28,14 @@ describe('Create()', () => { test('Empty answer', async done => { expect.assertions(1) - //Arrange + // Arrange const answer = await new Answer() const request = { body: {body: ''}, parameters: {question_id: 1}, session: {user: {id: 1}} } - //Act & Assert + // Act & Assert await expect(answer.createAnswer(request, '21/11/2019')).rejects.toEqual(Error('Answer cannot be empty!')) done() }) @@ -43,13 +43,14 @@ describe('Create()', () => { describe('getAnswersByQuestion()', () => { test('Get all answers from a question', async done => { - expect.assertions(4) - //Arrange + expect.assertions(5) + // Arrange const answer = await new Answer() + await answer.__testData() const request = { body: {body: 'Getting Answers'}, parameters: {question_id: 3}, - session: {user: {id: 2}} + session: {user: {id: 1}} } // Act await answer.createAnswer(request, '21/11/2019') @@ -58,7 +59,8 @@ describe('getAnswersByQuestion()', () => { expect(data[0].body).toBe('Getting Answers') expect(data[0].date).toBe('21/11/2019') expect(data[0].question_id).toBe(3) - expect(data[0].user_id).toBe(2) + expect(data[0].user_id).toBe(1) + expect(data[0].user_name).toBe('Wallef') done() }) })