Release Please / Release Please (push) Skipped
Tests / Test (Go 1.22) (push) Skipped
Tests / Test (Go stable) (push) Skipped
Release / GoReleaser (push) Failing after 38s
Polish the office TUI with proportional pane layout, drag resize, live filtering, HTML mail preview, paginated mail lists, overflow scrollbars, flattened navigation, and project save/status fixes; add UpdateProjectStatus. Co-authored-by: Cursor <cursoragent@cursor.com>
41 lines
1011 B
Go
41 lines
1011 B
Go
package ui
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/eslider/go-onlyoffice/cmd/office/model"
|
|
)
|
|
|
|
func TestDataTableAppendItemsDedupes(t *testing.T) {
|
|
tbl := newDataTable()
|
|
tbl.SetSize(40, 10)
|
|
tbl.SetData(model.ListSpec{Subject: model.SubjectMailInbox}, []model.Item{
|
|
{ID: "1", Title: "A", Kind: model.KindMail},
|
|
})
|
|
added := tbl.AppendItems([]model.Item{
|
|
{ID: "1", Title: "dup", Kind: model.KindMail},
|
|
{ID: "2", Title: "B", Kind: model.KindMail},
|
|
})
|
|
if added != 1 || len(tbl.Items()) != 2 {
|
|
t.Fatalf("added=%d len=%d", added, len(tbl.Items()))
|
|
}
|
|
}
|
|
|
|
func TestDataTableNearEnd(t *testing.T) {
|
|
tbl := newDataTable()
|
|
tbl.SetSize(40, 10)
|
|
items := make([]model.Item, 10)
|
|
for i := range items {
|
|
items[i] = model.Item{ID: string(rune('0' + i)), Title: "x", Kind: model.KindMail}
|
|
}
|
|
tbl.SetData(model.ListSpec{Subject: model.SubjectMailInbox}, items)
|
|
tbl.cursorRow = 7
|
|
if !tbl.NearEnd(3) {
|
|
t.Fatal("expected near end")
|
|
}
|
|
tbl.cursorRow = 0
|
|
if tbl.NearEnd(3) {
|
|
t.Fatal("expected not near end")
|
|
}
|
|
}
|