mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-30 18:17:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright (c) HashiCorp, Inc.
 | |
| // SPDX-License-Identifier: BUSL-1.1
 | |
| 
 | |
| package version
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| )
 | |
| 
 | |
| func replaceVersion(v, vp, vm string) func() {
 | |
| 	origV := Version
 | |
| 	origVP := VersionPrerelease
 | |
| 	origVM := VersionMetadata
 | |
| 
 | |
| 	Version = v
 | |
| 	VersionPrerelease = vp
 | |
| 	VersionMetadata = vm
 | |
| 
 | |
| 	return func() {
 | |
| 		Version = origV
 | |
| 		VersionPrerelease = origVP
 | |
| 		VersionMetadata = origVM
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestGetVersion(t *testing.T) {
 | |
| 	// This test cannot be parallelized because it messes with some global
 | |
| 	// variables that determine the version information.
 | |
| 	restoreVersionFunc := replaceVersion("1.2.3", "", "")
 | |
| 	defer restoreVersionFunc()
 | |
| 
 | |
| 	// Test the general case
 | |
| 	vi := GetVersion()
 | |
| 	assert.Equal(t, "1.2.3", vi.Version)
 | |
| 	assert.Equal(t, "", vi.VersionPrerelease)
 | |
| 	assert.Equal(t, "", vi.VersionMetadata)
 | |
| 	assert.Equal(t, "", vi.Revision)
 | |
| 	assert.Equal(t, "", vi.BuildDate)
 | |
| 
 | |
| 	// Test the git describe case
 | |
| 	origGitDescribe := GitDescribe
 | |
| 	GitDescribe = "git-describe"
 | |
| 	vi = GetVersion()
 | |
| 	assert.Equal(t, "git-describe", vi.Version)
 | |
| 
 | |
| 	GitDescribe = origGitDescribe
 | |
| }
 | |
| 
 | |
| func TestVersionNumber(t *testing.T) {
 | |
| 	// This test cannot be parallelized because it messes with some global
 | |
| 	// variables that determine the version information.
 | |
| 	restoreVersionFunc := replaceVersion("unknown", "unknown", "")
 | |
| 	defer restoreVersionFunc()
 | |
| 
 | |
| 	// Test the unknown version case
 | |
| 	vi := GetVersion()
 | |
| 	assert.Equal(t, "(version unknown)", vi.VersionNumber())
 | |
| 
 | |
| 	replaceVersion("1.2.3", "", "")
 | |
| 
 | |
| 	// Test the pre-release case
 | |
| 	vi = GetVersion()
 | |
| 	vi.VersionPrerelease = "rc1"
 | |
| 	assert.Equal(t, "1.2.3-rc1", vi.VersionNumber())
 | |
| 
 | |
| 	// Test the pre-release and metadata version case
 | |
| 	vi.VersionMetadata = "ent"
 | |
| 	assert.Equal(t, "1.2.3-rc1+ent", vi.VersionNumber())
 | |
| 
 | |
| 	// Test the metadata only version case
 | |
| 	vi.VersionPrerelease = ""
 | |
| 	assert.Equal(t, "1.2.3+ent", vi.VersionNumber())
 | |
| }
 | |
| 
 | |
| func TestFullVersionNumber(t *testing.T) {
 | |
| 	// This test cannot be parallelized because it messes with some global
 | |
| 	// variables that determine the version information.
 | |
| 	restoreVersionFunc := replaceVersion("unknown", "unknown", "")
 | |
| 	defer restoreVersionFunc()
 | |
| 
 | |
| 	// Test the unknown version case
 | |
| 	vi := GetVersion()
 | |
| 	assert.Equal(t, "Vault (version unknown)", vi.FullVersionNumber(false))
 | |
| 
 | |
| 	// Test the no pre-release, metadata, revision, build date case
 | |
| 	replaceVersion("1.2.3", "", "")
 | |
| 	vi = GetVersion()
 | |
| 	assert.Equal(t, "Vault v1.2.3", vi.FullVersionNumber(false))
 | |
| 
 | |
| 	// Test the pre-release case
 | |
| 	vi.VersionPrerelease = "rc1"
 | |
| 	assert.Equal(t, "Vault v1.2.3-rc1", vi.FullVersionNumber(false))
 | |
| 
 | |
| 	// Test the metadata case
 | |
| 	vi.VersionPrerelease = ""
 | |
| 	vi.VersionMetadata = "ent"
 | |
| 	assert.Equal(t, "Vault v1.2.3+ent", vi.FullVersionNumber(false))
 | |
| 
 | |
| 	// Test the revision case
 | |
| 	vi.VersionMetadata = ""
 | |
| 	vi.Revision = "ab1234f"
 | |
| 	assert.Equal(t, "Vault v1.2.3 (ab1234f)", vi.FullVersionNumber(true))
 | |
| 
 | |
| 	// Test the build date case
 | |
| 	vi.BuildDate = "2023-10-20"
 | |
| 	assert.Equal(t, "Vault v1.2.3, built 2023-10-20", vi.FullVersionNumber(false))
 | |
| 
 | |
| 	// Test the case where all of the things are set
 | |
| 	vi.VersionPrerelease = "rc1"
 | |
| 	vi.VersionMetadata = "ent"
 | |
| 	assert.Equal(t, "Vault v1.2.3-rc1+ent (ab1234f), built 2023-10-20", vi.FullVersionNumber(true))
 | |
| }
 | 
