| package task |
| |
| import ( |
| "context" |
| "strings" |
| "testing" |
| "time" |
| |
| "golang.org/x/build/internal/workflow" |
| ) |
| |
| func TestSyncPrivate(t *testing.T) { |
| fakeRepo := NewFakeRepo(t, "fake") |
| masterCommit := fakeRepo.CommitOnBranch("master", map[string]string{ |
| "hello": "there", |
| }) |
| fakeRepo.Branch("public", masterCommit) |
| publicCommit := fakeRepo.CommitOnBranch("public", map[string]string{ |
| "general": "kenobi", |
| }) |
| |
| sync := &PrivateMasterSyncTask{ |
| Git: &Git{}, |
| PrivateGerritURL: fakeRepo.dir.dir, // kind of wild that this works |
| Ref: "public", |
| } |
| |
| wd := sync.NewDefinition() |
| w, err := workflow.Start(wd, map[string]any{}) |
| if err != nil { |
| t.Fatal(err) |
| } |
| ctx, cancel := context.WithTimeout(context.Background(), time.Minute) |
| defer cancel() |
| _, err = w.Run(ctx, &verboseListener{t: t}) |
| if err != nil { |
| t.Fatal(err) |
| } |
| |
| fakeRepo.runGit("switch", "master") |
| newMasterCommit := strings.TrimSpace(string(fakeRepo.runGit("rev-parse", "HEAD"))) |
| // newMasterCommit := fakeRepo.ReadBranchHead(context.Background(), ) |
| |
| if newMasterCommit != publicCommit { |
| t.Fatalf("unexpected master commit: got %q, want %q", newMasterCommit, publicCommit) |
| } |
| } |