Server IP : 85.214.239.14 / Your IP : 3.144.95.36 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/task/2/cwd/usr/lib/node_modules/pm2/node_modules/vizion/test/unit/ |
Upload File : |
var expect = require('chai').expect; var fs = require('fs'); var sinon = require('sinon'); var ini = require('ini'); var git = require("../../lib/git/git.js"); var jsGitService = require("../../lib/git/js-git-service.js"); describe('Unit: git', function () { describe('parseGitConfig', function parseGitConfigTest() { var folder = "my-folder"; var config = {stub: 'config'}; var data = {stub: 'data'}; var readFileStub, parseStub; before(function beforeTest() { readFileStub = sinon.stub(fs, 'readFile').callsFake(function (path, encoding, cb) { if (process.platform !== 'win32' && process.platform !== 'win64') expect(path).to.eq('my-folder/.git/config'); else expect(path).to.eq('my-folder\\.git\\config'); cb(null, data); }); parseStub = sinon.stub(ini, 'parse').callsFake(function (myData) { expect(myData).to.eq(data); return config; }); }); it('ok', function it(done) { git.parseGitConfig(folder, function (err, myConfig) { if (err) { return done(err); } expect(myConfig).to.eq(config); done(); }) }); after(function afterTest() { readFileStub.restore(); parseStub.restore(); }); }); describe('getUrl', function getUrlTest() { var folder = "my-folder"; var config = { 'remote "origin"': { url: 'test-url' } }; var parseGitConfigStub; before(function beforeTest() { parseGitConfigStub = sinon.stub(git, 'parseGitConfig').callsFake(function (myFolder, cb) { expect(myFolder).to.eq(folder); cb(null, config); }); }); it('ok', function it(done) { git.getUrl(folder, function (err, data) { if (err) { return done(err); } expect(data).to.deep.eq({ "type": "git", "url": "test-url" }); done(); }); }); after(function afterTest() { parseGitConfigStub.restore(); }); }); describe('getCommitInfo', function getCommitInfoTest() { var folder = "my-folder"; var commit = { hash: 'xfd4560', message: 'my message' }; var data = {}; var getHeadCommitStub; before(function beforeTest() { getHeadCommitStub = sinon.stub(jsGitService, 'getHeadCommit').callsFake(function (myFolder, cb) { expect(myFolder).to.eq(folder); cb(null, commit); }); }); it('ok', function it(done) { git.getCommitInfo(folder, data, function (err, data) { if (err) { return done(err); } expect(data).to.deep.eq({ "revision": commit.hash, "comment": commit.message }); done(); }); }); after(function afterTest() { getHeadCommitStub.restore(); }); }); describe('getBranch', function getBranchTest() { var folder = "my-folder"; var data = {}; var readFileStub; before(function beforeTest() { readFileStub = sinon.stub(fs, 'readFile').callsFake(function (path, encoding, cb) { if (process.platform !== 'win32' && process.platform !== 'win64') expect(path).to.eq('my-folder/.git/HEAD'); else expect(path).to.eq('my-folder\\.git\\HEAD'); expect(encoding).to.eq('utf-8'); cb(null, "ref: refs/heads/master"); }); }); it('ok', function it(done) { git.getBranch(folder, data, function (err, data) { if (err) { return done(err); } expect(data).to.deep.eq({ "branch": "master", }); done(); }); }); after(function afterTest() { readFileStub.restore(); }); }); describe('getRemote', function getRemoteTest() { var folder = "my-folder"; var config = { 'remote "origin"': { url: 'test-url' }, 'remote "other"': { url: 'other-url' } }; var data = {}; var parseGitConfigStub; before(function beforeTest() { parseGitConfigStub = sinon.stub(git, 'parseGitConfig').callsFake(function (myFolder, cb) { expect(myFolder).to.eq(folder); cb(null, config); }); }); it('ok', function it(done) { git.getRemote(folder, data, function (err, data) { if (err) { return done(err); } expect(data).to.deep.eq({ "remote": "origin", "remotes": [ "origin", "other" ] }); done(); }); }); after(function afterTest() { parseGitConfigStub.restore(); }); }); describe('isCurrentBranchOnRemote', function isCurrentBranchOnRemoteTest() { var folder = "my-folder"; var data = { branch: 'my-branch', remote: 'my-remote' }; var getRefHashStub; context('not on remote', function () { before(function beforeTest() { getRefHashStub = sinon.stub(jsGitService, 'getRefHash').callsFake(function (myFolder,myBranch,myRemote, cb) { expect(myFolder).to.eq(folder); expect(myBranch).to.eq(data.branch); expect(myRemote).to.eq(data.remote); cb(null, null); }); }); it('ok', function it(done) { git.isCurrentBranchOnRemote(folder, data, function (err, data) { if (err) { return done(err); } expect(data).to.deep.eq({ "branch": "my-branch", "branch_exists_on_remote": false, "remote": "my-remote" }); done(); }); }); after(function afterTest() { getRefHashStub.restore(); }); }); context('on remote', function () { before(function beforeTest() { getRefHashStub = sinon.stub(jsGitService, 'getRefHash').callsFake(function (myFolder,myBranch,myRemote, cb) { expect(myFolder).to.eq(folder); expect(myBranch).to.eq(data.branch); expect(myRemote).to.eq(data.remote); cb(null, "FX421345CX"); }); }); it('ok', function it(done) { git.isCurrentBranchOnRemote(folder, data, function (err, data) { if (err) { return done(err); } expect(data).to.deep.eq({ "branch": "my-branch", "branch_exists_on_remote": true, "remote": "my-remote" }); done(); }); }); after(function afterTest() { getRefHashStub.restore(); }); }); }); describe('getPrevNext', function getPrevNextTest() { var folder = "my-folder"; var data = { branch_exists_on_remote:true, branch: 'my-branch', remote: 'my-remote', revision: '2' }; var commitHistory = [ {hash: '3'}, {hash: '2'}, {hash: '1'}, ]; var getCommitHistoryStub; before(function beforeTest() { getCommitHistoryStub = sinon.stub(jsGitService, 'getCommitHistory').callsFake(function (myFolder, n, myBranch, myRemote, cb) { expect(myFolder).to.eq(folder); expect(n).to.eq(100); expect(myBranch).to.eq(data.branch); expect(myRemote).to.eq(data.remote); cb(null, commitHistory); }); }); it('ok', function it(done) { git.getPrevNext(folder, data, function (err, data) { if (err) { return done(err); } expect(data).to.deep.eq({ "ahead": false, "branch": "my-branch", "branch_exists_on_remote": true, "next_rev": "3", "prev_rev": "1", "remote": "my-remote", "revision": "2" }); done(); }); }); after(function afterTest() { getCommitHistoryStub.restore(); }); }); });