Simplify listHeader tests

This commit is contained in:
Mislav Marohnić 2020-03-05 13:16:53 +01:00
parent 3d48d40b69
commit 9cd53b8f19
2 changed files with 111 additions and 284 deletions

View file

@ -129,149 +129,6 @@ Showing 3 of 3 issues in OWNER/REPO
}
}
func TestIssueList_limit(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/issueList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(issueListCmd, "issue list -L 10")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 3 of 3 issues in OWNER/REPO
`)
}
func TestIssueList_smallLimit(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/issueList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(issueListCmd, "issue list -L 2")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 2 of 3 issues in OWNER/REPO
`)
}
func TestIssueList_multipleFilterWithLimit(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/issueList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(issueListCmd, "issue list -s open -l web -L 2")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 2 of 3 issues in OWNER/REPO that match your search
`)
}
func TestIssueList_multipleFilterWithoutLimit(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/issueList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(issueListCmd, "issue list -s open -l web")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 3 of 3 issues in OWNER/REPO that match your search
`)
}
func TestIssueList_singleFilter(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/issueList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(issueListCmd, "issue list -s open")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 3 of 3 issues in OWNER/REPO that match your search
`)
}
func TestIssueList_singleResultWithFilter(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
respBody := bytes.NewBufferString(`{
"data": {
"repository": {
"hasIssuesEnabled": true,
"issues": {
"totalCount": 1,
"nodes": [
{
"number": 1,
"title": "number won",
"url": "https://wow.com",
"labels": {
"nodes": [
{
"name": "label"
}
],
"totalCount": 1
}
}
]
}
}
}
}`)
http.StubResponse(200, respBody)
output, err := RunCommand(issueListCmd, "issue list -s open")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 1 of 1 issue in OWNER/REPO that matches your search
`)
}
func TestIssueList_withFlags(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
@ -702,3 +559,114 @@ func TestIssueCreate_webTitleBody(t *testing.T) {
eq(t, url, "https://github.com/OWNER/REPO/issues/new?title=mytitle&body=mybody")
eq(t, output.String(), "Opening github.com/OWNER/REPO/issues/new in your browser.\n")
}
func Test_listHeader(t *testing.T) {
type args struct {
repoName string
itemName string
matchCount int
totalMatchCount int
hasFilters bool
}
tests := []struct {
name string
args args
want string
}{
{
name: "no results",
args: args{
repoName: "REPO",
itemName: "table",
matchCount: 0,
totalMatchCount: 0,
hasFilters: false,
},
want: "There are no open tables in REPO",
},
{
name: "no matches after filters",
args: args{
repoName: "REPO",
itemName: "Luftballon",
matchCount: 0,
totalMatchCount: 0,
hasFilters: true,
},
want: "No Luftballons match your search in REPO",
},
{
name: "one result",
args: args{
repoName: "REPO",
itemName: "genie",
matchCount: 1,
totalMatchCount: 23,
hasFilters: false,
},
want: "Showing 1 of 23 genies in REPO",
},
{
name: "one result after filters",
args: args{
repoName: "REPO",
itemName: "tiny cup",
matchCount: 1,
totalMatchCount: 23,
hasFilters: true,
},
want: "Showing 1 of 23 tiny cups in REPO that match your search",
},
{
name: "one result in total",
args: args{
repoName: "REPO",
itemName: "chip",
matchCount: 1,
totalMatchCount: 1,
hasFilters: false,
},
want: "Showing 1 of 1 chip in REPO",
},
{
name: "one result in total after filters",
args: args{
repoName: "REPO",
itemName: "spicy noodle",
matchCount: 1,
totalMatchCount: 1,
hasFilters: true,
},
want: "Showing 1 of 1 spicy noodle in REPO that matches your search",
},
{
name: "multiple results",
args: args{
repoName: "REPO",
itemName: "plant",
matchCount: 4,
totalMatchCount: 23,
hasFilters: false,
},
want: "Showing 4 of 23 plants in REPO",
},
{
name: "multiple results after filters",
args: args{
repoName: "REPO",
itemName: "boomerang",
matchCount: 4,
totalMatchCount: 23,
hasFilters: true,
},
want: "Showing 4 of 23 boomerangs in REPO that match your search",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := listHeader(tt.args.repoName, tt.args.itemName, tt.args.matchCount, tt.args.totalMatchCount, tt.args.hasFilters); got != tt.want {
t.Errorf("listHeader() = %v, want %v", got, tt.want)
}
})
}
}

View file

@ -211,147 +211,6 @@ Showing 3 of 3 pull requests in OWNER/REPO
`)
}
func TestPRList_limit(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/prList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(prListCmd, "pr list -L 10")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 3 of 3 pull requests in OWNER/REPO
`)
}
func TestPRList_smallLimit(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/prList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(prListCmd, "pr list -L 2")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 2 of 3 pull requests in OWNER/REPO
`)
}
func TestPRList_multipleFilterWithLimit(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/prList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(prListCmd, "pr list -s open -l one -L 2")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 2 of 3 pull requests in OWNER/REPO that match your search
`)
}
func TestPRList_multipleFilterWithoutLimit(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/prList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(prListCmd, "pr list -s open -l one")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 3 of 3 pull requests in OWNER/REPO that match your search
`)
}
func TestPRList_singleFilter(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
jsonFile, _ := os.Open("../test/fixtures/prList.json")
defer jsonFile.Close()
http.StubResponse(200, jsonFile)
output, err := RunCommand(prListCmd, "pr list -s open")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 3 of 3 pull requests in OWNER/REPO that match your search
`)
}
func TestPRList_singleResultWithFilter(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()
http.StubRepoResponse("OWNER", "REPO")
respBody := bytes.NewBufferString(`{
"data": {
"repository": {
"pullRequests": {
"totalCount": 1,
"edges": [
{
"node": {
"number": 32,
"title": "New feature",
"url": "https://github.com/monalisa/hello/pull/32",
"headRefName": "feature"
}
}
],
"pageInfo": {
"hasNextPage": false,
"endCursor": ""
}
}
}
}
}`)
http.StubResponse(200, respBody)
output, err := RunCommand(prListCmd, "pr list -s open -B develop")
if err != nil {
t.Fatal(err)
}
eq(t, output.Stderr(), `
Showing 1 of 1 pull request in OWNER/REPO that matches your search
`)
}
func TestPRList_filtering(t *testing.T) {
initBlankContext("OWNER/REPO", "master")
http := initFakeHTTP()