ajhahn.de
← eeco
Go 20 lines
package main

import "testing"

func TestResolveVersion(t *testing.T) {
	// A release build carries an ldflags-injected version; resolveVersion
	// must pass it through untouched even though build info is present.
	if got := resolveVersion("v1.27.3"); got != "v1.27.3" {
		t.Errorf("release version: got %q, want %q", got, "v1.27.3")
	}

	// The dev marker resolves against the test binary's build info. Under
	// `go test` the main module version is "" or "(devel)", so the marker
	// is preserved; a `go install pkg@vX` build would instead surface the
	// recorded module version. Either way it must never be empty.
	if got := resolveVersion("0.0.0-dev"); got == "" {
		t.Error("dev version resolved to empty string")
	}
}