describe('GET /articles', ()=>{ beforeEach((done)=>{ ArticleModel.deleteMany({}) .then(()=>{ ArticleModel.insertMany(articles) }) .then(()=> done()) }); it('shoul get all articles', done=>{ request(app) .get('/api/articles') .expect(200) .expect(res=> { expect(res.body.data.length).toBe(2); expect(res.body.data[0]._id).toBe(articles[0]._id.toString()); expect(res.body.data[1]._id).toBe(articles[1]._id.toString()); expect(res.body.data[0].title).toBe(articles[0].title); expect(res.body.data[1].title).toBe(articles[1].title); }) .end(done) }) })
describe('GET /api/tutorials/:tutorial', () => { test('should return tutorial with given id', done => { request(app) .get(`/api/tutorials/${tutorials[0]._id.toHexString()}`) .expect(200) .expect(res => { expect(res.body.tutorial._id).toBe(tutorials[0]._id.toHexString()); }) .end(done); }); test('should return 404 if tutorial not found with given id', done => { const id = new mongoose.Types.ObjectId(); request(app) .get(`/api/tutorals/${id}`) .expect(404) .end(done); }); });
.delete(`/api/tutorials/me/removefavorite/${tutorials[0]._id}`) .set('Authorization', userOneToken) .expect(200) if (err) return done(err); User.findById(users[0]._id).then(user => { expect(user.favorites.length).toBe(favorites - 1); done(); .delete(`/api/tutorials/me/removefavorite/${tutorials[0]._id}`) .expect(401) .end(done);
describe('GET /search/savedpins/:id', () => { it('should return savedpins doc', (done) => { request(app) .get(`/search/savedpins/${pins[0]._id.toHexString()}`) .set('x-access-token', users[0].tokens[0].token) .expect(200)
.expect(res => { expect(res.body.text).toBe(text); expect(res.body._creator).toBe(usersDummy[0]._id.toHexString()); }) .end((err, res) => { if(err) return done(err); Todo.findById(res.body._id).then(todo => { expect(todo.text).toBe(text); expect(todo._creator.toHexString()).toBe(usersDummy[0]._id.toHexString()); }).then( Todo.find().then(todos => {
describe('GET /users/user', () => { it('does not send a user if not logged in', (done) => { request(app) .get('/users/user') .expect(401) .then(() => { done(); }) .catch((err) => { done(err); }, ); }); it('Sends the requested user when they exist', (done) => { request(app) .get('/users/user') .set('x-access-token', users[0].tokens[0].token) .expect(200) .then((res) => { expect(res.body._id).to.equal(`${users[0]._id}`); done(); }) .catch((err) => { done(err); }); }); });
.end((err, res) => { if (err) return done(err); User.findById(users[0]._id).then(user => { expect(user.submittedTutorials.length).toBe(users[0].submittedTutorials.length + 1); done();
describe("GET /todos/:id", () => { it("should get a todo by its id", done => { request(app) .get(`/todos/${todosDumi[0]._id.toHexString()}`) .expect(200) .expect(res => {
.post(`/api/tutorials/upvote/add/${tutorials[2]._id}`) .set('Authorization', userOneToken) .expect(200) if (err) return done(err); Tutorial.findById(tutorials[2]._id).then(tutorial => { expect(tutorial.upvotes.length).toBe(upvotes + 1); done(); .post(`/api/tutorials/upvote/add/${tutorials[0]._id}`) .set('Authorization', userOneToken) .expect(200) if (err) return done(err); Tutorial.findById(tutorials[2]._id).then(tutorial => { expect(tutorial.upvotes.length).toBe(upvotes); done(); .post(`/api/tutorials/upvote/add/${tutorials[2]._id}`) .expect(401) .end(done);
.post(`/api/tutorials/me/addfavorite/${tutorials[1]._id}`) .set('Authorization', userOneToken) .expect(200) if (err) return done(err); User.findById(users[0]._id).then(user => { expect(user.favorites.length).toBe(favorites + 1); done(); .post(`/api/tutorials/me/addfavorite/${tutorials[0]._id}`) .set('Authorization', userOneToken) .expect(200) if (err) return done(err); User.findById(users[0]._id).then(user => { expect(user.favorites.length).toBe(users[0].favorites.length); done(); .post(`/api/tutorials/me/addfavorite/${tutorials[0]._id}`) .expect(401) .end(done);
.delete(`/api/tutorials/upvote/remove/${tutorials[0]._id}`) .set('Authorization', userOneToken) .expect(200) if (err) return done(err); Tutorial.findById(tutorials[0]._id).then(tutorial => { expect(tutorial.upvotes.length).toBe(upvotes - 1); done(); .delete(`/api/tutorials/upvote/remove/${tutorials[0]._id}`) .expect(401) .end(done);