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); }); }); });