Bläddra i källkod

initial version for GoCi : add test cases

simon 9 månader sedan
förälder
incheckning
80d35a6256

+ 42 - 0
rggo/processes/goci/main_test.go

@@ -0,0 +1,42 @@
+package main
+
+import (
+	"bytes"
+	"errors"
+	"testing"
+)
+
+func TestRun(t *testing.T) {
+	var testCases = []struct {
+		name   string
+		proj   string
+		out    string
+		expErr error
+	}{
+		{name: "success", proj: "./testdata/tool/", out: "Go Build: SUCCESS\n", expErr: nil},
+		{name: "fail", proj: "./testdata/toolErr/", out: "", expErr: &stepErr{step: "go build"}},
+	}
+
+	for _, tc := range testCases {
+		t.Run(tc.name, func(t *testing.T) {
+			var out bytes.Buffer
+
+			err := run(tc.proj, &out)
+			if tc.expErr != nil {
+				if err == nil {
+					t.Errorf("Expected error: %q. Got `nil` instead", tc.expErr)
+				}
+				if !errors.Is(err, tc.expErr) {
+					t.Errorf("Expected error: %q. Got %q.", tc.expErr, err)
+				}
+				return
+			}
+			if err != nil {
+				t.Errorf("unexpected error: %q", err)
+			}
+			if out.String() != tc.out {
+				t.Errorf("Expected output: %q. Got %q", tc.out, out.String())
+			}
+		})
+	}
+}

+ 5 - 0
rggo/processes/goci/testdata/tool/add.go

@@ -0,0 +1,5 @@
+package add
+
+func add(a, b int) int {
+	return a + b
+}

+ 3 - 0
rggo/processes/goci/testdata/tool/go.mod

@@ -0,0 +1,3 @@
+module testdata/tool
+
+go 1.23.5

+ 5 - 0
rggo/processes/goci/testdata/toolErr/add.go

@@ -0,0 +1,5 @@
+package add
+
+func add(a, b int) int {
+	return c + b
+}

+ 3 - 0
rggo/processes/goci/testdata/toolErr/go.mod

@@ -0,0 +1,3 @@
+module testdata/tool
+
+go 1.23.5