blob: 8e899cd1e8ecdd12412029b51574cad48d8feb53 [file] [log] [blame]
var expect = require("chai").expect;
var fs = require("fs");
var split_ca = require("../index.js");
describe('split', function(){
var emptyFile = "test/certs/empty.ca";
var missingFile = "test/certs/missing.ca";
var unreadableFile = "test/certs/unreadable.ca";
var garbageFile = "test/certs/garbage.ca";
var ca0file = "test/certs/split0.ca";
var ca1file = "test/certs/split1.ca";
var caBundleFile = "test/certs/test-chain.bundle";
var ca0 = fs.readFileSync(ca0file,"utf8").toString().replace(/\n$/, '');
var ca1 = fs.readFileSync(ca1file,"utf8").toString().replace(/\n$/, '');
describe('multiple ca chain', function(){
it('should return an array of CA chain strings', function(){
var split = split_ca(caBundleFile);
expect(split).to.be.an("array");
expect(split).to.have.members([ca0, ca1]);
});
});
describe('single ca chain', function(){
it('should return an array of one CA string', function(){
var split = split_ca(ca1file);
expect(split).to.be.an("array");
expect(split).to.have.members([ca1]);
expect(split).to.not.have.members([ca0]);
});
});
describe('empty file', function(){
it('should throw a bad file error', function(){
expect(function(){split_ca(emptyFile)}).to.throw(Error);
});
});
describe('directory instead of file', function(){
it('should throw a bad file error', function(){
expect(function(){split_ca(unreadableFile)}).to.throw(Error);
});
});
describe('garbage file', function(){
it('should throw a bad file error', function(){
expect(function(){ split_ca(garbageFile)}).to.throw(Error);
});
});
});