26 lines
1.2 KiB
Go
26 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"os/exec"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestNativeCheckFromChildUsesRootProfileAndSuite(t *testing.T) {
|
|
binary := buildWorkflowCLI(t, cliRepositoryRoot(t))
|
|
repository := newCLIRepository(t)
|
|
writeRepositoryFile(t, repository, "candidate_test.go", "package candidate\nimport \"testing\"\nfunc TestFixture(t *testing.T) { t.Fatal(\"root suite failure\") }\n")
|
|
writeRepositoryFile(t, repository, "releasekit.json", `{"product":"Example Product"}`)
|
|
writeRepositoryFile(t, repository, "apps/widget/go.mod", "module example.com/widget\n\ngo 1.26.0\n")
|
|
writeRepositoryFile(t, repository, "apps/widget/widget_test.go", "package widget\nimport \"testing\"\nfunc TestWidget(t *testing.T) {}\n")
|
|
cliGitRun(t, repository, "add", ".")
|
|
cliGitRun(t, repository, "commit", "-m", "Add failing root and passing child")
|
|
command := exec.Command(binary, "check", "v1.2.3")
|
|
command.Dir = filepath.Join(repository, "apps", "widget")
|
|
output, err := command.CombinedOutput()
|
|
if exit, ok := err.(*exec.ExitError); !ok || exit.ExitCode() != 1 || !strings.Contains(string(output), "root suite failure") || !strings.Contains(string(output), "module=example.com/cli-candidate") {
|
|
t.Fatalf("child invocation error = %v, output = %s", err, output)
|
|
}
|
|
}
|