Uname:Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64

Base Dir : /var/www/html

User : gavin


403WebShell
403Webshell
Server IP : 68.183.124.220  /  Your IP : 216.73.217.137
Web Server : Apache/2.4.18 (Ubuntu)
System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
User : gavin ( 1000)
PHP Version : 7.0.33-0ubuntu0.16.04.16
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/gavin/workspace/readjs/node_modules/express-hbs/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/gavin/workspace/readjs/node_modules/express-hbs/test/cacheSpecs.js
var request = require('supertest');
var path = require('path');
var rewire = require('rewire');
var assert = require('assert');
var fs = require('fs');


/**
 * Creates instance of example app using an injected version of express-hbs to track the number of times a
 * file is read. Additionally, the $NODE_ENV environment variable may be set.
 *
 * @param env
 * @returns {{app: hbs, readCounts: {}}}
 */
function createApp(env) {
  var readCounts = {};
  var hbs = rewire('../lib/hbs');
  hbs.__set__('fs', {
    readFileSync: function(filename, encoding) {
      if (typeof readCounts[filename] === 'undefined') {
        readCounts[filename] = 1;
      } else {
        readCounts[filename] += 1;
      }

      return fs.readFileSync(filename, encoding);
    },

    readFile: function(filename, encoding, cb) {
      if (typeof readCounts[filename] === 'undefined') {
        readCounts[filename] = 1;
      } else {
        readCounts[filename] += 1;
      }

      fs.readFile(filename, encoding, cb);
    },
    existsSync: function(filename, encoding) {
      return fs.existsSync(filename, encoding);
    }
  });

  // used mocked hbs in example
  var example = require('../example/app');
  var app = example.create(hbs, env);
  return {app: app, readCounts: readCounts};
}


describe('express-hbs', function() {
  describe('cache', function() {

    it('should not cache layout in `development`', function(done) {
      var mock = createApp('development');

      request(mock.app)
        .get('/')
        .end(function(err) {
          assert.ifError(err);

          request(mock.app)
            .get('/')
            .expect(/DEFAULT LAYOUT/)
            .end(function(err) {
              assert.ifError(err);

              var filename = path.resolve(__dirname, '../example/views/layout/default.hbs');
              assert.equal(mock.readCounts[filename], 2);
              done();
            });
        });
    });

    it('should cache layout in `production` reading file once', function(done) {
      var mock = createApp('production');

      // reads layout from fs once
      request(mock.app)
        .get('/')
        .end(function(err) {
          assert.ifError(err);

          request(mock.app)
            .get('/')
            .expect(/DEFAULT LAYOUT/)
            .end(function(err, res) {
              assert.ifError(err);

              var filename = path.resolve(__dirname, '../example/views/layout/default.hbs');
              assert.equal(mock.readCounts[filename], 1);
              done();
            });
        });
    });

    it('should not cache partials in `development`', function(done) {
      var mock = createApp('development');

      request(mock.app)
        .get('/veggies')
        .expect(/just a comment/)
        .end(function(err) {
          assert.ifError(err);
          request(mock.app)
            .get('/veggies')
            .expect(/just a comment/)
            .end(function(err) {
              assert.ifError(err);

              var filename = path.resolve(__dirname, '../example/views/partials/sub/comment.hbs');
              assert.equal(mock.readCounts[filename], 2);
              done();
            });
        });
    });

    it('should cache partials in `production', function (done) {
      var mock = createApp('production');

      request(mock.app)
        .get('/veggies')
        .expect(/just a comment/)
        .end(function(err) {
          assert.ifError(err);
          request(mock.app)
            .get('/veggies')
            .expect(/just a comment/)
            .end(function(err) {
              assert.ifError(err);

              var filename = path.resolve(__dirname, '../example/views/partials/sub/comment.hbs');
              assert.equal(mock.readCounts[filename], 1);
              done();
            });
        });
    });
  });
});

Youez - 2016 - github.com/yon3zu
LinuXploit