code.gitea.io/gitea@v1.22.3/tests/integration/api_repo_languages_test.go (about)

     1  // Copyright 2020 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package integration
     5  
     6  import (
     7  	"net/http"
     8  	"net/url"
     9  	"testing"
    10  	"time"
    11  
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func TestRepoLanguages(t *testing.T) {
    16  	onGiteaRun(t, func(t *testing.T, u *url.URL) {
    17  		session := loginUser(t, "user2")
    18  
    19  		// Request editor page
    20  		req := NewRequest(t, "GET", "/user2/repo1/_new/master/")
    21  		resp := session.MakeRequest(t, req, http.StatusOK)
    22  
    23  		doc := NewHTMLParser(t, resp.Body)
    24  		lastCommit := doc.GetInputValueByName("last_commit")
    25  		assert.NotEmpty(t, lastCommit)
    26  
    27  		// Save new file to master branch
    28  		req = NewRequestWithValues(t, "POST", "/user2/repo1/_new/master/", map[string]string{
    29  			"_csrf":         doc.GetCSRF(),
    30  			"last_commit":   lastCommit,
    31  			"tree_path":     "test.go",
    32  			"content":       "package main",
    33  			"commit_choice": "direct",
    34  		})
    35  		session.MakeRequest(t, req, http.StatusSeeOther)
    36  
    37  		// let gitea calculate language stats
    38  		time.Sleep(time.Second)
    39  
    40  		// Save new file to master branch
    41  		req = NewRequest(t, "GET", "/api/v1/repos/user2/repo1/languages")
    42  		resp = MakeRequest(t, req, http.StatusOK)
    43  
    44  		var languages map[string]int64
    45  		DecodeJSON(t, resp, &languages)
    46  
    47  		assert.InDeltaMapValues(t, map[string]int64{"Go": 12}, languages, 0)
    48  	})
    49  }