package store_test import ( "context" "testing" "github.com/wangjia/pangolin/server/internal/devices" ) func TestSQLite_RenameDevice(t *testing.T) { ctx := context.Background() db := openSQLite(t) if _, err := db.Exec(`INSERT INTO users (id,uuid,email,pw_hash,dp_uuid,status) VALUES (1,'u1','u1@e','h','dp1','active'),(2,'u2','u2@e','h','dp2','active')`); err != nil { t.Fatal(err) } if _, err := db.Exec(`INSERT INTO devices (id,uuid,user_id,name,platform) VALUES (10,'devA',1,'Win·old','windows'),(30,'devC',2,'C','ios')`); err != nil { t.Fatal(err) } svc := devices.NewService(devices.NewStore(db), nil) if e := svc.RenameDevice(ctx, 1, "devA", "我的台式机"); e != nil { t.Fatalf("rename: %v", e) } var name string db.QueryRow(`SELECT name FROM devices WHERE id=10`).Scan(&name) if name != "我的台式机" { t.Fatalf("name = %q, want 我的台式机", name) } // 空名 → 400 if e := svc.RenameDevice(ctx, 1, "devA", " "); e == nil { t.Fatal("empty name should fail") } // 他人设备 → 403 if e := svc.RenameDevice(ctx, 1, "devC", "x"); e == nil { t.Fatal("renaming other user's device should fail") } // 不存在 → 404 if e := svc.RenameDevice(ctx, 1, "nope", "x"); e == nil { t.Fatal("unknown device should fail") } }