HEX
Server: nginx/1.24.0
System: Linux nowruzgan 6.8.0-57-generic #59-Ubuntu SMP PREEMPT_DYNAMIC Sat Mar 15 17:40:59 UTC 2025 x86_64
User: babak (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: //var/dev/farhangmoaser/web/node_modules/express-robots/test/index.js
var fs = require('fs');
var expect = require('chai').expect;
var supertest = require('supertest');
var robots = require('../');

describe('express-robots', function() {
  it('should work', function(done) {
    var request = supertest(robots({UserAgent: '*', Disallow: '/'}));
    request
      .get('/robots.txt')
      .end(function(err, res) {
        expect(res.status).to.equal(200);
        expect(res.headers['content-type']).to.equal('text/plain; charset=utf-8');
        expect(res.text).to.equal('User-agent: *\nDisallow: /');
        done();
      });
  });
  
  it('should work with a crawl delay', function(done) {
    var request = supertest(robots({UserAgent: '*', CrawlDelay: '5'}));
    request
      .get('/robots.txt')
      .end(function(err, res) {
        expect(res.status).to.equal(200);
        expect(res.headers['content-type']).to.equal('text/plain; charset=utf-8');
        expect(res.text).to.equal('User-agent: *\nCrawl-delay: 5');
        done();
      });
  });
  
  it('should work with multiple crawl delays', function(done) {
    var request = supertest(robots([
      {UserAgent: '*', CrawlDelay: '5'}, 
      {UserAgent: 'Foo', CrawlDelay: '10'}
    ]));
    request
      .get('/robots.txt')
      .end(function(err, res) {
        expect(res.status).to.equal(200);
        expect(res.headers['content-type']).to.equal('text/plain; charset=utf-8');
        expect(res.text).to.equal('User-agent: *\nCrawl-delay: 5\nUser-agent: Foo\nCrawl-delay: 10');
        done();
      });
  });

  it('should work with files', function() {
    var request = supertest(robots(__dirname + '/fixtures/robots.txt'));
    request
      .get('/robots.txt')
      .end(function(err, res) {
        expect(res.status).to.equal(200);
        expect(res.text).to.equal(fs.readFileSync(__dirname + '/fixtures/robots.txt', 'utf8'));
      });
  });

  it('should respond with an empty file if nothing is specified', function() {
    var request = supertest(robots());
    request
      .get('/robots.txt')
      .end(function(err, res) {
        expect(res.status).to.equal(200);
        expect(res.text).to.equal('');
      });
  });

});