Use let or const to avoid scope issues and hoisting
var request = require('supertest')
12var request = require('supertest')3 , app = require('../../examples/mvc');45describe('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)12 })13 })1415 describe('GET /pet/0', function(){16 it('should get pet', function(done){17 request(app)18 .get('/pet/0')19 .expect(200, /Tobi/, done)20 })21 })2223 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)29 })30 })3132 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)43 })44 })45 })4647 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)56 })57 })5859 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)65 })6667 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)74 })75 })7677 describe('when not present', function(){78 it('should 404', function(done){79 request(app)80 .get('/user/123')81 .expect(404, done);82 })83 })84 })8586 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)92 })93 })9495 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)101 })102103 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)113 })114 })115 })116117 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)129 })130 })131 })132})
Same data, no extra tab — call code_get_file + code_get_findings over MCP from Claude/Cursor/Copilot.