fix(deps): update debug to ^4.4.0 (#6313)
[express.git] / test / acceptance / mvc.js
blob35709f6fb4682dc11b5a4143e907c6c24094a7ec
2 var request = require('supertest')
3 , app = require('../../examples/mvc');
5 describe('mvc', function(){
6 describe('GET /', function(){
7 it('should redirect to /users', function(done){
8 request(app)
9 .get('/')
10 .expect('Location', '/users')
11 .expect(302, done)
15 describe('GET /pet/0', function(){
16 it('should get pet', function(done){
17 request(app)
18 .get('/pet/0')
19 .expect(200, /Tobi/, done)
23 describe('GET /pet/0/edit', function(){
24 it('should get pet edit page', function(done){
25 request(app)
26 .get('/pet/0/edit')
27 .expect(/<form/)
28 .expect(200, /Tobi/, done)
32 describe('PUT /pet/2', function(){
33 it('should update the pet', function(done){
34 request(app)
35 .put('/pet/3')
36 .set('Content-Type', 'application/x-www-form-urlencoded')
37 .send({ pet: { name: 'Boots' } })
38 .expect(302, function (err, res) {
39 if (err) return done(err);
40 request(app)
41 .get('/pet/3/edit')
42 .expect(200, /Boots/, done)
47 describe('GET /users', function(){
48 it('should display a list of users', function(done){
49 request(app)
50 .get('/users')
51 .expect(/<h1>Users<\/h1>/)
52 .expect(/>TJ</)
53 .expect(/>Guillermo</)
54 .expect(/>Nathan</)
55 .expect(200, done)
59 describe('GET /user/:id', function(){
60 describe('when present', function(){
61 it('should display the user', function(done){
62 request(app)
63 .get('/user/0')
64 .expect(200, /<h1>TJ <a href="\/user\/0\/edit">edit/, done)
67 it('should display the users pets', function(done){
68 request(app)
69 .get('/user/0')
70 .expect(/\/pet\/0">Tobi/)
71 .expect(/\/pet\/1">Loki/)
72 .expect(/\/pet\/2">Jane/)
73 .expect(200, done)
77 describe('when not present', function(){
78 it('should 404', function(done){
79 request(app)
80 .get('/user/123')
81 .expect(404, done);
86 describe('GET /user/:id/edit', function(){
87 it('should display the edit form', function(done){
88 request(app)
89 .get('/user/1/edit')
90 .expect(/Guillermo/)
91 .expect(200, /<form/, done)
95 describe('PUT /user/:id', function(){
96 it('should 500 on error', function(done){
97 request(app)
98 .put('/user/1')
99 .send({})
100 .expect(500, done)
103 it('should update the user', function(done){
104 request(app)
105 .put('/user/1')
106 .set('Content-Type', 'application/x-www-form-urlencoded')
107 .send({ user: { name: 'Tobo' }})
108 .expect(302, function (err, res) {
109 if (err) return done(err);
110 request(app)
111 .get('/user/1/edit')
112 .expect(200, /Tobo/, done)
117 describe('POST /user/:id/pet', function(){
118 it('should create a pet for user', function(done){
119 request(app)
120 .post('/user/2/pet')
121 .set('Content-Type', 'application/x-www-form-urlencoded')
122 .send({ pet: { name: 'Snickers' }})
123 .expect('Location', '/user/2')
124 .expect(302, function(err, res){
125 if (err) return done(err)
126 request(app)
127 .get('/user/2')
128 .expect(200, /Snickers/, done)