// Copyright 2024 The Forgejo Authors. All rights reserved.
// SPDX-License-Identifier: MIT

package integration

import (
	"net/http"
	"strings"
	"testing"

	"forgejo.org/tests"

	"github.com/stretchr/testify/assert"
)

// TestRepoCollaborators is a test for contents of Collaborators tab in the repo settings
// It only covers a few elements and can be extended as needed
func TestRepoCollaborators(t *testing.T) {
	defer tests.PrepareTestEnv(t)()
	session := loginUser(t, "user2")

	// Visit Collaborators tab of repo settings
	response := session.MakeRequest(t, NewRequest(t, "GET", "/user2/repo1/settings/collaboration"), http.StatusOK)
	page := NewHTMLParser(t, response.Body).Find(".repo-setting-content")

	// Verify header
	assert.Equal(t, "Collaborators", strings.TrimSpace(page.Find("h4").Text()))

	// Verify button text
	page = page.Find("#repo-collab-form")
	assert.Equal(t, "Add collaborator", strings.TrimSpace(page.Find("button.primary").Text()))

	// Verify placeholder
	placeholder, exists := page.Find("#search-user-box input").Attr("placeholder")
	assert.True(t, exists)
	assert.Equal(t, "Search users…", placeholder)
}
