123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- package query
- import (
- "strings"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/Jguer/yay/v11/pkg/db/mock"
- "github.com/Jguer/yay/v11/pkg/text"
- "github.com/Jguer/aur"
- )
- var (
- pkgA = aur.Pkg{
- Name: "package-a",
- Version: "1.0.0",
- Description: "Package A description",
- Maintainer: "Package A Maintainer",
- }
- pkgARepo = &mock.Package{
- PName: pkgA.Name,
- PVersion: pkgA.Version,
- PDescription: pkgA.Description,
- PSize: 1,
- PISize: 1,
- PDB: mock.NewDB("dba"),
- }
- pkgB = aur.Pkg{
- Name: "package-b",
- Version: "1.0.0",
- Description: "Package B description",
- Maintainer: "Package B Maintainer",
- }
- pkgBRepo = &mock.Package{
- PName: pkgB.Name,
- PVersion: pkgB.Version,
- PDescription: pkgB.Description,
- PSize: 1,
- PISize: 1,
- PDB: mock.NewDB("dbb"),
- }
- )
- func Test_aurQuery_printSearch(t *testing.T) {
- type args struct {
- searchMode SearchVerbosity
- singleLineResults bool
- }
- tests := []struct {
- name string
- q aurQuery
- args args
- useColor bool
- want string
- }{
- {
- name: "AUR,Minimal,NoColor",
- q: aurQuery{pkgA, pkgB},
- args: args{
- searchMode: Minimal,
- },
- want: "package-a\npackage-b\n",
- },
- {
- name: "AUR,DoubleLine,NumberMenu,NoColor",
- q: aurQuery{pkgA, pkgB},
- args: args{
- searchMode: NumberMenu,
- singleLineResults: false,
- },
- want: "1 aur/package-a 1.0.0 (+0 0.00) \n Package A description\n2 aur/package-b 1.0.0 (+0 0.00) \n Package B description\n",
- },
- {
- name: "AUR,SingleLine,NumberMenu,NoColor",
- q: aurQuery{pkgA, pkgB},
- args: args{
- searchMode: NumberMenu,
- singleLineResults: true,
- },
- want: "1 aur/package-a 1.0.0 (+0 0.00) \tPackage A description\n2 aur/package-b 1.0.0 (+0 0.00) \tPackage B description\n",
- },
- {
- name: "AUR,DoubleLine,Detailed,NoColor",
- q: aurQuery{pkgA, pkgB},
- args: args{
- searchMode: Detailed,
- singleLineResults: false,
- },
- want: "aur/package-a 1.0.0 (+0 0.00) \n Package A description\naur/package-b 1.0.0 (+0 0.00) \n Package B description\n",
- },
- {
- name: "AUR,SingleLine,Detailed,NoColor",
- q: aurQuery{pkgA, pkgB},
- args: args{
- searchMode: Detailed,
- singleLineResults: true,
- },
- want: "aur/package-a 1.0.0 (+0 0.00) \tPackage A description\naur/package-b 1.0.0 (+0 0.00) \tPackage B description\n",
- },
- {
- name: "AUR,DoubleLine,Detailed,Color",
- q: aurQuery{pkgA, pkgB},
- args: args{
- searchMode: Detailed,
- singleLineResults: false,
- },
- useColor: true,
- want: "\x1b[1m\x1b[34maur\x1b[0m\x1b[0m/\x1b[1mpackage-a\x1b[0m \x1b[36m1.0.0\x1b[0m\x1b[1m (+0\x1b[0m \x1b[1m0.00) \x1b[0m\n Package A description\n\x1b[1m\x1b[34maur\x1b[0m\x1b[0m/\x1b[1mpackage-b\x1b[0m \x1b[36m1.0.0\x1b[0m\x1b[1m (+0\x1b[0m \x1b[1m0.00) \x1b[0m\n Package B description\n",
- },
- {
- name: "AUR,SingleLine,Detailed,Color",
- q: aurQuery{pkgA, pkgB},
- args: args{
- searchMode: Detailed,
- singleLineResults: true,
- },
- useColor: true,
- want: "\x1b[1m\x1b[34maur\x1b[0m\x1b[0m/\x1b[1mpackage-a\x1b[0m \x1b[36m1.0.0\x1b[0m\x1b[1m (+0\x1b[0m \x1b[1m0.00) \x1b[0m\tPackage A description\n\x1b[1m\x1b[34maur\x1b[0m\x1b[0m/\x1b[1mpackage-b\x1b[0m \x1b[36m1.0.0\x1b[0m\x1b[1m (+0\x1b[0m \x1b[1m0.00) \x1b[0m\tPackage B description\n",
- },
- {
- name: "AUR,NoPackages",
- q: aurQuery{},
- args: args{
- searchMode: Detailed,
- singleLineResults: true,
- },
- useColor: true,
- want: "",
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- w := &strings.Builder{}
- executor := mock.DBExecutor{}
- text.UseColor = tt.useColor
- // Fire
- tt.q.printSearch(w, 1, executor, tt.args.searchMode, false, tt.args.singleLineResults)
- got := w.String()
- assert.Equal(t, tt.want, got)
- })
- }
- }
- func Test_repoQuery_printSearch(t *testing.T) {
- type args struct {
- searchMode SearchVerbosity
- singleLineResults bool
- }
- tests := []struct {
- name string
- q repoQuery
- args args
- useColor bool
- want string
- }{
- {
- name: "REPO,Minimal,NoColor",
- q: repoQuery{pkgARepo, pkgBRepo},
- args: args{
- searchMode: Minimal,
- },
- want: "package-a\npackage-b\n",
- },
- {
- name: "REPO,DoubleLine,NumberMenu,NoColor",
- q: repoQuery{pkgARepo, pkgBRepo},
- args: args{
- searchMode: NumberMenu,
- singleLineResults: false,
- },
- want: "1 dba/package-a 1.0.0 (1.0 B 1.0 B) \n Package A description\n2 dbb/package-b 1.0.0 (1.0 B 1.0 B) \n Package B description\n",
- },
- {
- name: "REPO,SingleLine,NumberMenu,NoColor",
- q: repoQuery{pkgARepo, pkgBRepo},
- args: args{
- searchMode: NumberMenu,
- singleLineResults: true,
- },
- want: "1 dba/package-a 1.0.0 (1.0 B 1.0 B) \tPackage A description\n2 dbb/package-b 1.0.0 (1.0 B 1.0 B) \tPackage B description\n",
- },
- {
- name: "REPO,DoubleLine,Detailed,NoColor",
- q: repoQuery{pkgARepo, pkgBRepo},
- args: args{
- searchMode: Detailed,
- singleLineResults: false,
- },
- want: "dba/package-a 1.0.0 (1.0 B 1.0 B) \n Package A description\ndbb/package-b 1.0.0 (1.0 B 1.0 B) \n Package B description\n",
- },
- {
- name: "REPO,SingleLine,Detailed,NoColor",
- q: repoQuery{pkgARepo, pkgBRepo},
- args: args{
- searchMode: Detailed,
- singleLineResults: true,
- },
- want: "dba/package-a 1.0.0 (1.0 B 1.0 B) \tPackage A description\ndbb/package-b 1.0.0 (1.0 B 1.0 B) \tPackage B description\n",
- },
- {
- name: "AUR,DoubleLine,Detailed,Color",
- q: repoQuery{pkgARepo, pkgBRepo},
- args: args{
- searchMode: Detailed,
- singleLineResults: false,
- },
- useColor: true,
- want: "\x1b[1m\x1b[35mdba\x1b[0m\x1b[0m/\x1b[1mpackage-a\x1b[0m \x1b[36m1.0.0\x1b[0m\x1b[1m (1.0 B 1.0 B) \x1b[0m\n Package A description\n\x1b[1m\x1b[36mdbb\x1b[0m\x1b[0m/\x1b[1mpackage-b\x1b[0m \x1b[36m1.0.0\x1b[0m\x1b[1m (1.0 B 1.0 B) \x1b[0m\n Package B description\n",
- },
- {
- name: "REPO,SingleLine,Detailed,Color",
- q: repoQuery{pkgARepo, pkgBRepo},
- args: args{
- searchMode: Detailed,
- singleLineResults: true,
- },
- useColor: true,
- want: "\x1b[1m\x1b[35mdba\x1b[0m\x1b[0m/\x1b[1mpackage-a\x1b[0m \x1b[36m1.0.0\x1b[0m\x1b[1m (1.0 B 1.0 B) \x1b[0m\tPackage A description\n\x1b[1m\x1b[36mdbb\x1b[0m\x1b[0m/\x1b[1mpackage-b\x1b[0m \x1b[36m1.0.0\x1b[0m\x1b[1m (1.0 B 1.0 B) \x1b[0m\tPackage B description\n",
- },
- {
- name: "REPO,NoPackages",
- q: repoQuery{},
- args: args{
- searchMode: Detailed,
- singleLineResults: true,
- },
- useColor: true,
- want: "",
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- w := &strings.Builder{}
- executor := mock.DBExecutor{}
- text.UseColor = tt.useColor
- // Fire
- tt.q.printSearch(w, executor, tt.args.searchMode, false, tt.args.singleLineResults)
- got := w.String()
- assert.Equal(t, tt.want, got)
- })
- }
- }
|