92 lines
2.5 KiB
Go
92 lines
2.5 KiB
Go
package mock_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/nebara/nebara-os/internal/mock"
|
|
"github.com/nebara/nebara-os/internal/model"
|
|
)
|
|
|
|
func TestWarningState(t *testing.T) {
|
|
s := mock.WarningState()
|
|
|
|
if s.Appliance.ProductName == "" {
|
|
t.Error("ProductName should not be empty")
|
|
}
|
|
if s.Appliance.Version != "1.0.1" {
|
|
t.Errorf("expected version 1.0.1, got %s", s.Appliance.Version)
|
|
}
|
|
if s.Message == nil {
|
|
t.Fatal("warning state should have a message")
|
|
}
|
|
if s.Message.Severity != model.SeverityWarning {
|
|
t.Error("expected SeverityWarning")
|
|
}
|
|
if !s.Message.IsVisible() {
|
|
t.Error("warning message should be visible")
|
|
}
|
|
if s.InitialMenu < 0 || s.InitialMenu >= 6 {
|
|
t.Errorf("InitialMenu out of range: %d", s.InitialMenu)
|
|
}
|
|
}
|
|
|
|
func TestNormalState(t *testing.T) {
|
|
s := mock.NormalState()
|
|
|
|
if s.Appliance.ProductName == "" {
|
|
t.Error("ProductName should not be empty")
|
|
}
|
|
if s.Appliance.Version != "2.1.4" {
|
|
t.Errorf("expected version 2.1.4, got %s", s.Appliance.Version)
|
|
}
|
|
if s.Message != nil && s.Message.IsVisible() {
|
|
t.Error("normal state should have no visible message")
|
|
}
|
|
if s.InitialMenu < 0 || s.InitialMenu >= 6 {
|
|
t.Errorf("InitialMenu out of range: %d", s.InitialMenu)
|
|
}
|
|
}
|
|
|
|
func TestWarningState_CorrectMenuSelection(t *testing.T) {
|
|
s := mock.WarningState()
|
|
menu := model.MainMenu()
|
|
if s.InitialMenu >= len(menu) {
|
|
t.Fatalf("InitialMenu %d exceeds menu length %d", s.InitialMenu, len(menu))
|
|
}
|
|
if menu[s.InitialMenu].Label != "Security & Access" {
|
|
t.Errorf("warning state should select 'Security & Access', got %q", menu[s.InitialMenu].Label)
|
|
}
|
|
}
|
|
|
|
func TestNormalState_CorrectMenuSelection(t *testing.T) {
|
|
s := mock.NormalState()
|
|
menu := model.MainMenu()
|
|
if s.InitialMenu >= len(menu) {
|
|
t.Fatalf("InitialMenu %d exceeds menu length %d", s.InitialMenu, len(menu))
|
|
}
|
|
if menu[s.InitialMenu].Label != "System Maintenance" {
|
|
t.Errorf("normal state should select 'System Maintenance', got %q", menu[s.InitialMenu].Label)
|
|
}
|
|
}
|
|
|
|
func TestSystemMessage_IsVisible_Nil(t *testing.T) {
|
|
var m *model.SystemMessage
|
|
if m.IsVisible() {
|
|
t.Error("nil message should not be visible")
|
|
}
|
|
}
|
|
|
|
func TestSystemMessage_IsVisible_Empty(t *testing.T) {
|
|
m := &model.SystemMessage{Severity: model.SeverityWarning, Text: ""}
|
|
if m.IsVisible() {
|
|
t.Error("empty text message should not be visible")
|
|
}
|
|
}
|
|
|
|
func TestSystemMessage_IsVisible_SeverityNone(t *testing.T) {
|
|
m := &model.SystemMessage{Severity: model.SeverityNone, Text: "some text"}
|
|
if m.IsVisible() {
|
|
t.Error("SeverityNone message should not be visible")
|
|
}
|
|
}
|