updated mocha-cov dependency to be custom fork that provides valuable information to coveralls, added engine info to package.json, disable styles for codeship, switched to code based pattern that is very specific since the entire es-js repo is stored withing a src directory on codeship

This commit is contained in:
Spencer Alger
2014-01-22 12:08:22 -07:00
parent 94190896b4
commit 1d991b47a8
32 changed files with 128 additions and 133 deletions

View File

@ -1,8 +1,6 @@
var unitTests = ['test/unit/test_*.js'];
module.exports = {
unit: {
src: unitTests
src: 'test/unit'
},
integration_master: {
@ -15,23 +13,21 @@ module.exports = {
// run the unit tests, and update coverage.html
make_coverage_html: {
src: unitTests,
src: 'test/unit/coverage.js',
options: {
reporter: 'html-cov',
output: 'coverage.html'
output: 'coverage.html',
instrument: false
}
},
// for use by travis
ship_coverage: {
src: unitTests,
src: 'test/unit/coverage.js',
options: {
reporter: 'mocha-lcov-reporter',
coveralls: {
serviceName: 'codeship',
serviceJobId: process.env.CI_BUILD_NUMBER,
repoToken: process.env.COVERALLS_TOKEN
}
coveralls: true,
instrument: false
}
}
};

View File

@ -1,5 +1,4 @@
var keys = require('../../test/utils/keys');
var slk = require('../../test/utils/slk');
module.exports = {
all: {
options: {
@ -8,8 +7,8 @@ module.exports = {
'http://127.0.0.1:8000/builds.html'
],
testname: process.env.CI_BUILD_NUMBER ? 'build_' + process.env.CI_BUILD_NUMBER : 'local_' + Date.now(),
username: keys.saucelabs_user,
key: keys.saucelabs,
username: slk.user,
key: slk.key,
browsers: [
{
browserName: 'chrome',

View File

@ -14,6 +14,11 @@
"./test/mocks/server.js": "./test/mocks/browser_server.js",
"lodash": "./node_modules/lodash/dist/lodash.compat.js"
},
"config": {
"blanket": {
"pattern": "specified in test/unit/coverage.js"
}
},
"devDependencies": {
"mocha": "~1.14.0",
"async": "~0.2.9",
@ -42,7 +47,7 @@
"grunt-contrib-compress": "~0.5.3",
"grunt-contrib-copy": "~0.4.1",
"grunt-prompt": "~0.1.2",
"grunt-mocha-cov": "~0.1.1",
"grunt-mocha-cov": "~0.2.0",
"grunt-open": "~0.2.2",
"glob": "~3.2.7",
"expect.js": "~0.2.0",
@ -64,11 +69,9 @@
},
"scripts": {
"test": "grunt test",
"generate": "node scripts/generate",
"blanket": {
"pattern": [
"src"
]
}
"generate": "node scripts/generate"
},
"engines": {
"node" : ">=0.8 <0.11"
}
}

View File

@ -1,16 +1,20 @@
#!/usr/bin/env bash
#####
# Start or stop a group for travis
# Start a group of log output
#####
function group {
re='start:'
if [[ $1 =~ $re ]]; then
echo -e "\n\033[4m\033[1m$1\033[0m\033[0m"
if [[ $CI_NAME = "codeship" ]]; then
style='..'
reset='..'
else
echo -e "-- $1 --\n"
style='\x1b[1m\x1b[37m\x1b[4m'
reset='\x1b[24m\x1b[39m\x1b[22m'
fi
echo -en "\n\n${style}${1}${reset}\n"
}
#####
@ -29,10 +33,8 @@ function call {
function ensure_grunt {
if [[ ! -x "`which grunt`" ]]; then
group "start:install_grunt"
echo "installing grunt-cli"
group "installing grunt"
call npm install --silent -g grunt-cli
group "end:install_grunt"
fi
}
@ -59,7 +61,7 @@ function manage_es {
local SNAPSHOTS="$ROOT/.snapshots"
local PIDS="$ROOT/.snapshots/pids"
group "start:$DO es"
group "${DO}ing es"
if [ ! -d "$PIDS" ]; then
call mkdir -p $PIDS
@ -158,5 +160,4 @@ function manage_es {
return 1
;;
esac
group "end:$DO es"
}

View File

@ -29,9 +29,9 @@ else
fi
if [[ "$NODE_UNIT" != "0" ]]; then
group "start:unit_tests"
group "running unit tests"
if [[ -n "$JENKINS" ]]; then
$MOCHA test/unit/test_*.js --reporter $MOCHA_REPORTER 2> test/junit-node-unit.xml
$MOCHA test/unit/tests/*.js --reporter $MOCHA_REPORTER 2> test/junit-node-unit.xml
if [ "$?" -gt "0" ]; then
echo "non-zero exit code: $RESULT"
cat test/junit-node-unit.xml
@ -39,15 +39,13 @@ if [[ "$NODE_UNIT" != "0" ]]; then
else
_grunt jshint mochacov:unit
fi
group "end:unit_tests"
fi
if [[ "$NODE_INTEGRATION" != "0" ]]; then
group "start:generate tests"
group "generating tests"
call node scripts/generate --no-api
group "end:generate tests"
group "start:integration tests"
group "running integration tests"
if [[ -n "$JENKINS" ]]; then
# convert TESTING_BRANCH into BRANCH_SUFFIX
if [[ $TESTING_BRANCH = 'master' ]]; then
@ -75,18 +73,15 @@ if [[ "$NODE_INTEGRATION" != "0" ]]; then
_grunt mochacov:integration_$TESTING_BRANCH
manage_es stop $TESTING_BRANCH $ES_RELEASE
fi
group "end:integration tests"
fi
if [[ "$BROWSER_UNIT" == "1" ]]; then
group "start:browser tests"
group "running browser tests"
_grunt browser_clients:build run:browser_test_server saucelabs-mocha
group "end:browser tests"
fi
if [[ "$COVERAGE" == "1" ]]; then
group "start:ship coverage"
group "shipping coverage"
ensure_grunt
grunt mochacov:ship_coverage
group "stop:ship coverage"
fi

View File

@ -1,18 +1,17 @@
#!/usr/bin/env bash
source $HOME/.nvm/nvm.sh
HERE="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source $HERE/_utils.sh
source $HOME/.nvm/nvm.sh
case $1 in
setup)
group "start: installing nvm 0.10"
group "installing nvm 0.10"
nvm install 0.10
group "end: installing nvm 0.10"
group "start: installing nvm 0.8"
group "installing nvm 0.8"
nvm install 0.8
group "end: installing nvm 0.8"
manage_es install master
manage_es install 0.90
@ -20,27 +19,21 @@ case $1 in
npm install
;;
run)
# test in node 0.8
group "start: test node 0.8"
group "test node 0.8"
nvm use 0.8
echo "rebuilding npm deps"
npm rebuild &> /dev/null
npm --silent rebuild
call ES_BRANCH=master ./scripts/ci.sh
call ES_BRANCH=0.90 ./scripts/ci.sh
group "end: test node 0.8"
# test in node 0.10
group "start: test node 0.10"
group "test node 0.10"
nvm use 0.10
echo "rebuilding npm deps"
npm rebuild &> /dev/null
npm --silent rebuild
call ES_BRANCH=master COVERAGE=1 ./scripts/ci.sh
call ES_BRANCH=0.90 ./scripts/ci.sh
group "end: test node 0.10"
# browser tests (node version irrelevant)
group "start: test browsers"
group "test browsers"
call NODE_UNIT=0 NODE_INTEGRATION=0 BROWSER_UNIT=1 ./scripts/ci.sh
group "end: test browsers"
;;
esac

5
test/unit/coverage.js Normal file
View File

@ -0,0 +1,5 @@
var blanket = require("blanket")({
pattern: require('path').join(__dirname, '../../src')
});
require('./index');

3
test/unit/index.js Normal file
View File

@ -0,0 +1,3 @@
require('fs').readdirSync(__dirname + '/tests').forEach(function (file) {
require(__dirname + '/tests/' + file);
});

View File

@ -1,11 +1,11 @@
describe('Logger Abstract', function () {
var expect = require('expect.js');
var sinon = require('sinon');
var Log = require('../../src/lib/log');
var LoggerAbstract = require('../../src/lib/logger');
var Log = require('../../../src/lib/log');
var LoggerAbstract = require('../../../src/lib/logger');
var parentLog;
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
function makeLogger(parent, levels) {
return new LoggerAbstract(parent || parentLog, {
@ -30,6 +30,6 @@ describe('Logger Abstract', function () {
});
});
require('./generic_logger_tests')(makeLogger);
require('../generic_logger_tests')(makeLogger);
});

View File

@ -1,7 +1,7 @@
describe('Client instances creation', function () {
var es = require('../../src/elasticsearch');
var api = require('../../src/lib/api');
var api090 = require('../../src/lib/api_0_90');
var es = require('../../../src/elasticsearch');
var api = require('../../../src/lib/api');
var api090 = require('../../../src/lib/api_0_90');
var expect = require('expect.js');
var client;

View File

@ -1,4 +1,4 @@
var ca = require('../../src/lib/client_action');
var ca = require('../../../src/lib/client_action');
var expect = require('expect.js');
var _ = require('lodash');
var when = require('when');

View File

@ -1,11 +1,11 @@
var ConnectionAbstract = require('../../src/lib/connection');
var Host = require('../../src/lib/host');
var ConnectionAbstract = require('../../../src/lib/connection');
var Host = require('../../../src/lib/host');
var sinon = require('sinon');
var expect = require('expect.js');
var _ = require('lodash');
var errors = require('../../src/lib/errors');
var errors = require('../../../src/lib/errors');
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
describe('Connection Abstract', function () {
var host = new Host('localhost:9200');

View File

@ -1,12 +1,12 @@
var ConnectionPool = require('../../src/lib/connection_pool');
var Host = require('../../src/lib/host');
var errors = require('../../src/lib/errors');
var ConnectionAbstract = require('../../src/lib/connection');
var ConnectionPool = require('../../../src/lib/connection_pool');
var Host = require('../../../src/lib/host');
var errors = require('../../../src/lib/errors');
var ConnectionAbstract = require('../../../src/lib/connection');
var _ = require('lodash');
var EventEmitter = require('events').EventEmitter;
var expect = require('expect.js');
var sinon = require('sinon');
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
function listenerCount(emitter, event) {
if (EventEmitter.listenerCount) {

View File

@ -1,5 +1,5 @@
var Log = require('../../src/lib/log');
var ConsoleLogger = require('../../src/lib/loggers/console');
var Log = require('../../../src/lib/log');
var ConsoleLogger = require('../../../src/lib/loggers/console');
var sinon = require('sinon');
var expect = require('expect.js');
var parentLog;
@ -20,11 +20,11 @@ function makeLogger(parent, levels) {
return new ConsoleLogger(parent, config);
}
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
describe('Console Logger', function () {
require('./generic_logger_tests')(makeLogger);
require('../generic_logger_tests')(makeLogger);
it('checks before using unique logging functions, falls back to #log()', function () {
var _warning = console.warn;

View File

@ -1,4 +1,4 @@
var errors = require('../../src/lib/errors');
var errors = require('../../../src/lib/errors');
var expect = require('expect.js');
var _ = require('lodash');

View File

@ -1,13 +1,13 @@
describe('File Logger', function () {
var Log = require('../../src/lib/log');
var FileLogger = require('../../src/lib/loggers/file');
var Log = require('../../../src/lib/log');
var FileLogger = require('../../../src/lib/loggers/file');
var once = require('events').EventEmitter.prototype.once;
var _ = require('lodash');
var parentLog;
var logger;
var expect = require('expect.js');
var fs = require('fs');
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
beforeEach(function () {
parentLog = new Log();
@ -39,7 +39,7 @@ describe('File Logger', function () {
fs.unlinkSync('test.log');
});
require('./generic_logger_tests')(makeLogger);
require('../generic_logger_tests')(makeLogger);
describe('buffer flush', function () {
if (require('stream').Writable) {

View File

@ -1,4 +1,4 @@
var Host = require('../../src/lib/host');
var Host = require('../../../src/lib/host');
var _ = require('lodash');
var expect = require('expect.js');
var url = require('url');

View File

@ -1,10 +1,10 @@
describe('Http Connector', function () {
var expect = require('expect.js');
var Host = require('../../src/lib/host');
var errors = require('../../src/lib/errors');
var HttpConnection = require('../../src/lib/connectors/http');
var ConnectionAbstract = require('../../src/lib/connection');
var Host = require('../../../src/lib/host');
var errors = require('../../../src/lib/errors');
var HttpConnection = require('../../../src/lib/connectors/http');
var ConnectionAbstract = require('../../../src/lib/connection');
var nock = require('nock');
var sinon = require('sinon');
var util = require('util');
@ -13,12 +13,12 @@ describe('Http Connector', function () {
var http = require('http');
var https = require('https');
var MockRequest = require('../mocks/request');
var MockIncommingMessage = require('../mocks/incomming_message');
var MockRequest = require('../../mocks/request');
var MockIncommingMessage = require('../../mocks/incomming_message');
nock.disableNetConnect();
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
function makeStubReqMethod(prep) {
return function (params, cb) {

View File

@ -1,8 +1,8 @@
describe('JSON serializer', function () {
var JsonSerializer = require('../../src/lib/serializers/json');
var JsonSerializer = require('../../../src/lib/serializers/json');
var expect = require('expect.js');
var sinon = require('sinon');
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
function makeSerializer() {
return new JsonSerializer();

View File

@ -1,4 +1,4 @@
var Log = require('../../src/lib/log');
var Log = require('../../../src/lib/log');
var _ = require('lodash');
var expect = require('expect.js');

View File

@ -1,9 +1,9 @@
describe('Nodes to host callback', function () {
var callback = require('../../src/lib/nodes_to_host');
var callback = require('../../../src/lib/nodes_to_host');
var expect = require('expect.js');
// example node list that would come back from "GET _cluster/nodes"
var nodes = require('../fixtures/short_node_list.json');
var nodes = require('../../fixtures/short_node_list.json');
it('properly creates host objects', function () {
var hosts = callback(nodes);

View File

@ -1,5 +1,5 @@
describe('Random Selector', function () {
var randomSelector = require('../../src/lib/selectors/random');
var randomSelector = require('../../../src/lib/selectors/random');
var _ = require('lodash');
var expect = require('expect.js');

View File

@ -1,5 +1,5 @@
describe('Round Robin Selector', function () {
var selector = require('../../src/lib/selectors/round_robin');
var selector = require('../../../src/lib/selectors/round_robin');
var _ = require('lodash');
var expect = require('expect.js');

View File

@ -1,7 +1,7 @@
describe('Stdio Logger', function () {
var Log = require('../../src/lib/log');
var StdioLogger = require('../../src/lib/loggers/stdio');
var Log = require('../../../src/lib/log');
var StdioLogger = require('../../../src/lib/loggers/stdio');
var expect = require('expect.js');
var sinon = require('sinon');
var parentLog;
@ -22,9 +22,9 @@ describe('Stdio Logger', function () {
return new StdioLogger(parent, config);
}
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
require('./generic_logger_tests')(makeLogger);
require('../generic_logger_tests')(makeLogger);
describe('colorizing', function () {
var chalk = require('chalk');

View File

@ -1,14 +1,14 @@
describe('Stream Logger', function () {
var Log = require('../../src/lib/log');
var StreamLogger = require('../../src/lib/loggers/stream');
var MockWritableStream = require('../mocks/writable_stream');
var Log = require('../../../src/lib/log');
var StreamLogger = require('../../../src/lib/loggers/stream');
var MockWritableStream = require('../../mocks/writable_stream');
var once = require('events').EventEmitter.prototype.once;
var stream = new MockWritableStream();
var _ = require('lodash');
var expect = require('expect.js');
var parentLog;
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
beforeEach(function () {
stub(stream, 'write');
@ -35,7 +35,7 @@ describe('Stream Logger', function () {
return new StreamLogger(parent, config);
}
require('./generic_logger_tests')(makeLogger);
require('../generic_logger_tests')(makeLogger);
describe('buffer flush', function () {
if (require('stream').Writable) {

View File

@ -1,7 +1,7 @@
describe('Tracer Logger', function () {
var Log = require('../../src/lib/log');
var TracerLogger = require('../../src/lib/loggers/tracer');
var Log = require('../../../src/lib/log');
var TracerLogger = require('../../../src/lib/loggers/tracer');
var sinon = require('sinon');
var expect = require('expect.js');
var parentLog;
@ -22,10 +22,10 @@ describe('Tracer Logger', function () {
return new TracerLogger(parent, config);
}
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
require('./generic_logger_tests')(makeLogger);
require('../generic_logger_tests')(makeLogger);
describe('#write', function () {
it('comments out everything accept the curlCall', function () {

View File

@ -1,13 +1,13 @@
var Transport = require('../../src/lib/transport');
var Host = require('../../src/lib/host');
var errors = require('../../src/lib/errors');
var Transport = require('../../../src/lib/transport');
var Host = require('../../../src/lib/host');
var errors = require('../../../src/lib/errors');
var when = require('when');
var sinon = require('sinon');
var expect = require('expect.js');
var _ = require('lodash');
var nodeList = require('../fixtures/short_node_list.json');
var stub = require('../utils/auto_release_stub').make();
var nodeList = require('../../fixtures/short_node_list.json');
var stub = require('../../utils/auto_release_stub').make();
/**
* Allows the tests call #request() without it doing anything past trying to select
@ -188,7 +188,7 @@ describe('Transport Class', function () {
describe('randomizeHosts options', function () {
it('calls _.shuffle be default', function () {
var _ = require('../../src/lib/utils');
var _ = require('../../../src/lib/utils');
stub(Transport.connectionPools.main.prototype, 'setHosts');
stub(_, 'shuffle');
var trans = new Transport({
@ -198,7 +198,7 @@ describe('Transport Class', function () {
expect(_.shuffle.callCount).to.eql(1);
});
it('skips the call to _.shuffle when false', function () {
var _ = require('../../src/lib/utils');
var _ = require('../../../src/lib/utils');
stub(Transport.connectionPools.main.prototype, 'setHosts');
stub(_, 'shuffle');
var trans = new Transport({
@ -447,7 +447,7 @@ describe('Transport Class', function () {
// create a test that checks N retries
function testRetries(retries) {
return function (done) {
var randomSelector = require('../../src/lib/selectors/random');
var randomSelector = require('../../../src/lib/selectors/random');
var connections;
var attempts = 0;
function failRequest(params, cb) {

View File

@ -1,14 +1,14 @@
var Transport = require('../../src/lib/transport');
var Host = require('../../src/lib/host');
var errors = require('../../src/lib/errors');
var Transport = require('../../../src/lib/transport');
var Host = require('../../../src/lib/host');
var errors = require('../../../src/lib/errors');
var when = require('when');
var expect = require('expect.js');
var sinon = require('sinon');
var nock = require('../mocks/server.js');
var nock = require('../../mocks/server.js');
var _ = require('lodash');
var nodeList = require('../fixtures/short_node_list.json');
var stub = require('../utils/auto_release_stub').make();
var nodeList = require('../../fixtures/short_node_list.json');
var stub = require('../../utils/auto_release_stub').make();
/**
* Allows the tests call #request() without it doing anything past trying to select

View File

@ -1,7 +1,7 @@
var _ = require('../../src/lib/utils');
var _ = require('../../../src/lib/utils');
var expect = require('expect.js');
var stub = require('../utils/auto_release_stub').make();
var stub = require('../../utils/auto_release_stub').make();
describe('Utils', function () {
@ -398,7 +398,7 @@ describe('Utils', function () {
});
if (require('stream').Writable) {
var MockWritableStream = require('../mocks/writable_stream');
var MockWritableStream = require('../../mocks/writable_stream');
it('ignores empty stream', function () {
var stream = new MockWritableStream();
expect(_.getUnwrittenFromStream(stream)).to.be('');

View File

@ -10,7 +10,7 @@ var browserify = require('browserify');
var pkg = require(root + '/package.json');
var testFiles = {
unit: 'test/unit/test_!(' + [
unit: 'test/unit/tests/!(' + [
'file_logger',
'http_connector',
'stdio_logger',
@ -18,7 +18,7 @@ var testFiles = {
'stream_logger',
'tracer_logger',
'transport_with_server',
].join('|') + ')*',
].join('|') + ')*.js',
build: 'test/unit/browser_builds/*.js'
};

View File

@ -1,6 +1,6 @@
// I know this is horrible
// I just don't want the keys searchable on github
module.exports = JSON.parse(new Buffer(
'eyJzYXVjZWxhYnNfdXNlciI6ImVsYXN0aWNzZWFyY2gtanMiLCJzYXVjZWxhYnMiOiIyNGY0OWUwNy1kODJmLTQwNjctODU0ZS1kODE1ZWJkMTVlNDYifQ==',
'eyJ1c2VyIjoiZWxhc3RpY3NlYXJjaC1qcyIsImtleSI6IjI0ZjQ5ZTA3LWQ4MmYtNDA2Ny04NTRlLWQ4MTVlYmQxNWU0NiJ9',
'base64'
).toString('utf8'));