package version // import nocternity.net/gomonop/pkg/version

import (
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestVersion(t *testing.T) {
	type Test struct {
		version, commit, status, target, expected string
	}

	tests := []Test{
		{"", "COMMIT", "clean", "TARGET", "development version (COMMIT) TARGET"},
		{"VERSION", "COMMIT", "clean", "TARGET", "VERSION (COMMIT) TARGET"},
		{"", "COMMIT", "dirty", "TARGET", "development version (COMMIT*) TARGET"},
		{"VERSION", "COMMIT", "dirty", "TARGET", "VERSION (COMMIT*) TARGET"},
	}

	for _, test := range tests {
		version = test.version
		commit = test.commit
		status = test.status
		target = test.target

		result := Version()

		assert.Equal(t, test.expected, result, "Expected '%s', got '%s'", test.expected, result)
	}
}