Skip to content

Commit

Permalink
solution 4.8: Pruebas de lista de blogs, paso 1
Browse files Browse the repository at this point in the history
  • Loading branch information
patchamama committed Sep 10, 2023
1 parent 82fc7cd commit f4361d4
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 21 deletions.
2 changes: 1 addition & 1 deletion controllers/blogs.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const blogsRouter = require('express').Router()
const Blog = require('../models/blogs')
const Blog = require('../models/blog')

blogsRouter.get('/', (request, response) => {
Blog.find({}).then((blogs) => {
Expand Down
File renamed without changes.
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,10 @@
"eslint": "8.49.0",
"jest": "29.6.4",
"nodemon": "3.0.1",
"supertest": "6.3.3"
"supertest": "^6.3.3"
},
"jest": {
"testEnvironment": "node"
"testEnvironment": "node",
"globalTeardown": "./tests/teardown.js"
}
}
24 changes: 12 additions & 12 deletions tests/blog.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ describe('Authors with more blogs', () => {
test('lodash - with empty list', () => {
const blogs = [{}]
const result = listHelper.mostBlogs(blogs)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: undefined, entries: 1 })
})

Expand All @@ -134,21 +134,21 @@ describe('Authors with more blogs', () => {
},
]
const result = listHelper.mostBlogs(blogs)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: 'Robert C. Martin', entries: 1 })
})

test('lodash - with big list', () => {
const result = listHelper.mostBlogs(bigbloglist)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: 'Robert C. Martin', entries: 3 })
})

// Vanilla JS
test('Vanilla JS - with empty list', () => {
const blogs = [{}]
const result = listHelper.mostBlogsVanilla(blogs)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: undefined, entries: 1 })
})

Expand All @@ -164,13 +164,13 @@ describe('Authors with more blogs', () => {
},
]
const result = listHelper.mostBlogsVanilla(blogs)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: 'Robert C. Martin', entries: 1 })
})

test('Vanilla JS - with big list', () => {
const result = listHelper.mostBlogsVanilla(bigbloglist)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: 'Robert C. Martin', entries: 3 })
})
})
Expand All @@ -179,7 +179,7 @@ describe('Authors with more likes', () => {
test('lodash - with empty list', () => {
const blogs = [{}]
const result = listHelper.mostLikes(blogs)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: undefined, likes: undefined })
})

Expand All @@ -195,21 +195,21 @@ describe('Authors with more likes', () => {
},
]
const result = listHelper.mostLikes(blogs)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: 'Robert C. Martin', likes: 2 })
})

test('lodash - with big blog list', () => {
const result = listHelper.mostLikes(bigbloglist)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: 'Edsger W. Dijkstra', likes: 17 })
})

// VanillaJS
test('VanillaJS - with empty list', () => {
const blogs = [{}]
const result = listHelper.mostLikesVanilla(blogs)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: undefined, likes: undefined })
})

Expand All @@ -225,13 +225,13 @@ describe('Authors with more likes', () => {
},
]
const result = listHelper.mostLikesVanilla(blogs)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: 'Robert C. Martin', likes: 2 })
})

test('VanillaJS -with big blog list', () => {
const result = listHelper.mostLikesVanilla(bigbloglist)
console.log(result)
// console.log(result)
expect(result).toEqual({ author: 'Edsger W. Dijkstra', likes: 17 })
})
})
59 changes: 59 additions & 0 deletions tests/note_api.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
const mongoose = require('mongoose')
const supertest = require('supertest')
const app = require('../app')
const api = supertest(app)
const Blog = require('../models/blog')
const initialBlogs = [
{
title: 'Cinco ecuaciones que cambiaron el mundo',
author: 'A. Pacheco',
url: 'https://unlibroenmimochila.blogspot.com/2018/02/cinco-ecuaciones-que-cambiaron-el-mundo.html',
likes: 2,
},
{
title: 'El tortuoso camino de la justicia transicional',
author: 'Rafael Rojas',
url: 'https://www.librosdelcrepusculo.com.mx/2023/09/el-tortuoso-camino-de-la-justicia.html',
likes: 1,
},
]
beforeEach(async () => {
await Blog.deleteMany({})
let blogObject = new Blog(initialBlogs[0])
await blogObject.save()
blogObject = new Blog(initialBlogs[1])
await blogObject.save()
})

test('notes are returned as json', async () => {
await api
.get('/api/blogs')
.expect(200)
.expect('Content-Type', /application\/json/)
}, 100000)

test('all notes are returned', async () => {
const response = await api.get('/api/blogs')
// console.log(response.body)
expect(response.body).toHaveLength(initialBlogs.length)
})

test('a specific note is within the returned notes', async () => {
const response = await api.get('/api/blogs')
// console.log(response.body[0])

const contents = response.body.map((r) => r.title)
// console.log(contents)
expect(contents).toContain('El tortuoso camino de la justicia transicional')
})

test('unknown endpoint in api url', async () => {
const response = await api.get('/api/blogs-url-dont-exist')
// console.log(response.body)

expect(response.body.error).toBe('unknown endpoint')
})

afterAll(async () => {
await mongoose.connection.close()
})
3 changes: 3 additions & 0 deletions tests/teardown.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = () => {
process.exit(0)
}
8 changes: 4 additions & 4 deletions utils/list_helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const mostBlogs = (blogs) => {
author,
entries: blogs.length,
}))
console.log(_.maxBy(authorEntries, 'entries'))
// console.log(_.maxBy(authorEntries, 'entries'))
return _.maxBy(authorEntries, 'entries')
}
}
Expand All @@ -47,7 +47,7 @@ const mostBlogsVanilla = (blogs) => {
return result
}, {})

console.log(groupByAuthor)
// console.log(groupByAuthor)

let authorMoreBlogs = ''

Expand All @@ -58,7 +58,7 @@ const mostBlogsVanilla = (blogs) => {
}
}

console.log(authorMoreBlogs, '-', groupByAuthor[authorMoreBlogs])
// console.log(authorMoreBlogs, '-', groupByAuthor[authorMoreBlogs])
return {
author: authorMoreBlogs,
entries: groupByAuthor[authorMoreBlogs],
Expand Down Expand Up @@ -102,7 +102,7 @@ const mostLikesVanilla = (blogs) => {
return result
}, {})

console.log(groupByAuthor)
// console.log(groupByAuthor)

let authorMoreLikes = ''

Expand Down
8 changes: 6 additions & 2 deletions utils/logger.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
const info = (...params) => {
console.log(...params)
if (process.env.NODE_ENV !== 'test') {
console.log(...params)
}
}

const error = (...params) => {
console.error(...params)
if (process.env.NODE_ENV !== 'test') {
console.error(...params)
}
}

module.exports = {
Expand Down

0 comments on commit f4361d4

Please sign in to comment.