Extract publication recovery observation
This commit is contained in:
@@ -42,6 +42,46 @@ func TestResolveUsesPushURLAndQueriesWithoutMutation(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestObserveEndpointUsesCapturedURLAndCurrentNamedTransportSettings(t *testing.T) {
|
||||
repo := newRemoteFixture(t)
|
||||
gitRun(t, repo.work, "remote", "remove", "origin")
|
||||
gitRun(t, repo.work, "config", "remote.renamed.receivepack", "git-receive-pack")
|
||||
endpoint, err := ObserveEndpoint(context.Background(), repo.work, repo.bare, "renamed")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if endpoint.PushURL != repo.bare || len(endpoint.transport) != 1 || endpoint.transport[0] != "remote."+endpoint.ScopedName+".receivepack=git-receive-pack" {
|
||||
t.Fatalf("observed endpoint = %#v", endpoint)
|
||||
}
|
||||
ref, err := endpoint.QueryTag(context.Background(), repo.work, "v1.2.3")
|
||||
if err != nil || ref.State != RefAbsent {
|
||||
t.Fatalf("QueryTag() = %#v, %v", ref, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestObserveEndpointDoesNotSelectOriginWithoutAName(t *testing.T) {
|
||||
repo := newRemoteFixture(t)
|
||||
gitRun(t, repo.work, "config", "remote.origin.receivepack", "custom-receive-pack")
|
||||
endpoint, err := ObserveEndpoint(context.Background(), repo.work, repo.bare, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(endpoint.transport) != 0 {
|
||||
t.Fatalf("transport settings = %v; unnamed endpoint must not select origin", endpoint.transport)
|
||||
}
|
||||
}
|
||||
|
||||
func TestObserveEndpointRejectsCapturedURLRewriting(t *testing.T) {
|
||||
repo := newRemoteFixture(t)
|
||||
replacement := filepath.Join(t.TempDir(), "replacement.git")
|
||||
gitRun(t, repo.work, "init", "--bare", replacement)
|
||||
gitRun(t, repo.work, "config", "url."+replacement+".insteadOf", repo.bare)
|
||||
_, err := ObserveEndpoint(context.Background(), repo.work, repo.bare, "")
|
||||
if !errors.Is(err, ErrEndpointChanged) {
|
||||
t.Fatalf("ObserveEndpoint() error = %v, want ErrEndpointChanged", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRemoteTagOperationsAcceptSlashContainingRefs(t *testing.T) {
|
||||
fixture := newRemoteFixture(t)
|
||||
endpoint, err := Resolve(context.Background(), fixture.work, "origin")
|
||||
|
||||
Reference in New Issue
Block a user