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