Skip to content

Commit

Permalink
jshint for tests
Browse files Browse the repository at this point in the history
  • Loading branch information
rochoa committed Mar 19, 2015
1 parent 75b1421 commit 82150c6
Show file tree
Hide file tree
Showing 19 changed files with 308 additions and 272 deletions.
3 changes: 2 additions & 1 deletion .jshintignore
@@ -1,2 +1,3 @@
test/results/
test/performance/
test/performance/
test/support/assert.js
1 change: 1 addition & 0 deletions .jshintrc
Expand Up @@ -89,6 +89,7 @@
"test": true,
"suiteTeardown": true,
"beforeEach": true,
"afterEach": true,
"before": true,
"after": true,
"describe": true,
Expand Down
2 changes: 1 addition & 1 deletion Makefile
Expand Up @@ -21,7 +21,7 @@ test:

jshint:
@echo "***jshint***"
@./node_modules/.bin/jshint lib/
@./node_modules/.bin/jshint lib/ test/

test-all: jshint test

Expand Down
137 changes: 76 additions & 61 deletions test/acceptance/attributes.js
@@ -1,17 +1,10 @@
// FLUSHALL Redis before starting
require('../support/test_helper');

var assert = require('../support/assert')
, tests = module.exports = {}
, _ = require('underscore')
, querystring = require('querystring')
, fs = require('fs')
, redis = require('redis')
, th = require('../support/test_helper')
, Step = require('step')
, mapnik = require('mapnik')
, Windshaft = require('../../lib/windshaft')
, ServerOptions = require('../support/server_options')
, http = require('http');
var assert = require('../support/assert');
var redis = require('redis');
var step = require('step');
var Windshaft = require('../../lib/windshaft');
var ServerOptions = require('../support/server_options');

suite('attributes', function() {

Expand Down Expand Up @@ -42,14 +35,10 @@ suite('attributes', function() {
]
};

checkCORSHeaders = function(res) {
var h = res.headers['access-control-allow-headers'];
assert.ok(h);
assert.equal(h, 'X-Requested-With, X-Prototype-Version, X-CSRF-Token');
var h = res.headers['access-control-allow-origin'];
assert.ok(h);
assert.equal(h, '*');
};
function checkCORSHeaders(res) {
assert.equal(res.headers['access-control-allow-headers'], 'X-Requested-With, X-Prototype-Version, X-CSRF-Token');
assert.equal(res.headers['access-control-allow-origin'], '*');
}

suiteSetup(function(done) {

Expand All @@ -66,7 +55,7 @@ suite('attributes', function() {
function(done) {

var expected_token;
Step(
step(
function do_post()
{
var next = this;
Expand All @@ -78,59 +67,62 @@ suite('attributes', function() {
}, {}, function(res, err) { next(err, res); });
},
function checkPost(err, res) {
if ( err ) throw err;
assert.ifError(err);
assert.equal(res.statusCode, 200, res.statusCode + ': ' + res.body);
// CORS headers should be sent with response
// from layergroup creation via POST
checkCORSHeaders(res);
var parsedBody = JSON.parse(res.body);
if ( expected_token ) assert.deepEqual(parsedBody, {layergroupid: expected_token, layercount: 2});
else expected_token = parsedBody.layergroupid;
if ( expected_token ) {
assert.deepEqual(parsedBody, {layergroupid: expected_token, layercount: 2});
} else {
expected_token = parsedBody.layergroupid;
}
return null;
},
function do_get_attr_0(err)
{
if ( err ) throw err;
assert.ifError(err);
var next = this;
assert.response(server, {
url: '/database/windshaft_test/layergroup/' + expected_token + '/0/attributes/1',
method: 'GET'
}, {}, function(res, err) { next(err, res); });
},
function check_error_0(err, res) {
if ( err ) throw err;
assert.equal(res.statusCode, 400, res.statusCode + ( res.statusCode != 200 ? (': ' + res.body) : '' ));
assert.ifError(err);
assert.equal(res.statusCode, 400, res.statusCode + ( res.statusCode !== 200 ? (': ' + res.body) : '' ));
var parsed = JSON.parse(res.body);
assert.equal(parsed.error, "Layer 0 has no exposed attributes");
return null;
},
function do_get_attr_1(err)
{
if ( err ) throw err;
assert.ifError(err);
var next = this;
assert.response(server, {
url: '/database/windshaft_test/layergroup/' + expected_token + '/1/attributes/1',
method: 'GET'
}, {}, function(res, err) { next(err, res); });
},
function check_attr_1(err, res) {
if ( err ) throw err;
assert.ifError(err);
assert.equal(res.statusCode, 200, res.statusCode + ': ' + res.body);
var parsed = JSON.parse(res.body);
assert.deepEqual(parsed, {"n":6});
return null;
},
function do_get_attr_1_404(err)
{
if ( err ) throw err;
assert.ifError(err);
var next = this;
assert.response(server, {
url: '/database/windshaft_test/layergroup/' + expected_token + '/1/attributes/-666',
method: 'GET'
}, {}, function(res, err) { next(err, res); });
},
function check_attr_1_404(err, res) {
if ( err ) throw err;
assert.ifError(err);
assert.equal(res.statusCode, 404, res.statusCode + ': ' + res.body);
var parsed = JSON.parse(res.body);
assert.ok(parsed.error);
Expand All @@ -140,14 +132,23 @@ suite('attributes', function() {
},
function finish(err) {
var errors = [];
if ( err ) errors.push(''+err);
redis_client.exists("map_cfg|" + expected_token, function(err, exists) {
if ( err ) errors.push(err.message);
if ( err ) {
errors.push(''+err);
}
redis_client.exists("map_cfg|" + expected_token, function(err/*, exists*/) {
if ( err ) {
errors.push(err.message);
}
//assert.ok(exists, "Missing expected token " + expected_token + " from redis");
redis_client.del("map_cfg|" + expected_token, function(err) {
if ( err ) errors.push(err.message);
if ( errors.length ) done(new Error(errors));
else done(null);
if ( err ) {
errors.push(err.message);
}
if ( errors.length ) {
done(new Error(errors));
} else {
done(null);
}
});
});
}
Expand All @@ -165,7 +166,7 @@ suite('attributes', function() {
mapconfig.layers[1].options.attributes.id = 'unexistant';
mapconfig.layers[1].options.attributes.columns = ['cartodb_id'];

Step(
step(
function do_post()
{
var next = this;
Expand All @@ -177,8 +178,8 @@ suite('attributes', function() {
}, {}, function(res, err) { next(err, res); });
},
function checkPost(err, res) {
if ( err ) throw err;
assert.equal(res.statusCode, 404, res.statusCode + ': ' + (res.statusCode==200?'...':res.body));
assert.ifError(err);
assert.equal(res.statusCode, 404, res.statusCode + ': ' + (res.statusCode===200?'...':res.body));
var parsed = JSON.parse(res.body);
assert.ok(parsed.errors);
assert.equal(parsed.errors.length, 1);
Expand All @@ -195,7 +196,7 @@ suite('attributes', function() {
test("can be used with jsonp", function(done) {

var expected_token;
Step(
step(
function do_post()
{
var next = this;
Expand All @@ -207,19 +208,22 @@ suite('attributes', function() {
}, {}, function(res, err) { next(err, res); });
},
function checkPost(err, res) {
if ( err ) throw err;
assert.ifError(err);
assert.equal(res.statusCode, 200, res.statusCode + ': ' + res.body);
// CORS headers should be sent with response
// from layergroup creation via POST
checkCORSHeaders(res);
var parsedBody = JSON.parse(res.body);
if ( expected_token ) assert.deepEqual(parsedBody, {layergroupid: expected_token, layercount: 2});
else expected_token = parsedBody.layergroupid;
if ( expected_token ) {
assert.deepEqual(parsedBody, {layergroupid: expected_token, layercount: 2});
} else {
expected_token = parsedBody.layergroupid;
}
return null;
},
function do_get_attr_0(err)
{
if ( err ) throw err;
assert.ifError(err);
var next = this;
assert.response(server, {
url: '/database/windshaft_test/layergroup/' + expected_token +
Expand All @@ -228,38 +232,47 @@ suite('attributes', function() {
}, {}, function(res, err) { next(err, res); });
},
function check_error_0(err, res) {
if ( err ) throw err;
assert.ifError(err);
// jsonp errors should be returned with HTTP status 200
assert.equal(res.statusCode, 200, res.statusCode + ': ' + res.body);
assert.equal(res.body, 'test({"error":"Layer 0 has no exposed attributes"});');
return null;
},
function do_get_attr_1(err)
{
if ( err ) throw err;
assert.ifError(err);
var next = this;
assert.response(server, {
url: '/database/windshaft_test/layergroup/' + expected_token + '/1/attributes/1',
method: 'GET'
}, {}, function(res, err) { next(err, res); });
},
function check_attr_1(err, res) {
if ( err ) throw err;
assert.ifError(err);
assert.equal(res.statusCode, 200, res.statusCode + ': ' + res.body);
var parsed = JSON.parse(res.body);
assert.deepEqual(parsed, {"n":6});
return null;
},
function finish(err) {
var errors = [];
if ( err ) errors.push(''+err);
redis_client.exists("map_cfg|" + expected_token, function(err, exists) {
if ( err ) errors.push(err.message);
if ( err ) {
errors.push(''+err);
}
redis_client.exists("map_cfg|" + expected_token, function(err/*, exists*/) {
if ( err ) {
errors.push(err.message);
}
//assert.ok(exists, "Missing expected token " + expected_token + " from redis");
redis_client.del("map_cfg|" + expected_token, function(err) {
if ( err ) errors.push(err.message);
if ( errors.length ) done(new Error(errors));
else done(null);
if ( err ) {
errors.push(err.message);
}
if ( errors.length ) {
done(new Error(errors));
} else {
done(null);
}
});
});
}
Expand All @@ -278,8 +291,7 @@ suite('attributes', function() {
", test_table_inserter(st_setsrid(st_point(0,0),4326),'write') as w";
mapconfig.layers[1].options.attributes.columns.push('w');

var expected_token;
Step(
step(
function do_post()
{
var next = this;
Expand All @@ -291,9 +303,9 @@ suite('attributes', function() {
}, {}, function(res, err) { next(err, res); });
},
function checkPost(err, res) {
if ( err ) throw err;
assert.ifError(err);
// TODO: should be 403 Forbidden
assert.equal(res.statusCode, 400, res.statusCode + ': ' + (res.statusCode==200?'...':res.body));
assert.equal(res.statusCode, 400, res.statusCode + ': ' + (res.statusCode===200?'...':res.body));
var parsed = JSON.parse(res.body);
assert.ok(parsed.errors);
assert.equal(parsed.errors.length, 1);
Expand All @@ -320,8 +332,11 @@ suite('attributes', function() {
try {
assert.equal(matches.length, 0, "Left over redis keys:\n" + matches.join("\n"));
} catch (err2) {
if ( err ) err.message += '\n' + err2.message;
else err = err2;
if ( err ) {
err.message += '\n' + err2.message;
} else {
err = err2;
}
}
redis_client.flushall(function() {
done(err);
Expand Down

0 comments on commit 82150c6

Please sign in to comment.