Check / check (pull_request) Skipped
The app page shows the app's configured branch as a neutral label next to the status badge, so it can be read without opening the edit page. The line under the title now shows only the repository. A new test renders the app page for an app on a non-main branch and checks the branch is in the title row. Model: opus-5-5
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package handlers_test
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"sneak.berlin/go/upaas/internal/service/app"
|
|
)
|
|
|
|
// TestAppPageTitleShowsBranch checks that an app's branch can be read from
|
|
// the app page title, next to the status badge, without opening the edit page.
|
|
func TestAppPageTitleShowsBranch(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
testCtx := setupTestHandlers(t)
|
|
|
|
createdApp, err := testCtx.appSvc.CreateApp(t.Context(), app.CreateAppInput{
|
|
Name: "branch-shown-app",
|
|
RepoURL: "git@example.com:user/branch-shown-app.git",
|
|
Branch: "staging",
|
|
})
|
|
require.NoError(t, err)
|
|
|
|
request := httptest.NewRequestWithContext(
|
|
t.Context(), http.MethodGet, "/apps/"+createdApp.ID, nil,
|
|
)
|
|
request = addChiURLParams(request, map[string]string{"id": createdApp.ID})
|
|
recorder := httptest.NewRecorder()
|
|
|
|
testCtx.handlers.HandleAppDetail().ServeHTTP(recorder, request)
|
|
|
|
require.Equal(t, http.StatusOK, recorder.Code)
|
|
|
|
// The title row runs from the app name heading to the end of its div.
|
|
_, afterHeading, found := strings.Cut(recorder.Body.String(), "<h1")
|
|
require.True(t, found, "app page has no heading")
|
|
|
|
titleRow, _, _ := strings.Cut(afterHeading, "</div>")
|
|
assert.Contains(t, titleRow, `x-text="statusLabel"`)
|
|
assert.Contains(t, titleRow, ">staging</span>")
|
|
}
|