headers.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. 'use strict';
  2. const test = require('tap').test;
  3. const ecstatic = require('../lib/ecstatic');
  4. const http = require('http');
  5. const request = require('request');
  6. const root = `${__dirname}/public`;
  7. test('headers object', (t) => {
  8. t.plan(4);
  9. const server = http.createServer(
  10. ecstatic({
  11. root,
  12. headers: {
  13. Wow: 'sweet',
  14. Cool: 'beans',
  15. },
  16. autoIndex: true,
  17. defaultExt: 'html',
  18. })
  19. );
  20. server.listen(() => {
  21. const port = server.address().port;
  22. const uri = `http://localhost:${port}/subdir`;
  23. request.get({ uri }, (err, res) => {
  24. t.ifError(err);
  25. t.equal(res.statusCode, 200);
  26. t.equal(res.headers.wow, 'sweet');
  27. t.equal(res.headers.cool, 'beans');
  28. });
  29. });
  30. t.once('end', () => {
  31. server.close();
  32. });
  33. });
  34. test('header string', (t) => {
  35. t.plan(3);
  36. const server = http.createServer(
  37. ecstatic({
  38. root,
  39. header: 'beep: boop', // for command-line --header 'beep: boop'
  40. autoIndex: true,
  41. defaultExt: 'html',
  42. })
  43. );
  44. server.listen(() => {
  45. const port = server.address().port;
  46. const uri = `http://localhost:${port}/subdir`;
  47. request.get({ uri }, (err, res) => {
  48. t.ifError(err);
  49. t.equal(res.statusCode, 200);
  50. t.equal(res.headers.beep, 'boop');
  51. });
  52. });
  53. t.once('end', () => {
  54. server.close();
  55. });
  56. });
  57. test('header array', (t) => {
  58. t.plan(3);
  59. const server = http.createServer(
  60. ecstatic({
  61. root,
  62. header: [
  63. 'beep: boop', // --header 'beep: boop'
  64. 'what: ever', // --header 'what: ever'
  65. ],
  66. autoIndex: true,
  67. defaultExt: 'html',
  68. })
  69. );
  70. server.listen(() => {
  71. const port = server.address().port;
  72. const uri = `http://localhost:${port}/subdir`;
  73. request.get({ uri }, (err, res) => {
  74. t.ifError(err);
  75. t.equal(res.statusCode, 200);
  76. t.equal(res.headers.beep, 'boop');
  77. });
  78. });
  79. t.once('end', () => {
  80. server.close();
  81. });
  82. });
  83. test('H array', (t) => {
  84. t.plan(3);
  85. const server = http.createServer(
  86. ecstatic({
  87. root,
  88. H: [
  89. 'beep: boop', // -H 'beep: boop'
  90. 'what: ever', // -H 'what: ever'
  91. ],
  92. autoIndex: true,
  93. defaultExt: 'html',
  94. })
  95. );
  96. server.listen(() => {
  97. const port = server.address().port;
  98. const uri = `http://localhost:${port}/subdir`;
  99. request.get({ uri }, (err, res) => {
  100. t.ifError(err);
  101. t.equal(res.statusCode, 200);
  102. t.equal(res.headers.beep, 'boop');
  103. });
  104. });
  105. t.once('end', () => {
  106. server.close();
  107. });
  108. });