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 | 56 +++++++++++++++++------------------ 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/acceptance/acceptance_test.go b/acceptance/acceptance_test.go index e764abbbcd0..ede3fc19139 100644 --- a/acceptance/acceptance_test.go +++ b/acceptance/acceptance_test.go @@ -27,130 +27,130 @@ func TestMain(m *testing.M) { })) } -func TestPullRequests(t *testing.T) { +func TestAPI(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "pr")) + testscript.Run(t, testScriptParamsFor(tsEnv, "api")) } -func TestIssues(t *testing.T) { +func TestAuth(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "pr")) + testscript.Run(t, testScriptParamsFor(tsEnv, "auth")) } -func TestWorkflows(t *testing.T) { +func TestGPGKeys(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "workflow")) + testscript.Run(t, testScriptParamsFor(tsEnv, "gpg-key")) } -func TestAPI(t *testing.T) { +func TestIssues(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "api")) + testscript.Run(t, testScriptParamsFor(tsEnv, "pr")) } -func TestAuth(t *testing.T) { +func TestLabels(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "auth")) + testscript.Run(t, testScriptParamsFor(tsEnv, "label")) } -func TestReleases(t *testing.T) { +func TestOrg(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "release")) + testscript.Run(t, testScriptParamsFor(tsEnv, "org")) } -func TestSearches(t *testing.T) { +func TestPullRequests(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "search")) + testscript.Run(t, testScriptParamsFor(tsEnv, "pr")) } -func TestRepo(t *testing.T) { +func TestReleases(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "repo")) + testscript.Run(t, testScriptParamsFor(tsEnv, "release")) } -func TestSecrets(t *testing.T) { +func TestRepo(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "secret")) + testscript.Run(t, testScriptParamsFor(tsEnv, "repo")) } -func TestVariables(t *testing.T) { +func TestSearches(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "variable")) + testscript.Run(t, testScriptParamsFor(tsEnv, "search")) } -func TestGPGKeys(t *testing.T) { +func TestSecrets(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "gpg-key")) + testscript.Run(t, testScriptParamsFor(tsEnv, "secret")) } -func TestLabels(t *testing.T) { +func TestSSHKeys(t *testing.T) { var tsEnv testScriptEnv if err := tsEnv.fromEnv(); err != nil { t.Fatal(err) } - testscript.Run(t, testScriptParamsFor(tsEnv, "label")) + testscript.Run(t, testScriptParamsFor(tsEnv, "ssh-key")) } -func TestSSHKeys(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, "ssh-key")) + testscript.Run(t, testScriptParamsFor(tsEnv, "variable")) } -func TestOrg(t *testing.T) { +func TestWorkflows(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, "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 ede3fc19139..dc4eb514a03 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 00000000000..fe5ca41cf2e --- /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 fe5ca41cf2e..1152536695c 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