added some tests
This commit is contained in:
parent
29d176bafa
commit
15c331690b
2
dist/index.d.ts
vendored
2
dist/index.d.ts
vendored
@ -9,4 +9,4 @@ export declare let createRepoFromClone: (fromArg: string, toArg: string) => q.Pr
|
|||||||
/**
|
/**
|
||||||
* creates a new GitRepo instance after initializing a new Git Repository
|
* creates a new GitRepo instance after initializing a new Git Repository
|
||||||
*/
|
*/
|
||||||
export declare let createRepoFromInit: (destinationDirArg: string) => void;
|
export declare let createRepoFromInit: (destinationDirArg: string) => q.Promise<GitRepo>;
|
||||||
|
5
dist/index.js
vendored
5
dist/index.js
vendored
@ -20,8 +20,9 @@ exports.createRepoFromClone = (fromArg, toArg) => {
|
|||||||
exports.createRepoFromInit = (destinationDirArg) => {
|
exports.createRepoFromInit = (destinationDirArg) => {
|
||||||
let done = q.defer();
|
let done = q.defer();
|
||||||
plugins.smartfile.fs.ensureDir(destinationDirArg);
|
plugins.smartfile.fs.ensureDir(destinationDirArg);
|
||||||
plugins.shelljs.exec(`cd destinationDirArg && git init`);
|
plugins.shelljs.exec(`cd ${destinationDirArg} && git init`);
|
||||||
let newRepo = new smartgit_classes_gitrepo_1.GitRepo(destinationDirArg);
|
let newRepo = new smartgit_classes_gitrepo_1.GitRepo(destinationDirArg);
|
||||||
done.resolve(newRepo);
|
done.resolve(newRepo);
|
||||||
|
return done.promise;
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUJBQXNCO0FBQ3RCLDhDQUErQztBQUUvQyx5RUFBb0Q7QUFFaEQscURBQU87QUFHWDs7R0FFRztBQUNRLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxPQUFlLEVBQUUsS0FBYTtJQUM1RCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFXLENBQUE7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDckQsSUFBSSxPQUFPLEdBQUcsSUFBSSxrQ0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDUSxRQUFBLGtCQUFrQixHQUFHLENBQUMsaUJBQXlCO0lBQ3RELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQVcsQ0FBQTtJQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFBO0lBQ3hELElBQUksT0FBTyxHQUFHLElBQUksa0NBQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQzVDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7QUFDekIsQ0FBQyxDQUFBIn0=
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUJBQXNCO0FBQ3RCLDhDQUErQztBQUUvQyx5RUFBb0Q7QUFFaEQscURBQU87QUFHWDs7R0FFRztBQUNRLFFBQUEsbUJBQW1CLEdBQUcsQ0FBQyxPQUFlLEVBQUUsS0FBYTtJQUM1RCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFXLENBQUE7SUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3JDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsT0FBTyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUE7SUFDckQsSUFBSSxPQUFPLEdBQUcsSUFBSSxrQ0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUE7QUFDdkIsQ0FBQyxDQUFBO0FBRUQ7O0dBRUc7QUFDUSxRQUFBLGtCQUFrQixHQUFHLENBQUMsaUJBQXlCO0lBQ3RELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQVcsQ0FBQTtJQUM3QixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLGlCQUFpQixjQUFjLENBQUMsQ0FBQTtJQUMzRCxJQUFJLE9BQU8sR0FBRyxJQUFJLGtDQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3JCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQSJ9
|
2
dist/smartgit.classes.gitrepo.d.ts
vendored
2
dist/smartgit.classes.gitrepo.d.ts
vendored
@ -21,7 +21,7 @@ export declare class GitRepo {
|
|||||||
/**
|
/**
|
||||||
* list remotes for a Gip
|
* list remotes for a Gip
|
||||||
*/
|
*/
|
||||||
remoteList(dirPathArg: any): q.Promise<{}>;
|
remoteList(): q.Promise<{}>;
|
||||||
/**
|
/**
|
||||||
* remove remote
|
* remove remote
|
||||||
*/
|
*/
|
||||||
|
14
dist/smartgit.classes.gitrepo.js
vendored
14
dist/smartgit.classes.gitrepo.js
vendored
File diff suppressed because one or more lines are too long
1
test/temp3
Submodule
1
test/temp3
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit a261a2ea02b39d8ff8c66b078a894a75a0d4f457
|
47
test/test.js
47
test/test.js
@ -5,7 +5,7 @@ const path = require("path");
|
|||||||
const should = require("should");
|
const should = require("should");
|
||||||
const smartgit = require("../dist/index");
|
const smartgit = require("../dist/index");
|
||||||
let paths = {
|
let paths = {
|
||||||
temp: path.resolve('./test/temp/'),
|
temp1: path.resolve('./test/temp/'),
|
||||||
temp2: path.resolve('./test/temp2/'),
|
temp2: path.resolve('./test/temp2/'),
|
||||||
temp3: path.resolve('./test/temp3'),
|
temp3: path.resolve('./test/temp3'),
|
||||||
temp4: path.resolve('./test/temp4'),
|
temp4: path.resolve('./test/temp4'),
|
||||||
@ -16,13 +16,32 @@ describe('smartgit', function () {
|
|||||||
let testGitRepoCloned;
|
let testGitRepoCloned;
|
||||||
let testGitRepoInit;
|
let testGitRepoInit;
|
||||||
describe('instance', function () {
|
describe('instance', function () {
|
||||||
it('should create a valid new instance from path', function () {
|
it('should error for invalid path', function (done) {
|
||||||
testGitRepo = new smartgit.GitRepo('path.temp');
|
try {
|
||||||
|
testGitRepo = new smartgit.GitRepo(paths.temp1);
|
||||||
|
}
|
||||||
|
catch (err) {
|
||||||
|
should(testGitRepo).not.be.instanceOf(smartgit.GitRepo);
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
it('should init a new repo', function (done) {
|
||||||
|
this.timeout(40000);
|
||||||
|
smartgit.createRepoFromInit(paths.temp1)
|
||||||
|
.then((gitRepo) => {
|
||||||
|
should(gitRepo).be.instanceOf(smartgit.GitRepo);
|
||||||
|
done();
|
||||||
|
}).catch(err => {
|
||||||
|
throw err;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
it('should create am instance for an existing repo', function () {
|
||||||
|
testGitRepo = new smartgit.GitRepo(paths.temp1);
|
||||||
should(testGitRepo).be.instanceOf(smartgit.GitRepo);
|
should(testGitRepo).be.instanceOf(smartgit.GitRepo);
|
||||||
});
|
});
|
||||||
it('should clone a repository using ssh and sshkey', function (done) {
|
it('should clone a repository using ssh and sshkey', function (done) {
|
||||||
this.timeout(40000);
|
this.timeout(40000);
|
||||||
smartgit.createRepoFromClone('git@gitlab.com:sandboxzone/sandbox-testrepo.git', paths.temp)
|
smartgit.createRepoFromClone('git@gitlab.com:sandboxzone/sandbox-testrepo.git', paths.temp2)
|
||||||
.then((gitRepo) => {
|
.then((gitRepo) => {
|
||||||
should(gitRepo).be.instanceOf(smartgit.GitRepo);
|
should(gitRepo).be.instanceOf(smartgit.GitRepo);
|
||||||
done();
|
done();
|
||||||
@ -32,7 +51,7 @@ describe('smartgit', function () {
|
|||||||
});
|
});
|
||||||
it('should clone a repository using https', function (done) {
|
it('should clone a repository using https', function (done) {
|
||||||
this.timeout(40000);
|
this.timeout(40000);
|
||||||
smartgit.createRepoFromClone('https://gitlab.com/sandboxzone/sandbox-testrepo.git', paths.temp2)
|
smartgit.createRepoFromClone('https://gitlab.com/sandboxzone/sandbox-testrepo.git', paths.temp3)
|
||||||
.then((gitRepo) => {
|
.then((gitRepo) => {
|
||||||
should(gitRepo).be.instanceOf(smartgit.GitRepo);
|
should(gitRepo).be.instanceOf(smartgit.GitRepo);
|
||||||
done();
|
done();
|
||||||
@ -43,8 +62,14 @@ describe('smartgit', function () {
|
|||||||
});
|
});
|
||||||
describe('.add', function () {
|
describe('.add', function () {
|
||||||
it('should add a file to an existing repository', function () {
|
it('should add a file to an existing repository', function () {
|
||||||
shelljs.exec(`(cd ${paths.temp} && cp ../test.js .)`);
|
shelljs.exec(`(cd ${paths.temp1} && cp ../test.js .)`);
|
||||||
testGitRepo.addAll(paths.temp);
|
testGitRepo.addAll(paths.temp1);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
describe('.check()', function (done) {
|
||||||
|
it('should check a git repo', function () {
|
||||||
|
let checkResult = testGitRepo.check();
|
||||||
|
should(checkResult).be.true();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('commit', function () {
|
describe('commit', function () {
|
||||||
@ -74,6 +99,12 @@ describe('smartgit', function () {
|
|||||||
it('should add a remote', function () {
|
it('should add a remote', function () {
|
||||||
testGitRepo.remoteAdd('origin2', 'https://github.com/pushrocks/somerepo');
|
testGitRepo.remoteAdd('origin2', 'https://github.com/pushrocks/somerepo');
|
||||||
});
|
});
|
||||||
|
it('should', function (done) {
|
||||||
|
testGitRepo.remoteList()
|
||||||
|
.then(() => {
|
||||||
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUVyQixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDaEMsNkJBQTZCO0FBQzdCLGlDQUFnQztBQUVoQywwQ0FBMEM7QUFDMUMsSUFBSSxLQUFLLEdBQUc7SUFDUixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDbEMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUE7QUFFRCxRQUFRLENBQUMsVUFBVSxFQUFFO0lBQ2pCLElBQUksV0FBNkIsQ0FBQTtJQUNqQyxJQUFJLGlCQUFtQyxDQUFBO0lBQ3ZDLElBQUksZUFBaUMsQ0FBQTtJQUNyQyxRQUFRLENBQUMsVUFBVSxFQUFFO1FBQ2pCLEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRTtZQUMvQyxXQUFXLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQy9DLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN2RCxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxnREFBZ0QsRUFBRSxVQUFVLElBQUk7WUFDL0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNuQixRQUFRLENBQUMsbUJBQW1CLENBQUMsaURBQWlELEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQztpQkFDdEYsSUFBSSxD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
|
});
|
||||||
|
});
|
||||||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUVyQixJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7QUFDaEMsNkJBQTZCO0FBQzdCLGlDQUFnQztBQUVoQywwQ0FBMEM7QUFDMUMsSUFBSSxLQUFLLEdBQUc7SUFDUixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQztJQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7SUFDbkMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0NBQ2pDLENBQUE7QUFJRCxRQUFRLENBQUMsVUFBVSxFQUFFO0lBQ2pCLElBQUksV0FBNkIsQ0FBQTtJQUNqQyxJQUFJLGlCQUFtQyxDQUFBO0lBQ3ZDLElBQUksZUFBaUMsQ0FBQTtJQUNyQyxRQUFRLENBQUMsVUFBVSxFQUFFO1FBQ2pCLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxVQUFVLElBQUk7WUFDOUMsSUFBSSxDQUFDO2dCQUNELFdBQVcsR0FBRyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ25ELENBQUU7WUFBQSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNYLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7Z0JBQ3ZELElBQUksRUFBRSxDQUFBO1lBQ1YsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFBO1FBQ0YsRUFBRSxDQUFDLHdCQUF3QixF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
|
46
test/test.ts
46
test/test.ts
@ -6,25 +6,45 @@ import * as should from 'should'
|
|||||||
|
|
||||||
import smartgit = require('../dist/index')
|
import smartgit = require('../dist/index')
|
||||||
let paths = {
|
let paths = {
|
||||||
temp: path.resolve('./test/temp/'),
|
temp1: path.resolve('./test/temp/'),
|
||||||
temp2: path.resolve('./test/temp2/'),
|
temp2: path.resolve('./test/temp2/'),
|
||||||
temp3: path.resolve('./test/temp3'),
|
temp3: path.resolve('./test/temp3'),
|
||||||
temp4: path.resolve('./test/temp4'),
|
temp4: path.resolve('./test/temp4'),
|
||||||
noGit: path.resolve('./test/')
|
noGit: path.resolve('./test/')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
describe('smartgit', function () {
|
describe('smartgit', function () {
|
||||||
let testGitRepo: smartgit.GitRepo
|
let testGitRepo: smartgit.GitRepo
|
||||||
let testGitRepoCloned: smartgit.GitRepo
|
let testGitRepoCloned: smartgit.GitRepo
|
||||||
let testGitRepoInit: smartgit.GitRepo
|
let testGitRepoInit: smartgit.GitRepo
|
||||||
describe('instance', function () {
|
describe('instance', function () {
|
||||||
it('should create a valid new instance from path', function () {
|
it('should error for invalid path', function (done) {
|
||||||
testGitRepo = new smartgit.GitRepo('path.temp')
|
try {
|
||||||
|
testGitRepo = new smartgit.GitRepo(paths.temp1)
|
||||||
|
} catch (err) {
|
||||||
|
should(testGitRepo).not.be.instanceOf(smartgit.GitRepo)
|
||||||
|
done()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
it('should init a new repo', function (done) {
|
||||||
|
this.timeout(40000)
|
||||||
|
smartgit.createRepoFromInit(paths.temp1)
|
||||||
|
.then((gitRepo) => {
|
||||||
|
should(gitRepo).be.instanceOf(smartgit.GitRepo)
|
||||||
|
done()
|
||||||
|
}).catch(err => {
|
||||||
|
throw err
|
||||||
|
})
|
||||||
|
})
|
||||||
|
it('should create am instance for an existing repo', function () {
|
||||||
|
testGitRepo = new smartgit.GitRepo(paths.temp1)
|
||||||
should(testGitRepo).be.instanceOf(smartgit.GitRepo)
|
should(testGitRepo).be.instanceOf(smartgit.GitRepo)
|
||||||
})
|
})
|
||||||
it('should clone a repository using ssh and sshkey', function (done) {
|
it('should clone a repository using ssh and sshkey', function (done) {
|
||||||
this.timeout(40000)
|
this.timeout(40000)
|
||||||
smartgit.createRepoFromClone('git@gitlab.com:sandboxzone/sandbox-testrepo.git', paths.temp)
|
smartgit.createRepoFromClone('git@gitlab.com:sandboxzone/sandbox-testrepo.git', paths.temp2)
|
||||||
.then((gitRepo) => {
|
.then((gitRepo) => {
|
||||||
should(gitRepo).be.instanceOf(smartgit.GitRepo)
|
should(gitRepo).be.instanceOf(smartgit.GitRepo)
|
||||||
done()
|
done()
|
||||||
@ -34,7 +54,7 @@ describe('smartgit', function () {
|
|||||||
})
|
})
|
||||||
it('should clone a repository using https', function (done) {
|
it('should clone a repository using https', function (done) {
|
||||||
this.timeout(40000)
|
this.timeout(40000)
|
||||||
smartgit.createRepoFromClone('https://gitlab.com/sandboxzone/sandbox-testrepo.git', paths.temp2)
|
smartgit.createRepoFromClone('https://gitlab.com/sandboxzone/sandbox-testrepo.git', paths.temp3)
|
||||||
.then((gitRepo) => {
|
.then((gitRepo) => {
|
||||||
should(gitRepo).be.instanceOf(smartgit.GitRepo)
|
should(gitRepo).be.instanceOf(smartgit.GitRepo)
|
||||||
done()
|
done()
|
||||||
@ -45,8 +65,14 @@ describe('smartgit', function () {
|
|||||||
})
|
})
|
||||||
describe('.add', function () {
|
describe('.add', function () {
|
||||||
it('should add a file to an existing repository', function () {
|
it('should add a file to an existing repository', function () {
|
||||||
shelljs.exec(`(cd ${paths.temp} && cp ../test.js .)`)
|
shelljs.exec(`(cd ${paths.temp1} && cp ../test.js .)`)
|
||||||
testGitRepo.addAll(paths.temp)
|
testGitRepo.addAll(paths.temp1)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
describe('.check()', function(done) {
|
||||||
|
it('should check a git repo', function() {
|
||||||
|
let checkResult = testGitRepo.check()
|
||||||
|
should(checkResult).be.true()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
describe('commit', function () {
|
describe('commit', function () {
|
||||||
@ -76,5 +102,11 @@ describe('smartgit', function () {
|
|||||||
it('should add a remote', function () {
|
it('should add a remote', function () {
|
||||||
testGitRepo.remoteAdd('origin2', 'https://github.com/pushrocks/somerepo')
|
testGitRepo.remoteAdd('origin2', 'https://github.com/pushrocks/somerepo')
|
||||||
})
|
})
|
||||||
|
it('should', function(done) {
|
||||||
|
testGitRepo.remoteList()
|
||||||
|
.then(() => {
|
||||||
|
done()
|
||||||
|
})
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -24,7 +24,8 @@ export let createRepoFromClone = (fromArg: string, toArg: string) => {
|
|||||||
export let createRepoFromInit = (destinationDirArg: string) => {
|
export let createRepoFromInit = (destinationDirArg: string) => {
|
||||||
let done = q.defer<GitRepo>()
|
let done = q.defer<GitRepo>()
|
||||||
plugins.smartfile.fs.ensureDir(destinationDirArg)
|
plugins.smartfile.fs.ensureDir(destinationDirArg)
|
||||||
plugins.shelljs.exec(`cd destinationDirArg && git init`)
|
plugins.shelljs.exec(`cd ${destinationDirArg} && git init`)
|
||||||
let newRepo = new GitRepo(destinationDirArg)
|
let newRepo = new GitRepo(destinationDirArg)
|
||||||
done.resolve(newRepo)
|
done.resolve(newRepo)
|
||||||
|
return done.promise
|
||||||
}
|
}
|
||||||
|
@ -8,17 +8,16 @@ export class GitRepo {
|
|||||||
repoBase: string
|
repoBase: string
|
||||||
constructor(repoBaseArg: string) {
|
constructor(repoBaseArg: string) {
|
||||||
this.repoBase = repoBaseArg
|
this.repoBase = repoBaseArg
|
||||||
|
if (!this.check()) {
|
||||||
|
throw new Error('no valid git repo')
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* checks if the Repo is valid
|
* checks if the Repo is valid
|
||||||
*/
|
*/
|
||||||
check(): boolean {
|
check(): boolean {
|
||||||
try {
|
|
||||||
return plugins.smartfile.fs.isDirectory(plugins.path.join(this.repoBase, '.git'))
|
return plugins.smartfile.fs.isDirectory(plugins.path.join(this.repoBase, '.git'))
|
||||||
} catch (err) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -58,10 +57,10 @@ export class GitRepo {
|
|||||||
/**
|
/**
|
||||||
* list remotes for a Gip
|
* list remotes for a Gip
|
||||||
*/
|
*/
|
||||||
remoteList(dirPathArg) {
|
remoteList() {
|
||||||
let done = q.defer()
|
let done = q.defer()
|
||||||
let remotes = {}
|
let remotes = {}
|
||||||
plugins.shelljs.exec(`cd ${dirPathArg} && git remote -v`)
|
plugins.shelljs.exec(`cd ${this.repoBase} && git remote -v`)
|
||||||
done.resolve(remotes)
|
done.resolve(remotes)
|
||||||
return done.promise
|
return done.promise
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user