slash-indifference.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. var should = require("should")
  2. var request = require('request')
  3. var path = require("path")
  4. var fs = require("fs")
  5. var exec = require("child_process").exec
  6. var harp = require("../")
  7. describe("slash-indifference", function(){
  8. var projectPath = path.join(__dirname, "apps/slash-indifference")
  9. before(function(done){
  10. harp.server(projectPath, { port: 8119 }, done)
  11. })
  12. describe("file", function(){
  13. it("should get 200 without slash", function(done){
  14. request('http://localhost:8119/file', { followRedirect: false }, function(e, r, b){
  15. r.statusCode.should.eql(200)
  16. b.should.eql("<h1>file contents</h1>")
  17. done()
  18. })
  19. })
  20. it("should get redirected when slash present", function(done){
  21. request('http://localhost:8119/file/', { followRedirect: false }, function(e, r, b){
  22. r.statusCode.should.eql(301)
  23. r.headers["location"].should.eql("/file")
  24. done()
  25. })
  26. })
  27. })
  28. describe("directory", function(){
  29. it("should get 200 with slash", function(done){
  30. request('http://localhost:8119/directory/', { followRedirect: false }, function(e, r, b){
  31. r.statusCode.should.eql(200)
  32. b.should.eql("<h1>file in directory contents</h1>")
  33. done()
  34. })
  35. })
  36. it("should get redirected when slash absent", function(done){
  37. request('http://localhost:8119/directory', { followRedirect: false }, function(e, r, b){
  38. r.statusCode.should.eql(301)
  39. r.headers["location"].should.eql("/directory/")
  40. done()
  41. })
  42. })
  43. })
  44. })