package main import ( "bytes" "context" "path/filepath" "strings" "testing" "gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit/internal/cli" ) func TestMainModuleWithoutDomainSupportsCheckBuildAndPageDelivery(t *testing.T) { repository := newDeliveryBuildRepository(t) writeRepositoryFile(t, repository, "go.mod", "module example\n\ngo 1.26.0\n") cliGitRun(t, repository, "add", ".") cliGitRun(t, repository, "commit", "-m", "Use local main module path") state := &deliveryServerState{} server := newDeliveryServer(t, state) defer server.Close() settings := cli.Settings{Product: "Example Product", Build: &cli.BuildSettings{MainPackage: ".", BinaryName: "helper", Targets: []string{"linux/amd64"}}, Delivery: &cli.DeliverySettings{BaseURL: server.URL, Owner: "owner", Repository: "example"}, } writeDeliveryProfile(t, repository, settings) for _, args := range [][]string{ {"check", "--repo", repository, "v1.2.3"}, {"build", "--repo", repository, "--output", filepath.Join(t.TempDir(), "assets"), "v1.2.3"}, } { var stdout, stderr bytes.Buffer if status := run(context.Background(), args, &stdout, &stderr); status != 0 || !strings.Contains(stdout.String(), "module example version v1.2.3 tag v1.2.3") { t.Fatalf("%s status=%d stdout=%s stderr=%s", args[0], status, stdout.String(), stderr.String()) } } settings.Build = nil writeDeliveryProfile(t, repository, settings) state.commit = cliGitOutput(t, repository, "rev-parse", "HEAD") cliGitRun(t, repository, "tag", "v1.2.3") t.Setenv("RELEASEKIT_GITEA_TOKEN", "fixture-token") var stdout, stderr bytes.Buffer if status := run(context.Background(), []string{"deliver", "--repo", repository, "v1.2.3"}, &stdout, &stderr); status != 0 || state.releaseCreates != 1 || state.assetUploads != 0 { t.Fatalf("page delivery status=%d creates=%d uploads=%d stderr=%s", status, state.releaseCreates, state.assetUploads, stderr.String()) } }