Files
Jo 15057c8dab misc(ci): add modernize linter and update versioning (#2870)
* add modernize linter

* lint unused

* update imports

* ignore agent info
2026-06-17 21:09:53 +02:00

83 lines
1.8 KiB
Go

//go:build !integration
package main
import (
"bytes"
"context"
"io"
"os"
"strings"
"testing"
"github.com/Jguer/aur"
"github.com/stretchr/testify/require"
"github.com/Jguer/yay/v13/pkg/db"
"github.com/Jguer/yay/v13/pkg/db/mock"
"github.com/Jguer/yay/v13/pkg/dep"
mockaur "github.com/Jguer/yay/v13/pkg/dep/mock"
"github.com/Jguer/yay/v13/pkg/text"
)
func TestGraphPackageRequiresSingleTarget(t *testing.T) {
t.Parallel()
logger := text.NewLogger(io.Discard, io.Discard, strings.NewReader(""), true, "test")
grapher := dep.NewGrapher(&mock.DBExecutor{}, &mockaur.MockAUR{}, false, false, false, false, false, logger)
err := graphPackage(context.Background(), grapher, []string{"one", "two"})
require.Error(t, err)
}
func TestGraphPackage(t *testing.T) {
t.Parallel()
logger := text.NewLogger(io.Discard, io.Discard, strings.NewReader(""), true, "test")
grapher := dep.NewGrapher(&mock.DBExecutor{
LocalPackageFn: func(string) db.IPackage { return nil },
}, &mockaur.MockAUR{
GetFn: func(ctx context.Context, query *aur.Query) ([]aur.Pkg, error) {
return []aur.Pkg{
{
Name: "target",
PackageBase: "target",
Version: "1.2.3",
},
}, nil
},
}, false, false, false, false, false, logger)
output := captureStdout(t, func() {
err := graphPackage(context.Background(), grapher, []string{"target"})
require.NoError(t, err)
})
require.Contains(t, output, "digraph {")
require.Contains(t, output, "layers map")
}
func captureStdout(t *testing.T, fn func()) string {
orig := os.Stdout
r, w, err := os.Pipe()
require.NoError(t, err)
os.Stdout = w
defer func() {
os.Stdout = orig
}()
buffer := &bytes.Buffer{}
done := make(chan struct{})
go func() {
_, _ = io.Copy(buffer, r)
close(done)
}()
fn()
require.NoError(t, w.Close())
<-done
return buffer.String()
}