mirror of
https://gitea.com/gitea/tea.git
synced 2026-10-26 19:11:25 +01:00
42 lines
1.7 KiB
Go
42 lines
1.7 KiB
Go
// Copyright 2026 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package app
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"gitea.dev/tea/internal/clierr"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestPullViewResolvesCurrentBranch(t *testing.T) {
|
|
server := newAuthenticatedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
switch {
|
|
case r.URL.Path == "/api/v1/repos/alice/project/pulls/9":
|
|
_, _ = fmt.Fprint(w, `{"number":9,"title":"Feature","state":"open","head":{"ref":"feature","sha":"abc"}}`)
|
|
case r.URL.Query().Get("page") != "1":
|
|
_, _ = fmt.Fprint(w, `[]`)
|
|
case r.URL.Path == "/api/v1/repos/alice/project/pulls":
|
|
require.Equal(t, "open", r.URL.Query().Get("state"))
|
|
_, _ = fmt.Fprint(w, `[{"number":9,"title":"Feature","html_url":"https://example.org/pr/9","state":"open","head":{"ref":"feature","sha":"abc","repo":{"full_name":"alice/project"}}}]`)
|
|
default:
|
|
_, _ = fmt.Fprint(w, `[]`)
|
|
}
|
|
}))
|
|
defer server.Close()
|
|
deps, out, _ := serverDeps(t, server.URL)
|
|
deps.Getenv = serverEnv(server.URL, map[string]string{"TEA_REPO": "alice/project"})
|
|
deps.Git = &fakeGit{results: map[string]string{"symbolic-ref --quiet HEAD": "feature"}}
|
|
require.NoError(t, Execute(context.Background(), deps, []string{"pr", "view", "--json=number,title"}))
|
|
require.JSONEq(t, `{"number":9,"title":"Feature"}`, out.String())
|
|
deps.Git = &fakeGit{results: map[string]string{}}
|
|
require.Equal(t, clierr.Usage, clierr.ExitCode(Execute(context.Background(), deps, []string{"pr", "view"})))
|
|
err := Execute(context.Background(), deps, []string{"pr", "view", "-R", "alice/project"})
|
|
require.Equal(t, clierr.Usage, clierr.ExitCode(err))
|
|
require.EqualError(t, err, "pass a pull request number, URL or branch with --repo")
|
|
}
|