1
0
mirror of https://github.com/danog/gift.git synced 2024-11-26 20:04:47 +01:00
gift/test/index.test.coffee
Luke Plaster bff9d42b60 Fixed shell expansion/word splitting and injection vulns
The `exec` call in `git.coffee` will be replaced soon but this fixes the issues for now.

Closes #23.
2018-01-22 23:52:27 +08:00

89 lines
2.6 KiB
CoffeeScript

should = require 'should'
git = require '../src'
Repo = require '../src/repo'
fs = require "fs"
exec = require 'flex-exec'
describe "git", ->
describe "()", ->
repo = git "#{__dirname}/fixtures/simple"
it "returns a Repo", ->
repo.should.be.an.instanceof Repo
describe "init()", ->
repo = null
newRepositoryDir = "#{__dirname}/fixtures/new"
before (done) ->
fs.mkdirSync newRepositoryDir
git.init newRepositoryDir, (err, _repo) ->
repo = _repo
done err
it "inits a Repo", ->
repo.should.be.an.instanceof Repo
bare = repo.bare || false
bare.should.be.false
after (done) ->
exec "rm -rf #{newRepositoryDir}", done
describe "init() bare", ->
repo = null
newRepositoryDir = "#{__dirname}/fixtures/bare"
before (done) ->
fs.mkdirSync newRepositoryDir
git.init newRepositoryDir, true, (err, _repo) ->
repo = _repo
done err
it "inits a bare Repo", ->
repo.should.be.an.instanceof Repo
bare = repo.bare || false
bare.should.be.true
after (done) ->
exec "rm -rf #{newRepositoryDir}", done
describe "clone()", ->
@timeout 30000
repo = null
newRepositoryDir = "#{__dirname}/fixtures/clone"
before (done) ->
git.clone "https://github.com/notatestuser/gift.git", newRepositoryDir, (err, _repo) ->
repo = _repo
done err
it "clone a repository", (done) ->
repo.should.be.an.instanceof Repo
repo.remote_list (err, remotes) ->
remotes.should.have.length 1
done()
after (done) ->
exec "rm -rf #{newRepositoryDir}", done
describe "clone() with depth", ->
@timeout 30000
repo = null
newRepositoryDir = "#{__dirname}/fixtures/clone_depth"
before (done) ->
git.clone "https://github.com/notatestuser/gift.git", newRepositoryDir, 1, (err, _repo) ->
repo = _repo
done err
it "clone a repository", (done) ->
repo.should.be.an.instanceof Repo
repo.remote_list (err, remotes) ->
remotes.should.have.length 1
done()
after (done) ->
exec "rm -rf #{newRepositoryDir}", done
describe "clone() with depth and branch", ->
@timeout 30000
repo = null
newRepositoryDir = "#{__dirname}/fixtures/clone_depth_branch"
before (done) ->
git.clone "https://github.com/notatestuser/gift.git", newRepositoryDir, 1, "develop", (err, _repo) ->
repo = _repo
done err
it "clone a repository", (done) ->
repo.should.be.an.instanceof Repo
repo.branch "develop", (err, head) ->
done err
after (done) ->
exec "rm -rf #{newRepositoryDir}", done