golang.org/x/build@v0.0.0-20240506185731-218518f32b70/internal/task/sync_private_test.go (about)

     1  package task
     2  
     3  import (
     4  	"context"
     5  	"strings"
     6  	"testing"
     7  	"time"
     8  
     9  	"golang.org/x/build/internal/workflow"
    10  )
    11  
    12  func TestSyncPrivate(t *testing.T) {
    13  	fakeRepo := NewFakeRepo(t, "fake")
    14  	masterCommit := fakeRepo.CommitOnBranch("master", map[string]string{
    15  		"hello": "there",
    16  	})
    17  	fakeRepo.Branch("public", masterCommit)
    18  	publicCommit := fakeRepo.CommitOnBranch("public", map[string]string{
    19  		"general": "kenobi",
    20  	})
    21  
    22  	sync := &PrivateMasterSyncTask{
    23  		Git:              &Git{},
    24  		PrivateGerritURL: fakeRepo.dir.dir, // kind of wild that this works
    25  		Ref:              "public",
    26  	}
    27  
    28  	wd := sync.NewDefinition()
    29  	w, err := workflow.Start(wd, map[string]any{})
    30  	if err != nil {
    31  		t.Fatal(err)
    32  	}
    33  	ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
    34  	defer cancel()
    35  	_, err = w.Run(ctx, &verboseListener{t: t})
    36  	if err != nil {
    37  		t.Fatal(err)
    38  	}
    39  
    40  	fakeRepo.runGit("switch", "master")
    41  	newMasterCommit := strings.TrimSpace(string(fakeRepo.runGit("rev-parse", "HEAD")))
    42  	// newMasterCommit := fakeRepo.ReadBranchHead(context.Background(), )
    43  
    44  	if newMasterCommit != publicCommit {
    45  		t.Fatalf("unexpected master commit: got %q, want %q", newMasterCommit, publicCommit)
    46  	}
    47  }