-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathserverSpec.js
More file actions
118 lines (99 loc) · 3.1 KB
/
serverSpec.js
File metadata and controls
118 lines (99 loc) · 3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
var should = require('should');
var expect = require('chai').expect;
var request = require('supertest');
// run the app for testing and import access
var app = require('./../server').app;
describe('Server Endpoints', function(){
request = request('http://localhost:9000');
var events = '/api/events';
describe('Event API', function(){
it('GET "api/events/" should send non empty response', function(done) {
request.get(events)
.expect(200)
.end(function (err, res) {
if (err) {
return done(err);
}
done();
});
});
it('GET api/events/:id should send the event with requested id', function(done) {
request.get(events + '/1')
.expect(200)
.end(function (err, res) {
if (err) {
return done(err);
}
var event = res.body;
expect(event.id).to.equal(1);
expect(event.title).to.equal('Free Bagels at 8pm');
done();
})
});
it('should redirect POST "api/events/" to "/" if not logged in', function(done) {
request.post(events)
.expect(302)
.end(function (err, res) {
if (err) {
return done(err);
}
expect(res.text).to.equal('Moved Temporarily. Redirecting to /');
done();
})
});
var ratings = '/api/ratings';
it('should add new ratings', function(done) {
request.post(ratings)
.set('Accept', 'application/json')
.send({user_id: 1, event_id: 1})
.expect(201)
.end(function (err, res) {
if (err) {
return done(err);
}
done();
})
});
var comments = '/api/comments';
it('should add new comments', function(done) {
request.post(comments)
.set('Accept', 'application/json')
.send({user_id: 1, event_id: 1, comment:'test comment'})
.expect(201)
.end(function (err, res) {
if (err) {
return done(err);
}
done();
})
});
var photos = '/api/photos';
it('should return a signed url upon new photo POST request', function(done) {
request.post(photos + '/addOne')
.set('Accept', 'application/json')
.send({user_id: 1, event_id: 1})
.expect(201)
.end(function (err, res) {
if (err) {
return done(err);
}
expect(res.text.slice(0,48)).to.equal('\"https://base9photos.s3-us-west-1.amazonaws.com/')
done();
})
});
});
});
// Static server
// index html
// css, js and bower lib files
// Auth
// signup should create new user
// signup errors are raised at the right moments
// login should be able to login with correct credentials
// login should not login with wrong credentials
// logout should log out
// protected api should not be accessible without sending session token
// API/photo
// /addOne should return a signed URL and create a new record
//destroyOne should respond with the right status code.
//should do something different if auth check fails.