repo_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package main
  2. import (
  3. "os"
  4. "testing"
  5. )
  6. func TestNewRepo(t *testing.T) {
  7. // local mode
  8. r := newRepo("repo", "", "some/repo")
  9. if r.name != "repo" || r.path != "some/repo" {
  10. t.Error()
  11. }
  12. // repo/owner mode
  13. r = newRepo("repo", "github.com/owner/repo", "some/repo")
  14. if r.name != "repo" || r.path != "some/repo" {
  15. t.Error()
  16. }
  17. }
  18. func TestWriteReport(t *testing.T) {
  19. opts, _ = defaultOptions()
  20. r := newRepo("fakerepo", "github.com", "")
  21. r.leaks = []Leak{*sampleLeak(), *sampleLeak()}
  22. r.writeReport(r.leaks)
  23. if _, err := os.Stat("fakerepo_leaks.json"); os.IsNotExist(err) {
  24. t.Error()
  25. } else {
  26. os.Remove("fakerepo_leaks.json")
  27. }
  28. }
  29. func TestAudit(t *testing.T) {
  30. opts, _ = defaultOptions()
  31. opts.RepoMode = true
  32. opts.Tmp = true
  33. opts.URL = "https://github.com/zricethezav/gronit"
  34. owner := newOwner()
  35. r := newRepo("gronit", opts.URL, owner.path)
  36. leaksPst, _ := r.audit()
  37. if !leaksPst {
  38. // TODO setup actual test repo
  39. t.Error()
  40. }
  41. // new owner
  42. opts.URL = "https://github.com/kelseyhightower/nocode"
  43. owner = newOwner()
  44. r = newRepo("nocode", opts.URL, owner.path)
  45. leaksPst, _ = r.audit()
  46. if leaksPst {
  47. t.Error()
  48. }
  49. }
  50. func sampleLeak() *Leak {
  51. return &Leak{
  52. Line: "yoo",
  53. Commit: "mycommit",
  54. Offender: "oh boy",
  55. Reason: "hello",
  56. Msg: "msg",
  57. Time: "time",
  58. Author: "lol",
  59. RepoURL: "yooo",
  60. }
  61. }