Skip to content

Commit

Permalink
fix: pr comments
Browse files Browse the repository at this point in the history
  • Loading branch information
DonutEspresso committed May 31, 2018
1 parent 6d767f3 commit ed45de4
Showing 1 changed file with 130 additions and 110 deletions.
240 changes: 130 additions & 110 deletions test/querystring.test.js
Expand Up @@ -12,14 +12,10 @@ var clients = require('../lib');
describe('query string parameters', function () {

var SERVER;
var CLIENT;
var LOG = bunyan.createLogger({
name: 'clientlog'
});
var CLIENT = clients.createJsonClient({
url: 'http://localhost:3000',
log: LOG,
retry: false
});

beforeEach(function (done) {
SERVER = restify.createServer({
Expand All @@ -36,140 +32,164 @@ describe('query string parameters', function () {
});


it('should support default query option in constructor', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'i am default'
});
res.send(200);
return next();
});
describe('constructor time qs', function () {

CLIENT = clients.createJsonClient({
url: 'http://localhost:3000',
query: {
foo: 'i am default'
},
retry: false
});
it('should support query option', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'bar'
});
res.send(200);
return next();
});

CLIENT.get('/foo', function (err, req, res, data) {
assert.ifError(err);
assert.strictEqual(req.path, '/foo?foo=i%20am%20default');
return done();
CLIENT = clients.createJsonClient({
url: 'http://localhost:3000',
query: {
foo: 'bar'
}
});
CLIENT.get('/foo', done);
});
});


it('should support query option per request', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'bar'
it('should not support existing query in url', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {});
res.send(200);
return next();
});
res.send(200);
return next();
});

CLIENT.get({
path: '/foo',
query: {
foo: 'bar'
}
}, function (err, req, res, data) {
assert.ifError(err);
assert.strictEqual(req.path, '/foo?foo=bar');
return done();
CLIENT = clients.createJsonClient({
url: 'http://localhost:3000/foo?foo=bar'
});
CLIENT.get('/foo', done);
});
});

it('should prefer query option over query in url', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'baz'
});
res.send(200);
return next();
});

it('should override default query option per request', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
baz: 'qux'
CLIENT = clients.createJsonClient({
url: 'http://localhost:3000/foo?foo=bar',
query: {
foo: 'baz'
}
});
res.send(200);
return next();
CLIENT.get('/foo', done);
});
});

CLIENT = clients.createJsonClient({
url: 'http://localhost:3000',
query: {
foo: 'bar'
},
retry: false
});

CLIENT.get({
path: '/foo',
query: {
baz: 'qux'
}
}, function (err, req, res, data) {
assert.ifError(err);
assert.strictEqual(req.path, '/foo?baz=qux');
return done();
});
});
describe('verb time qs', function () {

it('should support query option', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'bar'
});
res.send(200);
return next();
});

it('should ignore query option if querystring exists in url',
function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
a: '1'
CLIENT = clients.createJsonClient({
url: 'http://localhost:3000'
});
res.send(200);
return next();
CLIENT.get({
path: '/foo',
query: {
foo: 'bar'
}
}, done);
});

CLIENT.get({
path: '/foo?a=1',
query: {
b: 2
}
}, function (err, req, res, data) {
assert.ifError(err);
assert.strictEqual(req.path, '/foo?a=1');
return done();
it('should support query string in path', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'bar'
});
res.send(200);
return next();
});

CLIENT = clients.createJsonClient({
url: 'http://localhost:3000'
});
CLIENT.get({
path: '/foo?foo=bar'
}, done);
});
});

it('should prefer query string in path over query option',
function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'bar'
});
res.send(200);
return next();
});

it('should prefer default query string in url over query options',
function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'baz'
CLIENT = clients.createJsonClient({
url: 'http://localhost:3000'
});
res.send(200);
return next();
CLIENT.get({
path: '/foo?foo=bar',
query: {
foo: 'baz'
}
}, done);
});
});

CLIENT = clients.createJsonClient({
url: 'http://localhost:3000/foo?foo=bar',
query: {
foo: 'baz'
}
});

CLIENT.get('/foo', done);
});
describe('constructor + verb time overrides', function () {

it('should prefer verb time query string in path over constructor ' +
'query', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'qux'
});
res.send(200);
return next();
});

it('should throw away default query string in url', function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {});
res.send(200);
return next();
CLIENT = clients.createJsonClient({
url: 'http://localhost:3000/foo?foo=bar',
query: {
foo: 'baz'
}
});
CLIENT.get('/foo?foo=qux', done);
});

CLIENT = clients.createJsonClient({
url: 'http://localhost:3000/foo?foo=bar'
});
it('should prefer verb time query option over constructor query',
function (done) {
SERVER.get('/foo', function (req, res, next) {
assert.deepEqual(req.query, {
foo: 'boop'
});
res.send(200);
return next();
});

CLIENT.get({
path: '/foo'
}, done);
CLIENT = clients.createJsonClient({
url: 'http://localhost:3000/foo?foo=bar',
query: {
foo: 'baz'
}
});
CLIENT.get({
path: '/foo',
query: {
foo: 'boop'
}
}, done);
});
});
});

0 comments on commit ed45de4

Please sign in to comment.