func TestSettingUpBaselineFilesSetsUpACommitInRepo(t *testing.T) { cleanTestData() repo := RepoLocatedAt("data/testLocation1") git.Init(repo.root) git.SetupBaselineFiles(repo.root, "a.txt", "alice/bob/b.txt") verifyPresenceOfGitRepoWithCommits("data/testLocation1", 1, t) }
func setupOriginAndClones(originLocation, cloneLocation string) (GitRepo, GitRepo) { origin := RepoLocatedAt(originLocation) git.Init(origin.root) git.SetupBaselineFiles(origin.root, "a.txt", "alice/bob/b.txt") git.GitClone(origin.root, cloneLocation) return origin, RepoLocatedAt(cloneLocation) }
func TestAddingSimpleFileShouldExitZero(t *testing.T) { withNewTmpGitRepo(func(gitPath string) { git.SetupBaselineFiles(gitPath, "simple-file") exitStatus := runTalisman(gitPath, git.EarliestCommit(gitPath), git.LatestCommit(gitPath)) assert.Equal(t, 0, exitStatus, "Expected run() to return 0 and pass as no suspicious files are in the repo") }) }
func TestCloningARepoToAnotherWorks(t *testing.T) { cleanTestData() repo := RepoLocatedAt("data/testLocation1") git.Init(repo.root) git.SetupBaselineFiles(repo.root, "a.txt", "alice/bob/b.txt") git.GitClone(repo.root, "data/somewhereElse/testLocationClone") verifyPresenceOfGitRepoWithCommits("data/testLocation1", 1, t) verifyPresenceOfGitRepoWithCommits("data/somewhereElse/testLocationClone", 1, t) }
func TestEarliestCommits(t *testing.T) { cleanTestData() repo := RepoLocatedAt("data/testLocation1") git.Init(repo.root) git.SetupBaselineFiles(repo.root, "a.txt") initialCommit := git.EarliestCommit(repo.root) git.AppendFileContent(repo.root, "a.txt", "\nmonkey see.\n", "monkey do.") git.AddAndcommit(repo.root, "a.txt", "modified content") assert.Equal(t, initialCommit, git.EarliestCommit(repo.root), "First commit is not expected to change on repo modifications") }
func TestRemovingFilesInARepoWorks(t *testing.T) { cleanTestData() repo := RepoLocatedAt("data/testLocation1") git.Init(repo.root) git.SetupBaselineFiles(repo.root, "a.txt", "alice/bob/b.txt") git.RemoveFile(repo.root, "a.txt") assert.False(t, exists("data/testLocation1/a.txt"), "Unexpected. Deleted file a.txt still exists inside the repo") git.AddAndcommit(repo.root, "a.txt", "removed it") verifyPresenceOfGitRepoWithCommits("data/testLocation1", 2, t) }
func TestAddingSecretKeyShouldExitOne(t *testing.T) { withNewTmpGitRepo(func(gitPath string) { git.SetupBaselineFiles(gitPath, "simple-file") git.CreateFileWithContents(gitPath, "private.pem", "secret") git.AddAndcommit(gitPath, "*", "add private key") exitStatus := runTalisman(gitPath, git.EarliestCommit(gitPath), git.LatestCommit(gitPath)) assert.Equal(t, 1, exitStatus, "Expected run() to return 1 and fail as pem file was present in the repo") }) }
func TestLatestCommits(t *testing.T) { cleanTestData() repo := RepoLocatedAt("data/testLocation1") git.Init(repo.root) git.SetupBaselineFiles(repo.root, "a.txt") git.AppendFileContent(repo.root, "a.txt", "\nmonkey see.\n", "monkey do.") git.AddAndcommit(repo.root, "a.txt", "modified content") git.AppendFileContent(repo.root, "a.txt", "\nline n-1.\n", "line n.") git.AddAndcommit(repo.root, "a.txt", "more modified content") assert.NotEqual(t, git.EarliestCommit(repo.root), git.LatestCommit(repo.root)) //bad test. }
func TestEditingFilesInARepoWorks(t *testing.T) { cleanTestData() repo := RepoLocatedAt("data/testLocation1") git.Init(repo.root) git.SetupBaselineFiles(repo.root, "a.txt", "alice/bob/b.txt") git.AppendFileContent(repo.root, "a.txt", "\nmonkey see.\n", "monkey do.") content := git.FileContents(repo.root, "a.txt") assert.True(t, strings.HasSuffix(string(content), "monkey see.\nmonkey do.")) git.AddAndcommit(repo.root, "a.txt", "modified content") verifyPresenceOfGitRepoWithCommits("data/testLocation1", 2, t) }
func TestAddingSecretKeyShouldExitZeroIfPEMFilesAreIgnored(t *testing.T) { withNewTmpGitRepo(func(gitPath string) { git.SetupBaselineFiles(gitPath, "simple-file") git.CreateFileWithContents(gitPath, "private.pem", "secret") git.CreateFileWithContents(gitPath, ".talismanignore", "*.pem") git.AddAndcommit(gitPath, "*", "add private key") exitStatus := runTalisman(gitPath, git.EarliestCommit(gitPath), git.LatestCommit(gitPath)) assert.Equal(t, 0, exitStatus, "Expected run() to return 0 and pass as pem file was ignored") }) }