46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package git
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"testing"
|
|
)
|
|
|
|
func TestResetToCommit(t *testing.T) {
|
|
repo := createTestRepo(t)
|
|
seedTestRepo(t, repo)
|
|
// create commit to reset to
|
|
commitId, _ := updateReadme(t, repo, "testing reset")
|
|
// create commit to reset from
|
|
nextCommitId, _ := updateReadme(t, repo, "will be reset")
|
|
|
|
// confirm that we wrote "will be reset" to the readme
|
|
newBytes, err := ioutil.ReadFile(pathInRepo(repo, "README"))
|
|
checkFatal(t, err)
|
|
if string(newBytes) != "will be reset" {
|
|
t.Fatalf("expected %s to equal 'will be reset'", string(newBytes))
|
|
}
|
|
|
|
// confirm that the head of the repo is the next commit id
|
|
head, err := repo.Head()
|
|
checkFatal(t, err)
|
|
if head.Target().String() != nextCommitId.String() {
|
|
t.Fatalf(
|
|
"expected to be at latest commit %s, but was %s",
|
|
nextCommitId.String(),
|
|
head.Target().String(),
|
|
)
|
|
}
|
|
|
|
commitToResetTo, err := repo.LookupCommit(commitId)
|
|
checkFatal(t, err)
|
|
|
|
repo.ResetToCommit(commitToResetTo, ResetHard, &CheckoutOpts{})
|
|
|
|
// check that the file now reads "testing reset" like it did before
|
|
bytes, err := ioutil.ReadFile(pathInRepo(repo, "README"))
|
|
checkFatal(t, err)
|
|
if string(bytes) != "testing reset" {
|
|
t.Fatalf("expected %s to equal 'testing reset'", string(bytes))
|
|
}
|
|
}
|