package lang_test import ( "testing" "github.com/juanatsap/cv-site/internal/lang" ) func TestIsValid(t *testing.T) { tests := []struct { name string language string want bool }{ { name: "Valid - English", language: "en", want: true, }, { name: "Valid - Spanish", language: "es", want: true, }, { name: "Invalid - French", language: "fr", want: false, }, { name: "Invalid - Empty", language: "", want: false, }, { name: "Invalid - Uppercase", language: "EN", want: false, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := lang.IsValid(tt.language); got != tt.want { t.Errorf("IsValid() = %v, want %v", got, tt.want) } }) } } func TestValidate(t *testing.T) { tests := []struct { name string language string wantErr bool }{ { name: "Valid - English", language: "en", wantErr: false, }, { name: "Valid - Spanish", language: "es", wantErr: false, }, { name: "Invalid - French", language: "fr", wantErr: true, }, { name: "Invalid - Empty", language: "", wantErr: true, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := lang.Validate(tt.language) if (err != nil) != tt.wantErr { t.Errorf("Validate() error = %v, wantErr %v", err, tt.wantErr) } if err != nil && tt.wantErr { // Check that error message includes supported languages errMsg := err.Error() if errMsg == "" { t.Error("Validate() error message is empty") } } }) } } func TestAll(t *testing.T) { all := lang.All() if len(all) != 2 { t.Errorf("All() returned %d languages, want 2", len(all)) } // Check that it contains en and es hasEN := false hasES := false for _, l := range all { if l == "en" { hasEN = true } if l == "es" { hasES = true } } if !hasEN { t.Error("All() missing 'en'") } if !hasES { t.Error("All() missing 'es'") } }