package views_test import ( "testing" "task/internal/project" "task/internal/ui/views" ) func TestProjectEditMetaKeepsToken(t *testing.T) { prev := project.Meta{ Backend: project.BackendYouTrack, YouTrack: &project.YouTrack{ BaseURL: "https://yt.example", Token: "secret", ProjectKey: "ABC", }, } f := views.NewProjectEditForm("inbox", prev, 80) // Leave token blank → keep previous. f.Inputs[views.FieldRemoteURL].SetValue("https://yt.example") f.Inputs[views.FieldProjectKey].SetValue("ABC") f.Inputs[views.FieldToken].SetValue("") meta := f.Meta(prev) if meta.YouTrack == nil || meta.YouTrack.Token != "secret" { t.Fatalf("expected kept token, got %+v", meta.YouTrack) } if err := f.Validate(prev); err != nil { t.Fatalf("Validate: %v", err) } } func TestProjectEditValidateIncomplete(t *testing.T) { f := views.NewProjectEditForm("inbox", project.Meta{Backend: project.BackendYouTrack}, 80) f.BackendIdx = 1 // youtrack f.Backend = project.BackendYouTrack f.Inputs[views.FieldRemoteURL].SetValue("https://yt.example") // missing token + key if err := f.Validate(project.Meta{}); err == nil { t.Fatal("expected incomplete error") } } func TestProjectEditTaskMaster(t *testing.T) { prev := project.Meta{ Backend: project.BackendTaskMaster, TaskMaster: &project.TaskMaster{ BaseURL: "http://127.0.0.1:8080", Token: "tm_secret", ProjectID: "abc", }, } f := views.NewProjectEditForm("inbox", prev, 80) f.Inputs[views.FieldToken].SetValue("") meta := f.Meta(prev) if meta.TaskMaster == nil || meta.TaskMaster.Token != "tm_secret" { t.Fatalf("expected kept tm token, got %+v", meta.TaskMaster) } }