mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-23 20:17:03 +01:00
87261f3fb9
Creating a new buffered reader for every part of the blame can miss lines, as it will read and buffer bytes that the next buffered reader will not get. Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
40 lines
946 B
Go
40 lines
946 B
Go
// Copyright 2019 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package git
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestReadingBlameOutput(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
defer cancel()
|
|
|
|
blameReader, err := CreateBlameReader(ctx, "./tests/repos/repo5_pulls", "f32b0a9dfd09a60f616f29158f772cedd89942d2", "README.md")
|
|
assert.NoError(t, err)
|
|
defer blameReader.Close()
|
|
|
|
parts := []*BlamePart{
|
|
{
|
|
"72866af952e98d02a73003501836074b286a78f6",
|
|
[]string{
|
|
"# test_repo",
|
|
"Test repository for testing migration from github to gitea",
|
|
},
|
|
},
|
|
{
|
|
"f32b0a9dfd09a60f616f29158f772cedd89942d2",
|
|
[]string{"", "Do not make any changes to this repo it is used for unit testing"},
|
|
},
|
|
}
|
|
|
|
for _, part := range parts {
|
|
actualPart, err := blameReader.NextPart()
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, part, actualPart)
|
|
}
|
|
}
|