package server

import (
	"testing"

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

func TestSupportsColumnarByTiKVImage(t *testing.T) {
	tests := []struct {
		name     string
		imageTag string
		want     bool
	}{
		{
			name:     "version before columnar support",
			imageTag: "v26.3.4-nextgen",
			want:     false,
		},
		{
			name:     "minimum supported version",
			imageTag: "v26.3.5-nextgen",
			want:     true,
		},
		{
			name:     "uppercase tag prefix",
			imageTag: "V26.3.5-nextgen",
			want:     true,
		},
		{
			name:     "newer nextgen version",
			imageTag: "v26.3.6-nextgen",
			want:     true,
		},
		{
			name:     "stable release of minimum version",
			imageTag: "v26.3.5",
			want:     true,
		},
		{
			name:     "malformed tag",
			imageTag: "latest-nextgen",
			want:     false,
		},
		{
			name:     "empty tag",
			imageTag: "",
			want:     false,
		},
	}

	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			assert.Equal(t, tt.want, supportsColumnarByTiKVImage(tt.imageTag))
		})
	}
}
