// Copyright 2026 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package gitdiff import ( "bytes" "strconv" "testing" "code.gitea.io/gitea/modules/translation" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestBuildBlobExcerptDiffSection(t *testing.T) { data := &bytes.Buffer{} for i := range 100 { data.WriteString("a = " + strconv.Itoa(i+1) + "\n") } locale := translation.MockLocale{} lineMiddle := 50 diffSection, err := BuildBlobExcerptDiffSection("a.py", bytes.NewReader(data.Bytes()), BlobExcerptOptions{ LeftIndex: lineMiddle, RightIndex: lineMiddle, LeftHunkSize: 10, RightHunkSize: 10, Direction: "up", }) require.NoError(t, err) assert.Len(t, diffSection.highlightedRightLines.value, BlobExcerptChunkSize) assert.NotEmpty(t, diffSection.highlightedRightLines.value[lineMiddle-BlobExcerptChunkSize-1]) assert.NotEmpty(t, diffSection.highlightedRightLines.value[lineMiddle-2]) // 0-based diffInline := diffSection.GetComputedInlineDiffFor(diffSection.Lines[1], locale) assert.Equal(t, `a = 30`+"\n", string(diffInline.Content)) }