kvao.suite.js 1.04 KB
'use strict';

var debug = require('debug')('test');
var extend = require('util')._extend;
var fs = require('fs');
var path = require('path');

if (!global.Promise)
  global.Promise = require('bluebird');

module.exports = function(dataSourceFactory, connectorCapabilities) {
  connectorCapabilities = extend({
    // Even when the backend supports millisecond precision,
    // it's better to use intervals at least 10ms long in the tests
    ttlPrecision: 10,
  }, connectorCapabilities);

  describe('KeyValue API', function loadAllTestFiles() {
    var testRoot = path.resolve(__dirname, 'kvao');
    var testFiles = fs.readdirSync(testRoot);
    testFiles = testFiles.filter(function(it) {
      return !!require.extensions[path.extname(it).toLowerCase()] &&
        /\.suite\.[^.]+$/.test(it);
    });

    for (var ix in testFiles) {
      var name = testFiles[ix];
      var fullPath = path.resolve(testRoot, name);
      debug('Loading test suite %s (%s)', name, fullPath);
      require(fullPath)(dataSourceFactory, connectorCapabilities);
    }
  });
};