From 31e8a87598baa60b590d93f5ea7bfac95a516f3b Mon Sep 17 00:00:00 2001 From: Tyler McGoffin Date: Thu, 24 Oct 2024 10:01:39 -0700 Subject: [PATCH 1/4] Alphabetize test functions While swarming on this, I've encountered many merge conflicts based on where folks have introduced new test functions. Alphabetizing them should reduce the number of merge conflicts we encounter while introducing more of these tests moving forward --- acceptance/acceptance_test.go | 148 +++++++++++++++++----------------- 1 file changed, 74 insertions(+), 74 deletions(-) diff --git a/acceptance/acceptance_test.go b/acceptance/acceptance_test.go index e764abbbc..ede3fc191 100644 --- a/acceptance/acceptance_test.go +++ b/acceptance/acceptance_test.go @@ -27,33 +27,6 @@ func TestMain(m *testing.M) { })) } -func TestPullRequests(t *testing.T) { - var tsEnv testScriptEnv - if err := tsEnv.fromEnv(); err != nil { - t.Fatal(err) - } - - testscript.Run(t, testScriptParamsFor(tsEnv, "pr")) -} - -func TestIssues(t *testing.T) { - var tsEnv testScriptEnv - if err := tsEnv.fromEnv(); err != nil { - t.Fatal(err) - } - - testscript.Run(t, testScriptParamsFor(tsEnv, "pr")) -} - -func TestWorkflows(t *testing.T) { - var tsEnv testScriptEnv - if err := tsEnv.fromEnv(); err != nil { - t.Fatal(err) - } - - testscript.Run(t, testScriptParamsFor(tsEnv, "workflow")) -} - func TestAPI(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { @@ -72,51 +45,6 @@ func TestAuth(t *testing.T) { testscript.Run(t, testScriptParamsFor(tsEnv, "auth")) } -func TestReleases(t *testing.T) { - var tsEnv testScriptEnv - if err := tsEnv.fromEnv(); err != nil { - t.Fatal(err) - } - - testscript.Run(t, testScriptParamsFor(tsEnv, "release")) -} - -func TestSearches(t *testing.T) { - var tsEnv testScriptEnv - if err := tsEnv.fromEnv(); err != nil { - t.Fatal(err) - } - - testscript.Run(t, testScriptParamsFor(tsEnv, "search")) -} - -func TestRepo(t *testing.T) { - var tsEnv testScriptEnv - if err := tsEnv.fromEnv(); err != nil { - t.Fatal(err) - } - - testscript.Run(t, testScriptParamsFor(tsEnv, "repo")) -} - -func TestSecrets(t *testing.T) { - var tsEnv testScriptEnv - if err := tsEnv.fromEnv(); err != nil { - t.Fatal(err) - } - - testscript.Run(t, testScriptParamsFor(tsEnv, "secret")) -} - -func TestVariables(t *testing.T) { - var tsEnv testScriptEnv - if err := tsEnv.fromEnv(); err != nil { - t.Fatal(err) - } - - testscript.Run(t, testScriptParamsFor(tsEnv, "variable")) -} - func TestGPGKeys(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { @@ -126,6 +54,15 @@ func TestGPGKeys(t *testing.T) { testscript.Run(t, testScriptParamsFor(tsEnv, "gpg-key")) } +func TestIssues(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "pr")) +} + func TestLabels(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { @@ -135,6 +72,60 @@ func TestLabels(t *testing.T) { testscript.Run(t, testScriptParamsFor(tsEnv, "label")) } +func TestOrg(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "org")) +} + +func TestPullRequests(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "pr")) +} + +func TestReleases(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "release")) +} + +func TestRepo(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "repo")) +} + +func TestSearches(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "search")) +} + +func TestSecrets(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "secret")) +} + func TestSSHKeys(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { @@ -144,13 +135,22 @@ func TestSSHKeys(t *testing.T) { testscript.Run(t, testScriptParamsFor(tsEnv, "ssh-key")) } -func TestOrg(t *testing.T) { +func TestVariables(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "org")) + testscript.Run(t, testScriptParamsFor(tsEnv, "variable")) +} + +func TestWorkflows(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "workflow")) } func testScriptParamsFor(tsEnv testScriptEnv, command string) testscript.Params { From 8b5c5385c7748d52fda541e4ce064c00f120f4a6 Mon Sep 17 00:00:00 2001 From: Tyler McGoffin Date: Thu, 24 Oct 2024 12:18:56 -0700 Subject: [PATCH 2/4] Add TestProject to acceptance_test.go --- acceptance/acceptance_test.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/acceptance/acceptance_test.go b/acceptance/acceptance_test.go index ede3fc191..dc4eb514a 100644 --- a/acceptance/acceptance_test.go +++ b/acceptance/acceptance_test.go @@ -81,6 +81,15 @@ func TestOrg(t *testing.T) { testscript.Run(t, testScriptParamsFor(tsEnv, "org")) } +func TestProject(t *testing.T) { + var tsEnv testScriptEnv + if err := tsEnv.fromEnv(); err != nil { + t.Fatal(err) + } + + testscript.Run(t, testScriptParamsFor(tsEnv, "project")) +} + func TestPullRequests(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { From 714830434485612cdfc379c58401e1daa7de7546 Mon Sep 17 00:00:00 2001 From: Tyler McGoffin Date: Thu, 24 Oct 2024 12:53:52 -0700 Subject: [PATCH 3/4] Add acceptance test for project-create and project-delete --- .../testdata/project/project-create-delete.txtar | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 acceptance/testdata/project/project-create-delete.txtar diff --git a/acceptance/testdata/project/project-create-delete.txtar b/acceptance/testdata/project/project-create-delete.txtar new file mode 100644 index 000000000..fe5ca41cf --- /dev/null +++ b/acceptance/testdata/project/project-create-delete.txtar @@ -0,0 +1,12 @@ +# Create a project +exec gh project create --owner=$ORG --title='acceptance-test-project-title' + +# Confirm the project has been created and get the project number +exec gh project list --owner=$ORG --format=json --jq='.projects[] | select(.title == "acceptance-test-project-title") | .number' +stdout2env PROJECT_NUMBER + +# Delete the project +exec gh project delete --owner=$ORG $PROJECT_NUMBER + +# Confirm the project has been deleted +! exec gh project view --owner=$ORG $PROJECT_NUMBER \ No newline at end of file From 7a5dc5032475ef192d301015c3c56bca11fd7110 Mon Sep 17 00:00:00 2001 From: Tyler McGoffin Date: Fri, 25 Oct 2024 09:03:09 -0700 Subject: [PATCH 4/4] Modify script to use the project number returned by the api upon creation --- .../testdata/project/project-create-delete.txtar | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/acceptance/testdata/project/project-create-delete.txtar b/acceptance/testdata/project/project-create-delete.txtar index fe5ca41cf..115253669 100644 --- a/acceptance/testdata/project/project-create-delete.txtar +++ b/acceptance/testdata/project/project-create-delete.txtar @@ -1,10 +1,11 @@ -# Create a project -exec gh project create --owner=$ORG --title='acceptance-test-project-title' - -# Confirm the project has been created and get the project number -exec gh project list --owner=$ORG --format=json --jq='.projects[] | select(.title == "acceptance-test-project-title") | .number' +# Create a project and get the project number +env PROJECT_TITLE=$SCRIPT_NAME-$RANDOM_STRING +exec gh project create --owner=$ORG --title=$PROJECT_TITLE --format='json' --jq='.number' stdout2env PROJECT_NUMBER +# Confirm the project has been created +exec gh project view --owner=$ORG $PROJECT_NUMBER + # Delete the project exec gh project delete --owner=$ORG $PROJECT_NUMBER