Introduces the web backend (auth, RBAC, project tokens, revisions), YouTrack-or-taskmaster backend choice in the TUI, and a first-pass embedded Svelte UI. The frontend is functional but needs a major rework. Co-authored-by: Cursor <cursoragent@cursor.com>
59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
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)
|
|
}
|
|
}
|