jsperf/jsperf.com

View on GitHub
test/unit/server/web/faq/index.js

Summary

Maintainability
C
7 hrs
Test Coverage
var path = require('path');

var Lab = require('lab');
var Code = require('code');
var Hapi = require('hapi');

var HomePlugin = require('../../../../../server/web/faq/index');

var lab = exports.lab = Lab.script();
var request, server;

lab.beforeEach(function (done) {
  var plugins = [ HomePlugin ];
  server = new Hapi.Server();
  server.connection();
  server.register(require('vision'), () => {
    server.views({
      engines: {
        hbs: require('handlebars')
      },
      path: './server/web',
      layout: true,
      helpersPath: 'templates/helpers',
      partialsPath: 'templates/partials',
      relativeTo: path.join(__dirname, '..', '..', '..', '..', '..')
    });
    server.register(plugins, done);
  });
});

lab.experiment('faq', function () {
  lab.beforeEach(function (done) {
    request = {
      method: 'GET',
      url: '/faq'
    };

    done();
  });

  lab.test('it responds with the faq page', function (done) {
    server.inject(request, function (response) {
      Code.expect(response.statusCode).to.equal(200);
      Code.expect(response.result).to.include([
        'what',
        'engine',
        'script-warnings',
        'firebug-warning',
        'calibration',
        'java-applet',
        'ie9-java',
        'lion-java',
        'chrome',
        'run-single-test',
        'browserscope',
        'autorun',
        'chart-types',
        'result-filters',
        'setup-teardown',
        'async',
        'add-edit',
        'remove-snippet',
        'test-case-feed',
        'author-feed',
        'results-json',
        'test-availability',
        'additional-features'
      ]);

      done();
    });
  });

  lab.test('it shows the title specified in the route', function (done) {
    server.inject(request, function (response) {
      Code.expect(response.payload).to.include('<title>Frequently asked questions ยท jsPerf</title>');

      done();
    });
  });
});