81 lines
2.8 KiB
TypeScript
81 lines
2.8 KiB
TypeScript
import 'typings-test'
|
|
import beautylog = require('beautylog')
|
|
let shelljs = require('shelljs')
|
|
import path = require('path')
|
|
import * as should from 'should'
|
|
|
|
import smartgit = require('../dist/index')
|
|
let paths = {
|
|
temp: path.resolve('./test/temp/'),
|
|
temp2: path.resolve('./test/temp2/'),
|
|
temp3: path.resolve('./test/temp3'),
|
|
temp4: path.resolve('./test/temp4'),
|
|
noGit: path.resolve('./test/')
|
|
}
|
|
|
|
describe('smartgit', function () {
|
|
let testGitRepo: smartgit.GitRepo
|
|
let testGitRepoCloned: smartgit.GitRepo
|
|
let testGitRepoInit: smartgit.GitRepo
|
|
describe('instance', function () {
|
|
it('should create a valid new instance from path', function () {
|
|
testGitRepo = new smartgit.GitRepo('path.temp')
|
|
should(testGitRepo).be.instanceOf(smartgit.GitRepo)
|
|
})
|
|
it('should clone a repository using ssh and sshkey', function (done) {
|
|
this.timeout(40000)
|
|
smartgit.createRepoFromClone('git@gitlab.com:sandboxzone/sandbox-testrepo.git', paths.temp)
|
|
.then((gitRepo) => {
|
|
should(gitRepo).be.instanceOf(smartgit.GitRepo)
|
|
done()
|
|
}).catch(err => {
|
|
throw err
|
|
})
|
|
})
|
|
it('should clone a repository using https', function (done) {
|
|
this.timeout(40000)
|
|
smartgit.createRepoFromClone('https://gitlab.com/sandboxzone/sandbox-testrepo.git', paths.temp2)
|
|
.then((gitRepo) => {
|
|
should(gitRepo).be.instanceOf(smartgit.GitRepo)
|
|
done()
|
|
}).catch(err => {
|
|
throw err
|
|
})
|
|
})
|
|
})
|
|
describe('.add', function () {
|
|
it('should add a file to an existing repository', function () {
|
|
shelljs.exec(`(cd ${paths.temp} && cp ../test.js .)`)
|
|
testGitRepo.addAll(paths.temp)
|
|
})
|
|
})
|
|
describe('commit', function () {
|
|
it('should commit a new file to an existing repository', function () {
|
|
testGitRepo.commit('added a new file')
|
|
})
|
|
})
|
|
describe('pull', function () {
|
|
this.timeout(40000)
|
|
it('should pull from origin', function (done) {
|
|
testGitRepo.pull()
|
|
.then(() => {
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
describe('push', function () {
|
|
this.timeout(40000)
|
|
it('should push to origin', function (done) {
|
|
testGitRepo.push('origin', 'master')
|
|
.then(() => {
|
|
done()
|
|
})
|
|
})
|
|
})
|
|
describe('remote', function () {
|
|
it('should add a remote', function () {
|
|
testGitRepo.remoteAdd('origin2', 'https://github.com/pushrocks/somerepo')
|
|
})
|
|
})
|
|
})
|