Skip to content

Commit

Permalink
conditionally execute nkey authentication tests
Browse files Browse the repository at this point in the history
  • Loading branch information
aricart committed Oct 30, 2018
1 parent 1156584 commit 5a8e518
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 23 deletions.
63 changes: 47 additions & 16 deletions test/nkeys.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,35 +29,55 @@ var NATS = require('../'),
nkeys = require('ts-nkeys');


describe('Auth Basics', function() {
describe('NKEY Auth Basics', function() {

var PORT = 6588;
var server;
var userKeyPair, userSeed, userPublicKey;
var skip = false;

// Start up our own nats-server
before(function(done) {
userKeyPair = nkeys.createUser();
userSeed = userKeyPair.getSeed();
userPublicKey = userKeyPair.getPublicKey();

var conf = {
authorization: {
users: [{ nkey: userPublicKey }]
nsc.server_version(function(ver) {
console.log(ver);
ver = ver.split(".");
for (var i = 0; i < ver.length; i++) {
ver[i] = parseInt(ver[i], 10);
}
};
var cf = path.resolve(os.tmpdir(), 'conf-' + nuid.next() + '.conf');
fs.writeFile(cf, ncu.j(conf), function(err) {
if(err) {
done(err);
} else {
server = nsc.start_server(PORT, ['-c', cf], done);

skip = ver[1] < 3 && ver[2] === 0;
if (skip) {
done();
return;
}

userKeyPair = nkeys.createUser();
userSeed = userKeyPair.getSeed();
userPublicKey = userKeyPair.getPublicKey();

var conf = {
authorization: {
users: [{ nkey: userPublicKey }]
}
};
var cf = path.resolve(os.tmpdir(), 'conf-' + nuid.next() + '.conf');
fs.writeFile(cf, ncu.j(conf), function(err) {
if(err) {
done(err);
} else {
server = nsc.start_server(PORT, ['-c', cf], done);
}
});
});

});

// Shutdown our server
after(function(done) {
if(skip) {
done();
return;
}
nsc.stop_server(server, done);
});

Expand All @@ -71,8 +91,11 @@ describe('Auth Basics', function() {
}

it('sign in using nkeys', function(done) {
if (skip) {
done();
return;
}
var ah = signer(userKeyPair);

var nc = NATS.connect({
port: PORT,
authHandler: ah
Expand All @@ -87,6 +110,10 @@ describe('Auth Basics', function() {
});

it('bad user', function(done) {
if(skip) {
done();
return;
}
var kp = nkeys.createUser();
var ah = signer(kp);

Expand All @@ -104,6 +131,10 @@ describe('Auth Basics', function() {
});

it('bad handler', function(done) {
if(skip) {
done();
return;
}
var ah = {};
ah.sign = function() {
throw new Error("testing error");
Expand Down
36 changes: 29 additions & 7 deletions test/support/nats_server_control.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,15 @@ function start_server(port, opt_flags, done) {
}

var server = spawn(SERVER, flags);
// server.stderr.on('data', function (data) {
// console.log(flags.join(" "));
// var lines = data.toString().split('\n');
// lines.forEach((m) => {
// console.log(m);
// });
// });
if (process.env.PRINT_SERVER_OUTPUT) {
server.stderr.on('data', function (data) {
console.log(flags.join(" "));
var lines = data.toString().split('\n');
lines.forEach((m) => {
console.log(m);
});
});
}

var start = new Date();
var wait = 0;
Expand Down Expand Up @@ -235,3 +237,23 @@ exports.find_server = function(port, servers) {
return s.spawnargs[2] === port;
});
};

exports.server_version = function(callback) {
var server = spawn(SERVER, ['version']);
console.log('started');
server.stdout.on('data', function (data) {
var lines = data.toString().split('\n');
lines.forEach((m) => {
console.log(m);
var versionHeader = 'nats-server version ';
var start = m.indexOf(versionHeader);
if(start !== -1) {
callback(m.substr(start+versionHeader.length));
}
});
});

server.on('exit', function(code, signal) {
console.log(code, signal);
});
};

0 comments on commit 5a8e518

Please sign in to comment.