code.oscarkilo.com/klex-git/plan/plan_test.go

..
plan.go
plan_test.go
package plan

import (
  "testing"

  "oscarkilo.com/klex-git/config"
  "oscarkilo.com/klex-git/util"
)

func TestNewPlan(t *testing.T) {
  cfg := &config.Config{
    DatasetsDir: "data",
    FunctionsDir: "funcs",
    PipelinesDir: "pipes",
  }
  commit := &util.CommitInfo{
    ChangedPaths: []string{
      "README.md",
      "data/foo/0.txt",
      "data/foo/1.txt",
      "data/bar/0.txt",
      "data/bee/bop/boo.txt",
      "funcs/foo.js",
      "funcs/bar/baz.js",
      "funcs/README.md",
      "pipes/README.md",
      "pipes/qux.js",
    },
  }
  p := NewPlan(cfg, commit, nil)
  golden := &Plan{
    ChangedDatasets: []string{"bar", "bee/bop", "foo"},
    ChangedFunctions: []string{"bar/baz", "foo"},
    ChangedPipelines: []string{"qux"},
  }
  if p.DebugString() != golden.DebugString() {
    t.Errorf("NewPlan() = %s, want %s", p.DebugString(), golden.DebugString())
  }
}