diff options
| author | Nick Merwin <[email protected]> | 2019-11-20 17:13:11 -0800 |
|---|---|---|
| committer | Nick Merwin <[email protected]> | 2019-11-20 17:13:11 -0800 |
| commit | 0d13be9cc7c7d5a5d34f0dee2fd905f8c05ec955 (patch) | |
| tree | c4c5fa95d4b722561e7b39528a849dea290161d2 /test | |
| parent | 0a351ed14539fa5f1e9d243a887675bfd3f80790 (diff) | |
| parent | 336123fe05e7f80d79fc8522b4ff21a60fffe77c (diff) | |
| download | node-coveralls-0d13be9cc7c7d5a5d34f0dee2fd905f8c05ec955.tar.xz node-coveralls-0d13be9cc7c7d5a5d34f0dee2fd905f8c05ec955.zip | |
Merge branch 'master' of https://github.com/nickmerwin/node-coveralls
Diffstat (limited to 'test')
| -rw-r--r-- | test/convertLcovToCoveralls.js | 177 | ||||
| -rw-r--r-- | test/detectLocalGit.js | 90 | ||||
| -rw-r--r-- | test/fetchGitData.js | 204 | ||||
| -rw-r--r-- | test/getOptions.js | 744 | ||||
| -rw-r--r-- | test/handleInput.js | 110 | ||||
| -rw-r--r-- | test/logger.js | 25 | ||||
| -rw-r--r-- | test/sendToCoveralls.js | 67 |
7 files changed, 764 insertions, 653 deletions
diff --git a/test/convertLcovToCoveralls.js b/test/convertLcovToCoveralls.js index 7ab6d18..2cfc856 100644 --- a/test/convertLcovToCoveralls.js +++ b/test/convertLcovToCoveralls.js @@ -1,142 +1,146 @@ -var convertLcovToCoveralls = require('../index').convertLcovToCoveralls; -var getOptions = require('../index').getOptions; -var should = require('should'); -var fs = require('fs'); -var logger = require('../lib/logger'); -var path = require('path'); -logger = require('log-driver')({level : false}); - -describe("convertLcovToCoveralls", function(){ - it ("should convert a simple lcov file", function(done){ +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const should = require('should'); +const logDriver = require('log-driver'); +const { convertLcovToCoveralls, getOptions } = require('..'); + +logDriver({ level: false }); + +describe('convertLcovToCoveralls', () => { + it('should convert a simple lcov file', done => { delete process.env.TRAVIS; - var lcovpath = path.join(__dirname, "/../fixtures/onefile.lcov"); - var input = fs.readFileSync(lcovpath, "utf8"); - var libpath = path.join(__dirname, "/../fixtures/lib"); - convertLcovToCoveralls(input, {filepath: libpath}, function(err, output){ + const lcovpath = path.join(__dirname, '/../fixtures/onefile.lcov'); + const input = fs.readFileSync(lcovpath, 'utf8'); + const libpath = path.join(__dirname, '/../fixtures/lib'); + convertLcovToCoveralls(input, { filepath: libpath }, (err, output) => { should.not.exist(err); - output.source_files[0].name.should.equal("index.js"); - output.source_files[0].source.split("\n").length.should.equal(173); + output.source_files[0].name.should.equal('index.js'); + output.source_files[0].source.split('\n').length.should.equal(173); output.source_files[0].coverage[54].should.equal(0); output.source_files[0].coverage[60].should.equal(0); done(); }); }); - it ("should pass on all appropriate parameters from the environment", function(done){ + it('should pass on all appropriate parameters from the environment', done => { delete process.env.TRAVIS; - process.env.COVERALLS_GIT_COMMIT = "GIT_HASH"; - process.env.COVERALLS_GIT_BRANCH = "master"; - process.env.COVERALLS_SERVICE_NAME = "SERVICE_NAME"; - process.env.COVERALLS_SERVICE_JOB_ID = "SERVICE_JOB_ID"; - process.env.COVERALLS_REPO_TOKEN = "REPO_TOKEN"; - process.env.CI_PULL_REQUEST = "https://github.com/fake/fake/pulls/123"; - process.env.COVERALLS_PARALLEL = "true"; - - getOptions(function(err, options){ - var lcovpath = path.join(__dirname, "/../fixtures/onefile.lcov"); - var input = fs.readFileSync(lcovpath, "utf8"); - var libpath = "fixtures/lib"; + process.env.COVERALLS_GIT_COMMIT = 'GIT_HASH'; + process.env.COVERALLS_GIT_BRANCH = 'master'; + process.env.COVERALLS_SERVICE_NAME = 'SERVICE_NAME'; + process.env.COVERALLS_SERVICE_JOB_ID = 'SERVICE_JOB_ID'; + process.env.COVERALLS_REPO_TOKEN = 'REPO_TOKEN'; + process.env.CI_PULL_REQUEST = 'https://github.com/fake/fake/pulls/123'; + process.env.COVERALLS_PARALLEL = 'true'; + + getOptions((err, options) => { + const lcovpath = path.join(__dirname, '/../fixtures/onefile.lcov'); + const input = fs.readFileSync(lcovpath, 'utf8'); + const libpath = 'fixtures/lib'; + + should.not.exist(err); options.filepath = libpath; - convertLcovToCoveralls(input, options, function(err, output){ + convertLcovToCoveralls(input, options, (err, output) => { should.not.exist(err); - output.service_pull_request.should.equal("123"); + output.service_pull_request.should.equal('123'); output.parallel.should.equal(true); //output.git.should.equal("GIT_HASH"); done(); }); }); }); - it ("should work with a relative path as well", function(done){ + it('should work with a relative path as well', done => { delete process.env.TRAVIS; - var lcovpath = path.join(__dirname, "/../fixtures/onefile.lcov"); - var input = fs.readFileSync(lcovpath, "utf8"); - var libpath = "fixtures/lib"; - convertLcovToCoveralls(input, {filepath: libpath}, function(err, output){ + const lcovpath = path.join(__dirname, '/../fixtures/onefile.lcov'); + const input = fs.readFileSync(lcovpath, 'utf8'); + const libpath = 'fixtures/lib'; + convertLcovToCoveralls(input, { filepath: libpath }, (err, output) => { should.not.exist(err); - output.source_files[0].name.should.equal("index.js"); - output.source_files[0].source.split("\n").length.should.equal(173); + output.source_files[0].name.should.equal('index.js'); + output.source_files[0].source.split('\n').length.should.equal(173); done(); }); }); - it ("should convert absolute input paths to relative", function(done){ + it('should convert absolute input paths to relative', done => { delete process.env.TRAVIS; - var lcovpath = path.join(__dirname, "/../fixtures/istanbul.lcov"); - var input = fs.readFileSync(lcovpath, "utf8"); - var libpath = "/Users/deepsweet/Dropbox/projects/svgo/lib"; - var sourcepath = path.resolve(libpath, "svgo/config.js"); + const lcovpath = path.join(__dirname, '/../fixtures/istanbul.lcov'); + const input = fs.readFileSync(lcovpath, 'utf8'); + const libpath = '/Users/deepsweet/Dropbox/projects/svgo/lib'; + const sourcepath = path.resolve(libpath, 'svgo/config.js'); - var originalReadFileSync = fs.readFileSync; - fs.readFileSync = function(filepath) { + const originalReadFileSync = fs.readFileSync; + fs.readFileSync = (filepath, ...args) => { if (filepath === sourcepath) { return ''; } - return originalReadFileSync.apply(fs, arguments); + return originalReadFileSync.apply(fs, args); }; - var originalExistsSync = fs.existsSync; - fs.existsSync = function () { return true; }; + const originalExistsSync = fs.existsSync; + fs.existsSync = () => true; - convertLcovToCoveralls(input, {filepath: libpath}, function(err, output){ + convertLcovToCoveralls(input, { filepath: libpath }, (err, output) => { fs.readFileSync = originalReadFileSync; fs.existsSync = originalExistsSync; should.not.exist(err); - output.source_files[0].name.should.equal(path.posix.join("svgo", "config.js")); + output.source_files[0].name.should.equal(path.join("svgo", "config.js")); done(); }); }); - it ("should handle branch coverage data", function(done){ + it('should handle branch coverage data', done => { process.env.TRAVIS_JOB_ID = -1; - var lcovpath = path.join(__dirname, "/../fixtures/istanbul.lcov"); - var input = fs.readFileSync(lcovpath, "utf8"); - var libpath = "/Users/deepsweet/Dropbox/projects/svgo/lib"; - var sourcepath = path.resolve(libpath, "svgo/config.js"); + const lcovpath = path.join(__dirname, '/../fixtures/istanbul.lcov'); + const input = fs.readFileSync(lcovpath, 'utf8'); + const libpath = '/Users/deepsweet/Dropbox/projects/svgo/lib'; + const sourcepath = path.resolve(libpath, 'svgo/config.js'); - var originalReadFileSync = fs.readFileSync; - fs.readFileSync = function(filepath) { + const originalReadFileSync = fs.readFileSync; + fs.readFileSync = (filepath, ...args) => { if (filepath === sourcepath) { return ''; } - return originalReadFileSync.apply(fs, arguments); + return originalReadFileSync.apply(fs, args); }; - var originalExistsSync = fs.existsSync; - fs.existsSync = function () { return true; }; + const originalExistsSync = fs.existsSync; + fs.existsSync = () => true; - convertLcovToCoveralls(input, {filepath: libpath}, function(err, output){ + convertLcovToCoveralls(input, { filepath: libpath }, (err, output) => { fs.readFileSync = originalReadFileSync; fs.existsSync = originalExistsSync; - + should.not.exist(err); - output.source_files[0].branches.slice(0,8).should.eql([18,1,0,85,18,1,1,2]); + output.source_files[0].branches.slice(0, 8).should.eql([18, 1, 0, 85, 18, 1, 1, 2]); done(); }); }); - it ("should ignore files that do not exists", function(done){ + it('should ignore files that do not exists', done => { delete process.env.TRAVIS; - var lcovpath = path.join(__dirname, "/../fixtures/istanbul.lcov"); - var input = fs.readFileSync(lcovpath, "utf8"); - var libpath = "/Users/deepsweet/Dropbox/projects/svgo/lib"; - var sourcepath = path.resolve(libpath, "svgo/config.js"); + const lcovpath = path.join(__dirname, '/../fixtures/istanbul.lcov'); + const input = fs.readFileSync(lcovpath, 'utf8'); + const libpath = '/Users/deepsweet/Dropbox/projects/svgo/lib'; + const sourcepath = path.resolve(libpath, 'svgo/config.js'); - var originalReadFileSync = fs.readFileSync; - fs.readFileSync = function(filepath) { + const originalReadFileSync = fs.readFileSync; + fs.readFileSync = (filepath, ...args) => { if (filepath === sourcepath) { return ''; } - return originalReadFileSync.apply(fs, arguments); + return originalReadFileSync.apply(fs, args); }; - var originalExistsSync = fs.existsSync; - fs.existsSync = function () { return false; }; + const originalExistsSync = fs.existsSync; + fs.existsSync = () => false; - convertLcovToCoveralls(input, {filepath: libpath}, function(err, output){ + convertLcovToCoveralls(input, { filepath: libpath }, (err, output) => { fs.readFileSync = originalReadFileSync; fs.existsSync = originalExistsSync; @@ -146,33 +150,32 @@ describe("convertLcovToCoveralls", function(){ }); }); - it ("should parse file paths concatenated by typescript and ng 2", function(done) { + it('should parse file paths concatenated by typescript and ng 2', done => { process.env.TRAVIS_JOB_ID = -1; - var lcovpath = path.join(__dirname, "/../fixtures/istanbul.remap.lcov"); - var input = fs.readFileSync(lcovpath, "utf8"); - var libpath = "/Users/deepsweet/Dropbox/projects/svgo/lib"; - var sourcepath = path.resolve(libpath, "svgo/config.js"); + const lcovpath = path.join(__dirname, '/../fixtures/istanbul.remap.lcov'); + const input = fs.readFileSync(lcovpath, 'utf8'); + const libpath = '/Users/deepsweet/Dropbox/projects/svgo/lib'; + const sourcepath = path.resolve(libpath, 'svgo/config.js'); - var originalReadFileSync = fs.readFileSync; - fs.readFileSync = function(filepath) { + const originalReadFileSync = fs.readFileSync; + fs.readFileSync = (filepath, ...args) => { if (filepath === sourcepath) { return ''; } - return originalReadFileSync.apply(fs, arguments); + return originalReadFileSync.apply(fs, args); }; - var originalExistsSync = fs.existsSync; - fs.existsSync = function () { return true; }; + const originalExistsSync = fs.existsSync; + fs.existsSync = () => true; - convertLcovToCoveralls(input, {filepath: libpath}, function(err, output){ + convertLcovToCoveralls(input, { filepath: libpath }, (err, output) => { fs.readFileSync = originalReadFileSync; fs.existsSync = originalExistsSync; should.not.exist(err); - output.source_files[0].name.should.equal(path.posix.join("svgo", "config.js")); + output.source_files[0].name.should.equal(path.join('svgo', 'config.js')); done(); }); }); - }); diff --git a/test/detectLocalGit.js b/test/detectLocalGit.js index bc3158c..5a6fc7d 100644 --- a/test/detectLocalGit.js +++ b/test/detectLocalGit.js @@ -1,71 +1,67 @@ -var should = require('should'); -var fs = require('fs'); -var path = require('path'); +'use strict'; -var detectLocalGit = require('../lib/detectLocalGit'); +const fs = require('fs'); +const path = require('path'); +const should = require('should'); -var ORIGINAL_CWD = process.cwd(); -var TEST_DIR = path.resolve(__dirname); -var TEMP_GIT_DIR = path.join(TEST_DIR, '.git'); +const detectLocalGit = require('../lib/detectLocalGit'); -describe("detectLocalGit", function() { +const ORIGINAL_CWD = process.cwd(); +const TEST_DIR = path.resolve(__dirname); +const TEMP_GIT_DIR = path.join(TEST_DIR, '.git'); - before(function() { - _makeTempGitDir(); - process.chdir(TEST_DIR); - }); - - after(function() { - _cleanTempGitDir(); - process.chdir(ORIGINAL_CWD); - }); +describe('detectLocalGit', () => { + before(() => { + _makeTempGitDir(); + process.chdir(TEST_DIR); + }); - it('should get commit hash from packed-refs when refs/heads/master does not exist', function() { - var results = detectLocalGit(); - should.exist(results); - (results).should.deepEqual({ - git_commit: '0000000000000000ffffffffffffffffffffffff', - git_branch: 'master' - }); + after(() => { + _cleanTempGitDir(); + process.chdir(ORIGINAL_CWD); + }); + + it('should get commit hash from packed-refs when refs/heads/master does not exist', () => { + const results = detectLocalGit(); + should.exist(results); + (results).should.deepEqual({ + git_commit: '0000000000000000ffffffffffffffffffffffff', + git_branch: 'master' }); - + }); }); function _makeTempGitDir() { + _cleanTempGitDir(); - _cleanTempGitDir(); - - var dir = TEMP_GIT_DIR; - - fs.mkdirSync(dir); + const dir = TEMP_GIT_DIR; - var HEAD = path.join(dir, 'HEAD'); - var packedRefs = path.join(dir, 'packed-refs'); + fs.mkdirSync(dir); - fs.writeFileSync(HEAD, 'ref: refs/heads/master'); - fs.writeFileSync(packedRefs, "" + -"# pack-refs with: peeled fully-peeled\n" + -"0000000000000000000000000000000000000000 refs/heads/other/ref\n" + -"0000000000000000ffffffffffffffffffffffff refs/heads/master\n" + -"ffffffffffffffffffffffffffffffffffffffff refs/remotes/origin/other\n"); + const HEAD = path.join(dir, 'HEAD'); + const packedRefs = path.join(dir, 'packed-refs'); + fs.writeFileSync(HEAD, 'ref: refs/heads/master'); + fs.writeFileSync(packedRefs, '' + +'# pack-refs with: peeled fully-peeled\n' + +'0000000000000000000000000000000000000000 refs/heads/other/ref\n' + +'0000000000000000ffffffffffffffffffffffff refs/heads/master\n' + +'ffffffffffffffffffffffffffffffffffffffff refs/remotes/origin/other\n'); } function _cleanTempGitDir() { - _deleteFolderRecursive(TEMP_GIT_DIR); + _deleteFolderRecursive(TEMP_GIT_DIR); } function _deleteFolderRecursive(dir) { - - if (!dir.includes(path.normalize('node-coveralls/test'))) { - throw new Error('Tried to clean a temp git directory that did not match path: ' + path.normalize('node-coveralls/test')); + if (!dir.match('node-coveralls/test')) { + throw new Error('Tried to clean a temp git directory that did not match path: node-coveralls/test'); } - if(fs.existsSync(dir)) { - - fs.readdirSync(dir).forEach(function(file,index){ - var curPath = path.join(dir, file); - if(fs.lstatSync(curPath).isDirectory()) { // recurse + if (fs.existsSync(dir)) { + fs.readdirSync(dir).forEach(file => { + const curPath = path.join(dir, file); + if (fs.lstatSync(curPath).isDirectory()) { // recurse _deleteFolderRecursive(curPath); } else { // delete file fs.unlinkSync(curPath); diff --git a/test/fetchGitData.js b/test/fetchGitData.js index 012e129..f15b179 100644 --- a/test/fetchGitData.js +++ b/test/fetchGitData.js @@ -1,179 +1,189 @@ -var should = require('should'); -var fetchGitData = require('../lib/fetchGitData'); -var getOptions = require('../index').getOptions; +'use strict'; -describe("fetchGitData", function(){ - beforeEach(function(){ - process.env = {PATH: process.env.PATH}; +const should = require('should'); +const fetchGitData = require('../lib/fetchGitData'); +const { getOptions } = require('..'); + +describe('fetchGitData', () => { + beforeEach(() => { + process.env = { PATH: process.env.PATH }; }); - it("should throw an error when no data is passed", function() { + it('should throw an error when no data is passed', () => { fetchGitData.should.throw(/fetchGitData requires a callback/); }); - it('should throw an error when no git context is provided', function(done) { - fetchGitData(undefined, function(err){ + it('should throw an error when no git context is provided', done => { + fetchGitData(undefined, err => { err.should.match(/No options passed/); done(); }); }); - it("should throw an error if no head is provided", function(done) { + it('should throw an error if no head is provided', done => { fetchGitData({ - }, function(err){ + }, err => { err.should.match(/You must provide the head/); done(); }); }); - it("should throw an error if no head.id is provided", function(done) { + it('should throw an error if no head.id is provided', done => { fetchGitData({ head: {} - }, function(err){ + }, err => { err.should.match(/You must provide the head.id/); done(); }); }); - it("should return default values", function(done) { - var options = fetchGitData({ + it('should return default values', done => { + fetchGitData({ head: { - id: "COMMIT_HASH" + id: 'COMMIT_HASH' } - }, function(err, options){ + }, (err, options) => { + should.not.exist(err); options.should.eql({ - "head": { - "id": "COMMIT_HASH", - "author_name": "Unknown Author", - "author_email": "", - "committer_name": "Unknown Committer", - "committer_email": "", - "message": "Unknown Commit Message" + 'head': { + 'id': 'COMMIT_HASH', + 'author_name': 'Unknown Author', + 'author_email': '', + 'committer_name': 'Unknown Committer', + 'committer_email': '', + 'message': 'Unknown Commit Message' }, - "branch": "", - "remotes": [] + 'branch': '', + 'remotes': [] }); done(); }); }); - it("should override default values", function(done) { - var options = fetchGitData({ - "head": { - "id": "COMMIT_HASH", - "author_name": "MY AUTHOR", - "author_email": "", - "committer_name": "MY COMMITTER", - "committer_email": "", - "message": "MY COMMIT MESSAGE" + it('should override default values', done => { + fetchGitData({ + 'head': { + 'id': 'COMMIT_HASH', + 'author_name': 'MY AUTHOR', + 'author_email': '', + 'committer_name': 'MY COMMITTER', + 'committer_email': '', + 'message': 'MY COMMIT MESSAGE' }, - "branch": "TEST", - "remotes": [ + 'branch': 'TEST', + 'remotes': [ { - "name": "TEST", - "url": "test-url" + 'name': 'TEST', + 'url': 'test-url' } ] - }, function(err, options){ + }, (err, options) => { + should.not.exist(err); options.should.eql({ - "head": { - "id": "COMMIT_HASH", - "author_name": "MY AUTHOR", - "author_email": "", - "committer_name": "MY COMMITTER", - "committer_email": "", - "message": "MY COMMIT MESSAGE" + 'head': { + 'id': 'COMMIT_HASH', + 'author_name': 'MY AUTHOR', + 'author_email': '', + 'committer_name': 'MY COMMITTER', + 'committer_email': '', + 'message': 'MY COMMIT MESSAGE' }, - "branch": "TEST", - "remotes": [ + 'branch': 'TEST', + 'remotes': [ { - "name": "TEST", - "url": "test-url" + 'name': 'TEST', + 'url': 'test-url' } ] }); done(); }); }); - it("should convert git.branch to a string", function(done) { + it('should convert git.branch to a string', done => { fetchGitData({ - "head": { - "id": "COMMIT_HASH" + 'head': { + 'id': 'COMMIT_HASH' }, - "branch": { - "covert": "to a string" + 'branch': { + 'covert': 'to a string' } - }, function(err, str){ + }, (err, str) => { + should.not.exist(err); str.branch.should.be.String(); fetchGitData({ - "head": { - "id": "COMMIT_HASH" + 'head': { + 'id': 'COMMIT_HASH' }, - "branch": ["convert", "to", "a", "string"] - }, function(err, str){ + 'branch': ['convert', 'to', 'a', 'string'] + }, (err, str) => { + should.not.exist(err); str.branch.should.be.String(); done(); }); }); }); - it("should convert git.remotes to an array", function(done) { + it('should convert git.remotes to an array', done => { fetchGitData({ - "head": { - "id": "COMMIT_HASH" + 'head': { + 'id': 'COMMIT_HASH' }, - "remotes": "convert from string to an array" - }, function(err, arr){ + 'remotes': 'convert from string to an array' + }, (err, arr) => { + should.not.exist(err); arr.remotes.should.be.instanceof(Array); fetchGitData({ - "head": { - "id": "COMMIT_HASH" + 'head': { + 'id': 'COMMIT_HASH' }, - "remotes": { - "convert": "from object to an array" + 'remotes': { + 'convert': 'from object to an array' } - }, function(err, arr){ + }, (err, arr) => { + should.not.exist(err); arr.remotes.should.be.instanceof(Array); done(); }); }); }); - it("should save passed remotes", function(done) { + it('should save passed remotes', done => { fetchGitData({ - "head": { - "id": "COMMIT_HASH" + 'head': { + 'id': 'COMMIT_HASH' }, - "remotes": [ + 'remotes': [ { - "name": "test", - "url": "https://my.test.url" + 'name': 'test', + 'url': 'https://my.test.url' } ] - }, function(err, options){ + }, (err, options) => { + should.not.exist(err); options.should.eql({ - "head": { - "id": "COMMIT_HASH", - "author_name": "Unknown Author", - "author_email": "", - "committer_name": "Unknown Committer", - "committer_email": "", - "message": "Unknown Commit Message" + 'head': { + 'id': 'COMMIT_HASH', + 'author_name': 'Unknown Author', + 'author_email': '', + 'committer_name': 'Unknown Committer', + 'committer_email': '', + 'message': 'Unknown Commit Message' }, - "branch": "", - "remotes": [ + 'branch': '', + 'remotes': [ { - "name": "test", - "url": "https://my.test.url" + 'name': 'test', + 'url': 'https://my.test.url' } ] }); done(); }); }); - it("should execute git commands when a valid commit hash is given", function(done) { - process.env.COVERALLS_GIT_COMMIT = "HEAD"; - process.env.COVERALLS_GIT_BRANCH = "master"; - getOptions(function(err, options){ + it('should execute git commands when a valid commit hash is given', done => { + process.env.COVERALLS_GIT_COMMIT = 'HEAD'; + process.env.COVERALLS_GIT_BRANCH = 'master'; + getOptions((err, options) => { + should.not.exist(err); options = options.git; options.head.should.be.Object(); - options.head.author_name.should.not.equal("Unknown Author"); - options.head.committer_name.should.not.equal("Unknown Committer"); - options.head.message.should.not.equal("Unknown Commit Message"); + options.head.author_name.should.not.equal('Unknown Author'); + options.head.committer_name.should.not.equal('Unknown Committer'); + options.head.message.should.not.equal('Unknown Commit Message'); options.branch.should.be.String(); - options.should.have.property("remotes"); + options.should.have.property('remotes'); options.remotes.should.be.instanceof(Array); options.remotes.length.should.be.above(0); done(); diff --git a/test/getOptions.js b/test/getOptions.js index e79abc7..8e9e758 100644 --- a/test/getOptions.js +++ b/test/getOptions.js @@ -1,608 +1,706 @@ -var should = require('should'); -var index = require('../index'); -var getOptions = index.getOptions; -var getBaseOptions = index.getBaseOptions; +'use strict'; -describe("getBaseOptions", function(){ - beforeEach(function(){ - process.env = {PATH: process.env.PATH}; +const fs = require('fs'); +const path = require('path'); +const should = require('should'); +const yaml = require('js-yaml'); +const index = require('..'); + +const { getOptions, getBaseOptions } = index; + +describe('getBaseOptions', () => { + beforeEach(() => { + process.env = { PATH: process.env.PATH }; }); - it ("should set service_job_id if it exists", function(done){ + it('should set service_job_id if it exists', done => { testServiceJobId(getBaseOptions, done); }); - it ("should set git hash if it exists", function(done){ + it('should set git hash if it exists', done => { testGitHash(getBaseOptions, done); }); - it ("should set git branch if it exists", function(done){ + it('should set git branch if it exists', done => { testGitBranch(getBaseOptions, done); }); - it ("should detect current git hash if not passed in", function(done) { + it('should detect current git hash if not passed in', done => { testGitHashDetection(getBaseOptions, done); }); - it ("should detect current git branch if not passed in", function(done) { + it('should detect current git branch if not passed in', done => { testGitBranchDetection(getBaseOptions, done); }); - it ("should detect detached git head if no hash passed in", function(done) { + it('should detect detached git head if no hash passed in', done => { testGitDetachedHeadDetection(getBaseOptions, done); }); - it ("should fail local Git detection if no .git directory", function(done) { + it('should fail local Git detection if no .git directory', done => { testNoLocalGit(getBaseOptions, done); }); - it ("should set repo_token if it exists", function(done){ + it('should set repo_token if it exists', done => { testRepoToken(getBaseOptions, done); }); - it ("should detect repo_token if not passed in", function(done){ + it('should detect repo_token if not passed in', done => { testRepoTokenDetection(getBaseOptions, done); }); - it ("should set service_name if it exists", function(done){ + it('should set service_name if it exists', done => { testServiceName(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on travis-ci", function(done){ + it('should set service_name and service_job_id if it\'s running on travis-ci', done => { testTravisCi(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on jenkins", function(done){ + it('should set service_name and service_job_id if it\'s running on jenkins', done => { testJenkins(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on circleci", function(done){ + it('should set service_name and service_job_id if it\'s running on circleci', done => { testCircleCi(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on codeship", function(done){ + it('should set service_name and service_job_id if it\'s running on codeship', done => { testCodeship(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on drone", function(done){ + it('should set service_name and service_job_id if it\'s running on drone', done => { testDrone(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on wercker", function(done){ + it('should set service_name and service_job_id if it\'s running on wercker', done => { testWercker(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on Buildkite", function(done){ + it('should set service_name and service_job_id if it\'s running on Buildkite', done => { testBuildkite(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on Azure Pipelines", function(done){ + it('should set service_name and service_job_id if it\'s running on Azure Pipelines', done => { testAzurePipelines(getBaseOptions, done); }); }); -describe("getOptions", function(){ - beforeEach(function(){ - process.env = {PATH: process.env.PATH}; +describe('getOptions', () => { + beforeEach(() => { + process.env = { PATH: process.env.PATH }; }); - it ("should require a callback", function(done) { - (function() { + it('should require a callback', done => { + ((() => { getOptions(); - }).should.throw(); + })).should.throw(); done(); }); - it ("should get a filepath if there is one", function(done){ - index.options._ = ["somepath"]; - getOptions(function(err, options){ - options.filepath.should.equal("somepath"); + it('should get a filepath if there is one', done => { + index.options._ = ['somepath']; + getOptions((err, options) => { + should.not.exist(err); + options.filepath.should.equal('somepath'); done(); }); - }); - it ("should get a filepath if there is one, even in verbose mode", function(done){ - index.options.verbose = "true"; - index.options._ = ["somepath"]; - getOptions(function(err, options){ - options.filepath.should.equal("somepath"); + it('should get a filepath if there is one, even in verbose mode', done => { + index.options.verbose = 'true'; + index.options._ = ['somepath']; + getOptions((err, options) => { + should.not.exist(err); + options.filepath.should.equal('somepath'); done(); }); }); - it ("should set service_job_id if it exists", function(done){ + it('should set service_job_id if it exists', done => { testServiceJobId(getOptions, done); }); - it ("should set git hash if it exists", function(done){ + it('should set git hash if it exists', done => { testGitHash(getOptions, done); }); - it ("should set git branch if it exists", function(done){ + it('should set git branch if it exists', done => { testGitBranch(getOptions, done); }); - it ("should detect current git hash if not passed in", function(done) { + it('should detect current git hash if not passed in', done => { testGitHashDetection(getOptions, done); }); - it ("should detect current git branch if not passed in", function(done) { + it('should detect current git branch if not passed in', done => { testGitBranchDetection(getOptions, done); }); - it ("should detect detached git head if no hash passed in", function(done) { + it('should detect detached git head if no hash passed in', done => { testGitDetachedHeadDetection(getOptions, done); }); - it ("should fail local Git detection if no .git directory", function(done) { + it('should fail local Git detection if no .git directory', done => { testNoLocalGit(getOptions, done); }); - it ("should set repo_token if it exists", function(done){ + it('should set repo_token if it exists', done => { testRepoToken(getOptions, done); }); - it ("should detect repo_token if not passed in", function(done){ + it('should detect repo_token if not passed in', done => { testRepoTokenDetection(getOptions, done); }); - it ("should set paralell if env var set", function(done){ + it('should set paralell if env let set', done => { testParallel(getOptions, done); }); - it ("should set flag_name if it exists", function(done) { + it('should set flag_name if it exists', done => { testFlagName(getOptions, done); }); - it ("should set service_name if it exists", function(done){ + it('should set service_name if it exists', done => { testServiceName(getOptions, done); }); - it("should set service_pull_request if it exists", function(done){ + it('should set service_pull_request if it exists', done => { testServicePullRequest(getOptions, done); }); - it ("should set service_name and service_job_id if it's running on travis-ci", function(done){ + it('should set service_name and service_job_id if it\'s running on travis-ci', done => { testTravisCi(getOptions, done); }); - it ("should set service_name and service_job_id if it's running on jenkins", function(done){ + it('should set service_name and service_job_id if it\'s running on jenkins', done => { testJenkins(getOptions, done); }); - it ("should set service_name and service_job_id if it's running on circleci", function(done){ + it('should set service_name and service_job_id if it\'s running on circleci', done => { testCircleCi(getOptions, done); }); - it ("should set service_name and service_job_id if it's running on codeship", function(done){ + it('should set service_name and service_job_id if it\'s running on codeship', done => { testCodeship(getOptions, done); }); - it ("should set service_name and service_job_id if it's running on drone", function(done){ + it('should set service_name and service_job_id if it\'s running on drone', done => { testDrone(getBaseOptions, done); }); - it ("should set service_name and service_job_id if it's running on wercker", function(done){ + it('should set service_name and service_job_id if it\'s running on wercker', done => { testWercker(getOptions, done); }); - it ("should set service_name and service_job_id if it's running on Gitlab", function(done){ + it('should set service_name and service_job_id if it\'s running on Gitlab', done => { testGitlab(getOptions, done); }); - it ("should set service_name and service_job_id if it's running via Surf", function(done){ + it('should set service_name and service_job_id if it\'s running via Surf', done => { testSurf(getOptions, done); }); - it ("should set service_name and service_job_id if it's running via Buildkite", function(done){ + it('should set service_name and service_job_id if it\'s running via Buildkite', done => { testBuildkite(getOptions, done); }); - it ("should set service_name and service_job_id if it's running via Semaphore", function(done){ + it('should set service_name and service_job_id if it\'s running via Semaphore', done => { testSemaphore(getOptions, done); }); - it ("should set service_name and service_job_id if it's running via Azure Pipelines", function(done){ + it('should set service_name and service_job_id if it\'s running via Azure Pipelines', done => { testAzurePipelines(getOptions, done); }); - it ("should override set options with user options", function(done){ - var userOptions = {service_name: 'OVERRIDDEN_SERVICE_NAME'}; - process.env.COVERALLS_SERVICE_NAME = "SERVICE_NAME"; - getOptions(function(err, options){ - options.service_name.should.equal("OVERRIDDEN_SERVICE_NAME"); + it('should override set options with user options', done => { + const userOptions = { service_name: 'OVERRIDDEN_SERVICE_NAME' }; + process.env.COVERALLS_SERVICE_NAME = 'SERVICE_NAME'; + getOptions((err, options) => { + should.not.exist(err); + options.service_name.should.equal('OVERRIDDEN_SERVICE_NAME'); done(); }, userOptions); }); }); -var testServiceJobId = function(sut, done){ - process.env.COVERALLS_SERVICE_JOB_ID = "SERVICE_JOB_ID"; - sut(function(err, options){ - options.service_job_id.should.equal("SERVICE_JOB_ID"); - done(); - }); +const testServiceJobId = (sut, done) => { + process.env.COVERALLS_SERVICE_JOB_ID = 'SERVICE_JOB_ID'; + sut((err, options) => { + should.not.exist(err); + options.service_job_id.should.equal('SERVICE_JOB_ID'); + done(); + }); }; -var testGitHash = function(sut, done){ - process.env.COVERALLS_GIT_COMMIT = "e3e3e3e3e3e3e3e3e"; - sut(function(err, options){ - options.git.head.id.should.equal("e3e3e3e3e3e3e3e3e"); +const testGitHash = (sut, done) => { + process.env.COVERALLS_GIT_COMMIT = 'e3e3e3e3e3e3e3e3e'; + sut((err, options) => { + should.not.exist(err); + options.git.head.id.should.equal('e3e3e3e3e3e3e3e3e'); done(); }); }; -var testGitDetachedHeadDetection = function(sut, done){ - var localGit = ensureLocalGitContext({ detached: true }); - sut(function(err, options) { +const testGitDetachedHeadDetection = (sut, done) => { + const localGit = ensureLocalGitContext({ detached: true }); + sut((err, options) => { + should.not.exist(err); options.git.head.id.should.equal(localGit.id); localGit.wrapUp(); done(); }); }; -var testGitHashDetection = function(sut, done){ - var localGit = ensureLocalGitContext(); - sut(function(err, options) { +const testGitHashDetection = (sut, done) => { + const localGit = ensureLocalGitContext(); + sut((err, options) => { + should.not.exist(err); options.git.head.id.should.equal(localGit.id); localGit.wrapUp(); done(); }); }; -var testGitBranch = function(sut, done){ - process.env.COVERALLS_GIT_COMMIT = "e3e3e3e3e3e3e3e3e"; - process.env.COVERALLS_GIT_BRANCH = "master"; - sut(function(err, options){ - options.git.branch.should.equal("master"); +const testGitBranch = (sut, done) => { + process.env.COVERALLS_GIT_COMMIT = 'e3e3e3e3e3e3e3e3e'; + process.env.COVERALLS_GIT_BRANCH = 'master'; + sut((err, options) => { + should.not.exist(err); + options.git.branch.should.equal('master'); done(); }); }; -var testGitBranchDetection = function(sut, done){ - var localGit = ensureLocalGitContext(); - sut(function(err, options) { - if (localGit.branch) +const testGitBranchDetection = (sut, done) => { + const localGit = ensureLocalGitContext(); + sut((err, options) => { + should.not.exist(err); + + if (localGit.branch) { options.git.branch.should.equal(localGit.branch); - else + } else { options.git.should.not.have.key('branch'); + } + localGit.wrapUp(); done(); }); }; -var testNoLocalGit = function(sut, done){ - var localGit = ensureLocalGitContext({ noGit: true }); - sut(function(err, options) { +const testNoLocalGit = (sut, done) => { + const localGit = ensureLocalGitContext({ noGit: true }); + sut((err, options) => { + should.not.exist(err); options.should.not.have.property('git'); localGit.wrapUp(); done(); }); }; -var testRepoToken = function(sut, done){ - process.env.COVERALLS_REPO_TOKEN = "REPO_TOKEN"; - sut(function(err, options){ - options.repo_token.should.equal("REPO_TOKEN"); +const testRepoToken = (sut, done) => { + process.env.COVERALLS_REPO_TOKEN = 'REPO_TOKEN'; + sut((err, options) => { + should.not.exist(err); + options.repo_token.should.equal('REPO_TOKEN'); done(); }); }; -var testParallel = function(sut, done){ - process.env.COVERALLS_PARALLEL = "true"; - sut(function(err, options){ +const testParallel = (sut, done) => { + process.env.COVERALLS_PARALLEL = 'true'; + sut((err, options) => { + should.not.exist(err); options.parallel.should.equal(true); done(); }); }; -var testFlagName = function(sut, done){ +const testFlagName = (sut, done) => { process.env.COVERALLS_FLAG_NAME = 'test flag'; - sut(function(err, options){ + sut((err, options) => { + should.not.exist(err); options.flag_name.should.equal('test flag'); done(); }); }; -var testRepoTokenDetection = function(sut, done) { - var fs = require('fs'); - var path = require('path'); +const testRepoTokenDetection = (sut, done) => { + const file = path.join(process.cwd(), '.coveralls.yml'); + let token; + let service_name; + let synthetic = false; - var file = path.join(process.cwd(), '.coveralls.yml'), token, service_name, synthetic = false; if (fs.existsSync(file)) { - var yaml = require('js-yaml'); - var coveralls_yml_doc = yaml.safeLoad(fs.readFileSync(yml, 'utf8')); - token = coveralls_yml_doc.repo_token; - if(coveralls_yml_doc.service_name) { - service_name = coveralls_yml_doc.service_name; + const coverallsYmlDoc = yaml.safeLoad(fs.readFileSync(file, 'utf8')); + token = coverallsYmlDoc.repo_token; + if (coverallsYmlDoc.service_name) { + service_name = coverallsYmlDoc.service_name; } } else { token = 'REPO_TOKEN'; service_name = 'travis-pro'; - fs.writeFileSync(file, 'repo_token: ' + token+'\nservice_name: ' + service_name); + fs.writeFileSync(file, `repo_token: ${token}\nservice_name: ${service_name}`); synthetic = true; } - sut(function(err, options) { + + sut((err, options) => { + should.not.exist(err); options.repo_token.should.equal(token); - if(service_name) { + + if (service_name) { options.service_name.should.equal(service_name); } - if (synthetic) + + if (synthetic) { fs.unlink(file, done); + } }); }; -var testServiceName = function(sut, done){ - process.env.COVERALLS_SERVICE_NAME = "SERVICE_NAME"; - sut(function(err, options){ - options.service_name.should.equal("SERVICE_NAME"); +const testServiceName = (sut, done) => { + process.env.COVERALLS_SERVICE_NAME = 'SERVICE_NAME'; + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('SERVICE_NAME'); done(); }); }; -var testServicePullRequest = function(sut, done){ - process.env.CI_PULL_REQUEST = "https://github.com/fake/fake/pulls/123"; - sut(function(err, options){ - options.service_pull_request.should.equal("123"); +const testServicePullRequest = (sut, done) => { + process.env.CI_PULL_REQUEST = 'https://github.com/fake/fake/pulls/123'; + sut((err, options) => { + should.not.exist(err); + options.service_pull_request.should.equal('123'); done(); }); }; -var testTravisCi = function(sut, done){ - process.env.TRAVIS = "TRUE"; - process.env.TRAVIS_JOB_ID = "1234"; - process.env.TRAVIS_PULL_REQUEST = "123"; - sut(function(err, options){ - options.service_name.should.equal("travis-ci"); - options.service_job_id.should.equal("1234"); - options.service_pull_request.should.equal("123"); +const testTravisCi = (sut, done) => { + process.env.TRAVIS = 'TRUE'; + process.env.TRAVIS_JOB_ID = '1234'; + process.env.TRAVIS_PULL_REQUEST = '123'; + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('travis-ci'); + options.service_job_id.should.equal('1234'); + options.service_pull_request.should.equal('123'); done(); }); }; -var testJenkins = function(sut, done){ - process.env.JENKINS_URL = "something"; - process.env.BUILD_ID = "1234"; - process.env.GIT_COMMIT = "a12s2d3df4f435g45g45g67h5g6"; - process.env.GIT_BRANCH = "master"; - sut(function(err, options){ - options.service_name.should.equal("jenkins"); - options.service_job_id.should.equal("1234"); - options.git.should.eql({ head: - { id: 'a12s2d3df4f435g45g45g67h5g6', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'Unknown Committer', - committer_email: '', - message: 'Unknown Commit Message' }, - branch: 'master', - remotes: [] }); +const testJenkins = (sut, done) => { + process.env.JENKINS_URL = 'something'; + process.env.BUILD_ID = '1234'; + process.env.GIT_COMMIT = 'a12s2d3df4f435g45g45g67h5g6'; + process.env.GIT_BRANCH = 'master'; + + const git = { + head: { + id: 'a12s2d3df4f435g45g45g67h5g6', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'Unknown Committer', + committer_email: '', + message: 'Unknown Commit Message' + }, + branch: 'master', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('jenkins'); + options.service_job_id.should.equal('1234'); + options.git.should.eql(git); done(); }); }; -var testCircleCi = function(sut, done){ +const testCircleCi = (sut, done) => { process.env.CIRCLECI = true; - process.env.CIRCLE_BRANCH = "master"; - process.env.CIRCLE_BUILD_NUM = "1234"; - process.env.CIRCLE_SHA1 = "e3e3e3e3e3e3e3e3e"; + process.env.CIRCLE_BRANCH = 'master'; + process.env.CIRCLE_BUILD_NUM = '1234'; + process.env.CIRCLE_SHA1 = 'e3e3e3e3e3e3e3e3e'; process.env.CI_PULL_REQUEST = 'http://github.com/node-coveralls/pull/3'; - sut(function(err, options){ - options.service_name.should.equal("circleci"); - options.service_job_id.should.equal("1234"); + + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'Unknown Committer', + committer_email: '', + message: 'Unknown Commit Message' + }, + branch: 'master', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('circleci'); + options.service_job_id.should.equal('1234'); options.service_pull_request.should.equal('3'); - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'Unknown Committer', - committer_email: '', - message: 'Unknown Commit Message' }, - branch: 'master', - remotes: [] }); + options.git.should.eql(git); done(); }); }; -var testCodeship = function(sut, done) { +const testCodeship = (sut, done) => { process.env.CI_NAME = 'codeship'; process.env.CI_BUILD_NUMBER = '1234'; - process.env.CI_COMMIT_ID = "e3e3e3e3e3e3e3e3e"; - process.env.CI_BRANCH = "master"; - process.env.CI_COMMITTER_NAME = "John Doe"; - process.env.CI_COMMITTER_EMAIL = "[email protected]"; - process.env.CI_COMMIT_MESSAGE = "adadadadadadadadadad"; - sut(function(err, options){ - options.service_name.should.equal("codeship"); - options.service_job_id.should.equal("1234"); - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'John Doe', - committer_email: '[email protected]', - message: 'adadadadadadadadadad' }, - branch: 'master', - remotes: [] }); + process.env.CI_COMMIT_ID = 'e3e3e3e3e3e3e3e3e'; + process.env.CI_BRANCH = 'master'; + process.env.CI_COMMITTER_NAME = 'John Doe'; + process.env.CI_COMMITTER_EMAIL = '[email protected]'; + process.env.CI_COMMIT_MESSAGE = 'adadadadadadadadadad'; + + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'John Doe', + committer_email: '[email protected]', + message: 'adadadadadadadadadad' + }, + branch: 'master', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('codeship'); + options.service_job_id.should.equal('1234'); + options.git.should.eql(git); done(); }); }; -var testDrone = function(sut, done) { +const testDrone = (sut, done) => { process.env.DRONE = true; process.env.DRONE_BUILD_NUMBER = '1234'; - process.env.DRONE_COMMIT = "e3e3e3e3e3e3e3e3e"; - process.env.DRONE_BRANCH = "master"; + process.env.DRONE_COMMIT = 'e3e3e3e3e3e3e3e3e'; + process.env.DRONE_BRANCH = 'master'; process.env.DRONE_PULL_REQUEST = '3'; process.env.DRONE_COMMIT_AUTHOR = 'john doe'; process.env.DRONE_COMMIT_AUTHOR_EMAIL = '[email protected]'; process.env.DRONE_COMMIT_MESSAGE = 'msgmsgmsg'; - sut(function(err, options){ - options.service_name.should.equal("drone"); - options.service_job_id.should.equal("1234"); - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'john doe', - committer_email: '[email protected]', - message: 'msgmsgmsg' }, - branch: 'master', - remotes: [] }); + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'john doe', + committer_email: '[email protected]', + message: 'msgmsgmsg' + }, + branch: 'master', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('drone'); + options.service_job_id.should.equal('1234'); + options.git.should.eql(git); done(); }); }; -var testWercker = function(sut, done) { +const testWercker = (sut, done) => { process.env.WERCKER = true; process.env.WERCKER_BUILD_ID = '1234'; - process.env.WERCKER_GIT_COMMIT = "e3e3e3e3e3e3e3e3e"; - process.env.WERCKER_GIT_BRANCH = "master"; - sut(function(err, options){ - options.service_name.should.equal("wercker"); - options.service_job_id.should.equal("1234"); - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'Unknown Committer', - committer_email: '', - message: 'Unknown Commit Message' }, - branch: 'master', - remotes: [] }); + process.env.WERCKER_GIT_COMMIT = 'e3e3e3e3e3e3e3e3e'; + process.env.WERCKER_GIT_BRANCH = 'master'; + + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'Unknown Committer', + committer_email: '', + message: 'Unknown Commit Message' + }, + branch: 'master', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('wercker'); + options.service_job_id.should.equal('1234'); + options.git.should.eql(git); done(); }); }; -var testGitlab = function(sut, done) { +const testGitlab = (sut, done) => { process.env.GITLAB_CI = true; process.env.CI_BUILD_NAME = 'spec:one'; - process.env.CI_BUILD_ID = "1234"; - process.env.CI_BUILD_REF = "e3e3e3e3e3e3e3e3e"; - process.env.CI_BUILD_REF_NAME = "feature"; - process.env.CI_MERGE_REQUEST_IID = "1"; - sut(function(err, options){ - options.service_name.should.equal("gitlab-ci"); - options.service_job_id.should.equal("1234"); - options.service_pull_request.should.equal("1"); - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'Unknown Committer', - committer_email: '', - message: 'Unknown Commit Message' }, - branch: 'feature', - remotes: [] }); + process.env.CI_BUILD_ID = '1234'; + process.env.CI_BUILD_REF = 'e3e3e3e3e3e3e3e3e'; + process.env.CI_BUILD_REF_NAME = 'feature'; + process.env.CI_MERGE_REQUEST_IID = '1'; + + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'Unknown Committer', + committer_email: '', + message: 'Unknown Commit Message' + }, + branch: 'feature', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('gitlab-ci'); + options.service_job_id.should.equal('1234'); + options.service_pull_request.should.equal('1'); + options.git.should.eql(git); done(); }); }; -var testSurf = function(sut, done) { +const testSurf = (sut, done) => { process.env.CI_NAME = 'surf'; - process.env.SURF_SHA1 = "e3e3e3e3e3e3e3e3e"; - process.env.SURF_REF = "feature"; - sut(function(err, options){ - options.service_name.should.equal("surf"); - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'Unknown Committer', - committer_email: '', - message: 'Unknown Commit Message' }, - branch: 'feature', - remotes: [] }); + process.env.SURF_SHA1 = 'e3e3e3e3e3e3e3e3e'; + process.env.SURF_REF = 'feature'; + + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'Unknown Committer', + committer_email: '', + message: 'Unknown Commit Message' + }, + branch: 'feature', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('surf'); + options.git.should.eql(git); done(); }); }; -var testBuildkite = function(sut, done) { +const testBuildkite = (sut, done) => { process.env.BUILDKITE = true; - process.env.BUILDKITE_BUILD_NUMBER = "1234"; - process.env.BUILDKITE_COMMIT = "e3e3e3e3e3e3e3e3e"; - process.env.BUILDKITE_BRANCH = "feature"; + process.env.BUILDKITE_BUILD_NUMBER = '1234'; + process.env.BUILDKITE_COMMIT = 'e3e3e3e3e3e3e3e3e'; + process.env.BUILDKITE_BRANCH = 'feature'; process.env.BUILDKITE_BUILD_CREATOR = 'john doe'; process.env.BUILDKITE_BUILD_CREATOR_EMAIL = '[email protected]'; process.env.BUILDKITE_MESSAGE = 'msgmsgmsg'; - sut(function(err, options){ - options.service_name.should.equal("buildkite"); - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'john doe', - committer_email: '[email protected]', - message: 'msgmsgmsg' }, - branch: 'feature', - remotes: [] }); + + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'john doe', + committer_email: '[email protected]', + message: 'msgmsgmsg' + }, + branch: 'feature', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('buildkite'); + options.git.should.eql(git); done(); }); }; - -var testSemaphore = function(sut, done) { +const testSemaphore = (sut, done) => { process.env.SEMAPHORE = true; process.env.SEMAPHORE_BUILD_NUMBER = '1234'; - process.env.REVISION = "e3e3e3e3e3e3e3e3e"; - process.env.BRANCH_NAME = "master"; - - sut(function(err, options){ - options.service_name.should.equal("semaphore"); - options.service_job_id.should.equal("1234"); - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'Unknown Committer', - committer_email: '', - message: 'Unknown Commit Message' }, - branch: 'master', - remotes: [] }); + process.env.REVISION = 'e3e3e3e3e3e3e3e3e'; + process.env.BRANCH_NAME = 'master'; + + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'Unknown Committer', + committer_email: '', + message: 'Unknown Commit Message' + }, + branch: 'master', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('semaphore'); + options.service_job_id.should.equal('1234'); + options.git.should.eql(git); done(); }); }; -var testAzurePipelines = function(sut, done){ - process.env.TF_BUILD = "true"; - process.env.BUILD_SOURCEBRANCHNAME = "hotfix"; - process.env.BUILD_SOURCEVERSION = "e3e3e3e3e3e3e3e3e"; - process.env.BUILD_BUILDID = "1234"; - process.env.SYSTEM_PULLREQUEST_PULLREQUESTNUMBER = "123"; - - sut(function(err, options){ - options.service_name.should.equal("Azure Pipelines"); - options.service_job_id.should.equal("1234"); - options.service_pull_request.should.equal("123"); - - options.git.should.eql({ head: - { id: 'e3e3e3e3e3e3e3e3e', - author_name: 'Unknown Author', - author_email: '', - committer_name: 'Unknown Committer', - committer_email: '', - message: 'Unknown Commit Message' }, - branch: 'hotfix', - remotes: [] }); - +const testAzurePipelines = (sut, done) => { + process.env.TF_BUILD = 'true'; + process.env.BUILD_SOURCEBRANCHNAME = 'hotfix'; + process.env.BUILD_SOURCEVERSION = 'e3e3e3e3e3e3e3e3e'; + process.env.BUILD_BUILDID = '1234'; + process.env.SYSTEM_PULLREQUEST_PULLREQUESTNUMBER = '123'; + + const git = { + head: { + id: 'e3e3e3e3e3e3e3e3e', + author_name: 'Unknown Author', + author_email: '', + committer_name: 'Unknown Committer', + committer_email: '', + message: 'Unknown Commit Message' + }, + branch: 'hotfix', + remotes: [] + }; + + sut((err, options) => { + should.not.exist(err); + options.service_name.should.equal('Azure Pipelines'); + options.service_job_id.should.equal('1234'); + options.service_pull_request.should.equal('123'); + options.git.should.eql(git); done(); }); }; - function ensureLocalGitContext(options) { - var path = require('path'); - var fs = require('fs'); + const baseDir = process.cwd(); + let dir = baseDir; + let gitDir; - var baseDir = process.cwd(), dir = baseDir, gitDir; while (path.resolve('/') !== dir) { gitDir = path.join(dir, '.git'); - var existsSync = fs.existsSync || path.existsSync; - if (existsSync(path.join(gitDir, 'HEAD'))) + const existsSync = fs.existsSync || path.existsSync; + if (existsSync(path.join(gitDir, 'HEAD'))) { break; + } dir = path.dirname(dir); } options = options || {}; - var synthetic = path.resolve('/') === dir; - var gitHead, content, branch, id, wrapUp = function() {}; + const synthetic = path.resolve('/') === dir; + let gitHead; + let content; + let branch; + let id; + let wrapUp = () => {}; if (synthetic) { branch = 'synthetic'; id = '424242424242424242'; gitHead = path.join('.git', 'HEAD'); - var gitBranch = path.join('.git', 'refs', 'heads', branch); + const gitBranch = path.join('.git', 'refs', 'heads', branch); fs.mkdirSync('.git'); if (options.detached) { fs.writeFileSync(gitHead, id, { encoding: 'utf8' }); } else { fs.mkdirSync(path.join('.git', 'refs')); fs.mkdirSync(path.join('.git', 'refs', 'heads')); - fs.writeFileSync(gitHead, "ref: refs/heads/" + branch, { encoding: 'utf8' }); + fs.writeFileSync(gitHead, `ref: refs/heads/${branch}`, { encoding: 'utf8' }); fs.writeFileSync(gitBranch, id, { encoding: 'utf8' }); } - wrapUp = function() { + + wrapUp = () => { fs.unlinkSync(gitHead); if (!options.detached) { fs.unlinkSync(gitBranch); fs.rmdirSync(path.join('.git', 'refs', 'heads')); fs.rmdirSync(path.join('.git', 'refs')); } + fs.rmdirSync('.git'); }; } else if (options.noGit) { - fs.renameSync(gitDir, gitDir + '.bak'); - wrapUp = function() { - fs.renameSync(gitDir + '.bak', gitDir); + fs.renameSync(gitDir, `${gitDir}.bak`); + wrapUp = () => { + fs.renameSync(`${gitDir}.bak`, gitDir); }; } else if (options.detached) { gitHead = path.join(gitDir, 'HEAD'); content = fs.readFileSync(gitHead, 'utf8').trim(); - var b = (content.match(/^ref: refs\/heads\/(\S+)$/) || [])[1]; + const b = (content.match(/^ref: refs\/heads\/(\S+)$/) || [])[1]; if (!b) { id = content; } else { id = fs.readFileSync(path.join(gitDir, 'refs', 'heads', b), 'utf8').trim(); fs.writeFileSync(gitHead, id, 'utf8'); - wrapUp = function() { + wrapUp = () => { fs.writeFileSync(gitHead, content, 'utf8'); }; } @@ -612,5 +710,9 @@ function ensureLocalGitContext(options) { id = branch ? fs.readFileSync(path.join(gitDir, 'refs', 'heads', branch), 'utf8').trim() : content; } - return { id: id, branch: branch, wrapUp: wrapUp }; + return { + id, + branch, + wrapUp + }; } diff --git a/test/handleInput.js b/test/handleInput.js index bca7b16..46cbe50 100644 --- a/test/handleInput.js +++ b/test/handleInput.js @@ -1,78 +1,72 @@ -var sysPath = require('path'); -var should = require('should'); -var sinon = require('sinon-restore'); -var index = require('../index'); -var fs = require('fs'); -logger = require('log-driver')({level : false}); +'use strict'; -describe("handleInput", function(){ - afterEach(function() { - sinon.restoreAll(); - }); - it ("returns an error when there's an error getting options", function(done){ - sinon.stub(index, 'getOptions', function(cb){ - return cb("some error", {}); - }); - var path = sysPath.join(__dirname, "/../fixtures/onefile.lcov"); - var input = fs.readFileSync(path, "utf8"); - index.handleInput(input, function(err){ - err.should.equal("some error"); +const fs = require('fs'); +const sysPath = require('path'); +const should = require('should'); +const sinon = require('sinon-restore'); +const logDriver = require('log-driver'); +const index = require('..'); + +logDriver({ level: false }); + +describe('handleInput', () => { + afterEach(() => { + sinon.restoreAll(); + }); + it('returns an error when there\'s an error getting options', done => { + sinon.stub(index, 'getOptions', cb => cb('some error', {})); + const path = sysPath.join(__dirname, '/../fixtures/onefile.lcov'); + const input = fs.readFileSync(path, 'utf8'); + index.handleInput(input, err => { + err.should.equal('some error'); done(); }); }); - it ("returns an error when there's an error converting", function(done){ - sinon.stub(index, 'getOptions', function(cb){ - return cb(null, {}); + it('returns an error when there\'s an error converting', done => { + sinon.stub(index, 'getOptions', cb => cb(null, {})); + sinon.stub(index, 'convertLcovToCoveralls', (input, options, cb) => { + cb('some error'); }); - sinon.stub(index, 'convertLcovToCoveralls', function(input, options, cb){ - cb("some error"); - }); - var path = sysPath.join(__dirname, "/../fixtures/onefile.lcov"); - var input = fs.readFileSync(path, "utf8"); - index.handleInput(input, function(err){ - err.should.equal("some error"); + const path = sysPath.join(__dirname, '/../fixtures/onefile.lcov'); + const input = fs.readFileSync(path, 'utf8'); + index.handleInput(input, err => { + err.should.equal('some error'); done(); }); }); - it ("returns an error when there's an error sending", function(done){ - sinon.stub(index, 'getOptions', function(cb){ - return cb(null, {}); - }); - sinon.stub(index, 'sendToCoveralls', function(postData, cb){ - cb("some error"); + it('returns an error when there\'s an error sending', done => { + sinon.stub(index, 'getOptions', cb => cb(null, {})); + sinon.stub(index, 'sendToCoveralls', (postData, cb) => { + cb('some error'); }); - var path = sysPath.join(__dirname, "/../fixtures/onefile.lcov"); - var input = fs.readFileSync(path, "utf8"); - index.handleInput(input, function(err){ - err.should.equal("some error"); + const path = sysPath.join(__dirname, '/../fixtures/onefile.lcov'); + const input = fs.readFileSync(path, 'utf8'); + index.handleInput(input, err => { + err.should.equal('some error'); done(); }); }); - it ("returns an error when there's a bad status code", function(done){ - sinon.stub(index, 'getOptions', function(cb){ - return cb(null, {}); + it('returns an error when there\'s a bad status code', done => { + sinon.stub(index, 'getOptions', cb => cb(null, {})); + sinon.stub(index, 'sendToCoveralls', (postData, cb) => { + cb(null, { statusCode: 500 }, 'body'); }); - sinon.stub(index, 'sendToCoveralls', function(postData, cb){ - cb(null, {statusCode : 500}, "body"); - }); - var path = sysPath.join(__dirname, "/../fixtures/onefile.lcov"); - var input = fs.readFileSync(path, "utf8"); - index.handleInput(input, function(err){ - err.should.equal("Bad response: 500 body"); + const path = sysPath.join(__dirname, '/../fixtures/onefile.lcov'); + const input = fs.readFileSync(path, 'utf8'); + index.handleInput(input, err => { + err.should.equal('Bad response: 500 body'); done(); }); }); - it ("completes successfully when there are no errors", function(done){ - sinon.stub(index, 'getOptions', function(cb){ - return cb(null, {}); - }); - sinon.stub(index, 'sendToCoveralls', function(postData, cb){ - cb(null, {statusCode : 200}, "body"); + it('completes successfully when there are no errors', done => { + sinon.stub(index, 'getOptions', cb => cb(null, {})); + sinon.stub(index, 'sendToCoveralls', (postData, cb) => { + cb(null, { statusCode: 200 }, 'body'); }); - var path = sysPath.join(__dirname, "/../fixtures/onefile.lcov"); - var input = fs.readFileSync(path, "utf8"); - index.handleInput(input, function(err, body){ - (err === null).should.equal(true); + const path = sysPath.join(__dirname, '/../fixtures/onefile.lcov'); + const input = fs.readFileSync(path, 'utf8'); + index.handleInput(input, (err, body) => { + should.not.exist(err); body.should.equal('body'); done(); }); diff --git a/test/logger.js b/test/logger.js index b007b6f..1d5261f 100644 --- a/test/logger.js +++ b/test/logger.js @@ -1,32 +1,33 @@ -var should = require('should'); -var sinon = require('sinon-restore'); -var index = require('../index'); +'use strict'; -describe("logger", function(){ - it ("should log at debug level when --verbose is set", function(){ +require('should')(); +const index = require('..'); + +describe('logger', () => { + it('should log at debug level when --verbose is set', () => { index.options.verbose = true; - var logger = require('../index').logger(); + const logger = index.logger(); logger.level.should.equal('debug'); }); - it ("should log at debug level when NODE_COVERALLS_DEBUG is set in env", function(){ + it('should log at debug level when NODE_COVERALLS_DEBUG is set in env', () => { index.options.verbose = false; process.env.NODE_COVERALLS_DEBUG = 1; - var logger = require('../index').logger(); + const logger = index.logger(); logger.level.should.equal('debug'); }); - it ("should log at debug level when NODE_COVERALLS_DEBUG is set in env as a string", function(){ + it('should log at debug level when NODE_COVERALLS_DEBUG is set in env as a string', () => { index.options.verbose = false; process.env.NODE_COVERALLS_DEBUG = '1'; - var logger = require('../index').logger(); + const logger = index.logger(); logger.level.should.equal('debug'); }); - it ("should log at warn level when NODE_COVERALLS_DEBUG not set and no --verbose", function(){ + it('should log at warn level when NODE_COVERALLS_DEBUG not set and no --verbose', () => { index.options.verbose = false; process.env.NODE_COVERALLS_DEBUG = 0; - var logger = require('../index').logger(); + const logger = index.logger(); logger.level.should.equal('error'); }); }); diff --git a/test/sendToCoveralls.js b/test/sendToCoveralls.js index 6121bbb..2f18880 100644 --- a/test/sendToCoveralls.js +++ b/test/sendToCoveralls.js @@ -1,16 +1,20 @@ -var should = require('should'); -var request = require('request'); -var sinon = require('sinon-restore'); -var index = require('../index'); -logger = require('log-driver')({level : false}); +'use strict'; -describe("sendToCoveralls", function(){ - var realCoverallsHost; - beforeEach(function() { +const should = require('should'); +const request = require('request'); +const sinon = require('sinon-restore'); +const logDriver = require('log-driver'); +const index = require('..'); + +logDriver({ level: false }); + +describe('sendToCoveralls', () => { + let realCoverallsHost; + beforeEach(() => { realCoverallsHost = process.env.COVERALLS_ENDPOINT; }); - afterEach(function() { + afterEach(() => { sinon.restoreAll(); if (realCoverallsHost !== undefined) { process.env.COVERALLS_ENDPOINT = realCoverallsHost; @@ -19,16 +23,16 @@ describe("sendToCoveralls", function(){ } }); - it ("passes on the correct params to request.post", function(done){ - sinon.stub(request, 'post', function(obj, cb){ + it('passes on the correct params to request.post', done => { + sinon.stub(request, 'post', (obj, cb) => { obj.url.should.equal('https://coveralls.io/api/v1/jobs'); - obj.form.should.eql({json : '{"some":"obj"}'}); + obj.form.should.eql({ json: '{"some":"obj"}' }); cb('err', 'response', 'body'); }); - var obj = {"some":"obj"}; - - index.sendToCoveralls(obj, function(err, response, body){ + const obj = { 'some': 'obj' }; + + index.sendToCoveralls(obj, (err, response, body) => { err.should.equal('err'); response.should.equal('response'); body.should.equal('body'); @@ -36,39 +40,40 @@ describe("sendToCoveralls", function(){ }); }); - it ("allows sending to enterprise url", function(done){ + it('allows sending to enterprise url', done => { process.env.COVERALLS_ENDPOINT = 'https://coveralls-ubuntu.domain.com'; - sinon.stub(request, 'post', function(obj, cb){ + sinon.stub(request, 'post', (obj, cb) => { obj.url.should.equal('https://coveralls-ubuntu.domain.com/api/v1/jobs'); - obj.form.should.eql({json : '{"some":"obj"}'}); + obj.form.should.eql({ json: '{"some":"obj"}' }); cb('err', 'response', 'body'); }); - var obj = {"some":"obj"}; - index.sendToCoveralls(obj, function(err, response, body){ + const obj = { 'some': 'obj' }; + index.sendToCoveralls(obj, (err, response, body) => { err.should.equal('err'); response.should.equal('response'); body.should.equal('body'); done(); }); }); - it ("writes output to stdout when --stdout is passed", function(done) { - var obj = {"some":"obj"}; - + it('writes output to stdout when --stdout is passed', done => { + const obj = { 'some': 'obj' }; + // set up mock process.stdout.write temporarily - var origStdoutWrite = process.stdout.write; - process.stdout.write = function(string) { - if (string == JSON.stringify(obj)) { + const origStdoutWrite = process.stdout.write; + process.stdout.write = function(string, ...args) { + if (string === JSON.stringify(obj)) { process.stdout.write = origStdoutWrite; return done(); } - - origStdoutWrite.apply(this, arguments); + + origStdoutWrite.apply(this, args); }; - + index.options.stdout = true; - - index.sendToCoveralls(obj, function(err, response, body) { + + index.sendToCoveralls(obj, (err, response) => { + should.not.exist(err); response.statusCode.should.equal(200); }); }); |
