From 767b5b26d1c00272a552a45461f05eb77f8d7845 Mon Sep 17 00:00:00 2001 From: Brendan Smith Date: Mon, 16 Mar 2026 11:08:01 -0400 Subject: [PATCH 1/4] feat: add huh dependency and testscript integration test infrastructure Add charmbracelet/huh alongside existing survey for incremental migration. Set up testscript-based CLI integration tests with version and help scripts. Add YesNoOptions, YesNoToBool, and PrintQuestionHeader helpers to ui package. --- go.mod | 19 +++++++++ go.sum | 55 +++++++++++++++++++++++++- integration_test.go | 24 ++++++++++++ testdata/script/help.txtar | 10 +++++ testdata/script/version.txtar | 4 ++ ui/questions.go | 37 ++++++++++++++++++ ui/questions_test.go | 72 +++++++++++++++++++++++++++++++++++ 7 files changed, 219 insertions(+), 2 deletions(-) create mode 100644 integration_test.go create mode 100644 testdata/script/help.txtar create mode 100644 testdata/script/version.txtar create mode 100644 ui/questions_test.go diff --git a/go.mod b/go.mod index 2b93cf0..27a4a31 100644 --- a/go.mod +++ b/go.mod @@ -44,11 +44,14 @@ require ( github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 github.com/aws/session-manager-plugin v0.0.0-20250205214155-b2b0bcd769d1 github.com/aws/smithy-go v1.23.2 + github.com/charmbracelet/huh v0.7.0 github.com/cli/cli/v2 v2.83.0 github.com/go-jose/go-jose/v4 v4.1.1 + github.com/rogpeppe/go-internal v1.14.1 ) require ( + github.com/atotto/clipboard v0.1.4 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 // indirect @@ -64,21 +67,37 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.30.1 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/catppuccin/go v0.3.0 // indirect + github.com/charmbracelet/bubbles v0.21.0 // indirect + github.com/charmbracelet/bubbletea v1.3.5 // indirect + github.com/charmbracelet/colorprofile v0.3.1 // indirect + github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834 // indirect + github.com/charmbracelet/x/ansi v0.9.3 // indirect + github.com/charmbracelet/x/cellbuf v0.0.13 // indirect + github.com/charmbracelet/x/exp/strings v0.0.0-20250630141444-821143405392 // indirect + github.com/charmbracelet/x/term v0.2.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect github.com/cli/go-gh/v2 v2.13.0 // indirect github.com/cli/shurcooL-graphql v0.0.4 // indirect github.com/clipperhouse/stringish v0.1.1 // indirect github.com/clipperhouse/uax29/v2 v2.3.0 // indirect github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 // indirect + github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect github.com/henvic/httpretty v0.1.4 // indirect + github.com/mattn/go-localereader v0.0.1 // indirect + github.com/mitchellh/hashstructure/v2 v2.0.2 // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect github.com/muesli/termenv v0.16.0 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/thlib/go-timezone-local v0.0.7 // indirect github.com/twinj/uuid v1.0.0 // indirect + github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect github.com/xtaci/smux v1.5.35 // indirect golang.org/x/sync v0.18.0 // indirect + golang.org/x/tools v0.37.0 // indirect ) require ( diff --git a/go.sum b/go.sum index 836eaef..fe008cd 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ= github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo= +github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= +github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2 h1:+vx7roKuyA63nhn5WAunQHLTznkw5W8b1Xc0dNjp83s= github.com/Netflix/go-expect v0.0.0-20220104043353-73e0943537d2/go.mod h1:HBCaDeC1lPdgDeDbhX8XFpy1jqjK0IBG8W5K+xYqA0w= github.com/TylerBrock/colorjson v0.0.0-20180527164720-95ec53f28296/go.mod h1:VSw57q4QFiWDbRnjdX8Cb3Ow0SFncRw+bA/ofY6Q83w= @@ -9,6 +11,8 @@ github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4t github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= github.com/apppackio/saw v0.2.3-0.20210507180802-f6559c287e6f h1:4qSROTO6FceKFgKaoYmALA953QpYHRrQhcG1v2uqusU= github.com/apppackio/saw v0.2.3-0.20210507180802-f6559c287e6f/go.mod h1:GjKNeaxQeBkAudVlPmb2el62OMm4rjtY7Uzz1OmByAs= +github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= +github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/aws-sdk-go v1.13.56/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= github.com/aws/aws-sdk-go v1.55.8 h1:JRmEUbU52aJQZ2AjX4q4Wu7t4uZjOu71uyNmaWlUkJQ= github.com/aws/aws-sdk-go v1.55.8/go.mod h1:ZkViS9AqA6otK+JBBNH2++sx1sgxrPKcSzPPvQkUtXk= @@ -84,8 +88,40 @@ github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM= github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= +github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8= +github.com/aymanbagabas/go-udiff v0.2.0/go.mod h1:RE4Ex0qsGkTAJoQdQQCA0uG+nAzJO/pI/QwceO5fgrA= github.com/briandowns/spinner v1.23.2 h1:Zc6ecUnI+YzLmJniCfDNaMbW0Wid1d5+qcTq4L2FW8w= github.com/briandowns/spinner v1.23.2/go.mod h1:LaZeM4wm2Ywy6vO571mvhQNRcWfRUnXOs0RcKV0wYKM= +github.com/catppuccin/go v0.3.0 h1:d+0/YicIq+hSTo5oPuRi5kOpqkVA5tAsU6dNhvRu+aY= +github.com/catppuccin/go v0.3.0/go.mod h1:8IHJuMGaUUjQM82qBrGNBv7LFq6JI3NnQCF6MOlZjpc= +github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u6mfQdFs= +github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= +github.com/charmbracelet/bubbletea v1.3.5 h1:JAMNLTbqMOhSwoELIr0qyP4VidFq72/6E9j7HHmRKQc= +github.com/charmbracelet/bubbletea v1.3.5/go.mod h1:TkCnmH+aBd4LrXhXcqrKiYwRs7qyQx5rBgH5fVY3v54= +github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40= +github.com/charmbracelet/colorprofile v0.3.1/go.mod h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0= +github.com/charmbracelet/huh v0.7.0 h1:W8S1uyGETgj9Tuda3/JdVkc3x7DBLZYPZc4c+/rnRdc= +github.com/charmbracelet/huh v0.7.0/go.mod h1:UGC3DZHlgOKHvHC07a5vHag41zzhpPFj34U92sOmyuk= +github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834 h1:ZR7e0ro+SZZiIZD7msJyA+NjkCNNavuiPBLgerbOziE= +github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834/go.mod h1:aKC/t2arECF6rNOnaKaVU6y4t4ZeHQzqfxedE/VkVhA= +github.com/charmbracelet/x/ansi v0.9.3 h1:BXt5DHS/MKF+LjuK4huWrC6NCvHtexww7dMayh6GXd0= +github.com/charmbracelet/x/ansi v0.9.3/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= +github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= +github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= +github.com/charmbracelet/x/conpty v0.1.0 h1:4zc8KaIcbiL4mghEON8D72agYtSeIgq8FSThSPQIb+U= +github.com/charmbracelet/x/conpty v0.1.0/go.mod h1:rMFsDJoDwVmiYM10aD4bH2XiRgwI7NYJtQgl5yskjEQ= +github.com/charmbracelet/x/errors v0.0.0-20240508181413-e8d8b6e2de86 h1:JSt3B+U9iqk37QUU2Rvb6DSBYRLtWqFqfxf8l5hOZUA= +github.com/charmbracelet/x/errors v0.0.0-20240508181413-e8d8b6e2de86/go.mod h1:2P0UgXMEa6TsToMSuFqKFQR+fZTO9CNGUNokkPatT/0= +github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payRxjMjKgx2PaCWLZ4p3ro9y97+TVLZNaRZgJwSVDQ= +github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U= +github.com/charmbracelet/x/exp/strings v0.0.0-20250630141444-821143405392 h1:6ipGA1NEA0AZG2UEf81RQGJvEPvYLn/M18mZcdt4J8g= +github.com/charmbracelet/x/exp/strings v0.0.0-20250630141444-821143405392/go.mod h1:Rgw3/F+xlcUc5XygUtimVSxAqCOsqyvJjqF5UHRvc5k= +github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= +github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= +github.com/charmbracelet/x/termios v0.1.1 h1:o3Q2bT8eqzGnGPOYheoYS8eEleT5ZVNYNy8JawjaNZY= +github.com/charmbracelet/x/termios v0.1.1/go.mod h1:rB7fnv1TgOPOyyKRJ9o+AsTU/vK5WHJ2ivHeut/Pcwo= +github.com/charmbracelet/x/xpty v0.1.2 h1:Pqmu4TEJ8KeA9uSkISKMU3f+C1F6OGBn8ABuGlqCbtI= +github.com/charmbracelet/x/xpty v0.1.2/go.mod h1:XK2Z0id5rtLWcpeNiMYBccNNBrP2IJnzHI0Lq13Xzq4= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= github.com/cli/cli/v2 v2.83.0 h1:DIh4WStSDm15OT43vImvKp21v9JAg8pBbdVoisknTKo= @@ -114,6 +150,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 h1:XBBHcIb256gUJtLmY22n99HaZTz+r2Z51xUPi01m3wg= github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203/go.mod h1:E1jcSv8FaEny+OP/5k9UxZVw9YFWGj7eI4KR/iOBqCg= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f h1:Y/CXytFA4m6baUTXGLOoWe4PQhGxaX0KpnayAqC48p4= +github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f/go.mod h1:vw97MGsxSvLiUE2X8qFplwetxpGLQrlU1Q9AUEIzCaM= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= @@ -186,11 +224,19 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= +github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw= github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQE9x6ikvDFZS2mDVS3drnohI= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= +github.com/mitchellh/hashstructure/v2 v2.0.2 h1:vGKWl0YJqUNxE8d+h8f6NJLcCJrgbhC4NcD46KavDd4= +github.com/mitchellh/hashstructure/v2 v2.0.2/go.mod h1:MG3aRVU/N29oo/V/IhBX8GR/zz4kQkprJgF2EVszyDE= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 h1:ZK8zHtRHOkbHy6Mmr5D264iyp3TiX5OmNcI5cIARiQI= +github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6/go.mod h1:CJlz5H+gyd6CUWT45Oy4q24RdLyn7Md9Vj2/ldJBSIo= +github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= +github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= github.com/muesli/termenv v0.16.0 h1:S5AlUN9dENB57rsbnkPyfdGuWIlkmzJjbFf0Tf5FWUc= github.com/muesli/termenv v0.16.0/go.mod h1:ZRfOIKPFDYQoDFF4Olj7/QJbW60Ol/kL1pU3VfY/Cnk= github.com/mum4k/termdash v0.20.0 h1:g6yZvE7VJmuefJmDrSrv5Az8IFTTSCqG0x8xiOMPbyM= @@ -206,8 +252,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= -github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= +github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= +github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -233,6 +279,8 @@ github.com/thlib/go-timezone-local v0.0.7 h1:fX8zd3aJydqLlTs/TrROrIIdztzsdFV23Oz github.com/thlib/go-timezone-local v0.0.7/go.mod h1:/Tnicc6m/lsJE0irFMA0LfIwTBo4QP7A8IfyIv4zZKI= github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 h1:HlxV0XiEKMMyjS3gGtJmmFZsxQ22GsLvA7F980il+1w= github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19/go.mod h1:mMgcE1RHFUFqe5AfiwlINXisXfDGro23fWdPUfOMjRY= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavMF/ppJZNG9ZpyihvCd0w101no= +github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM= github.com/xtaci/smux v1.5.35 h1:RosihGJBeaS8gxOZ17HNxbhONwnqQwNwusHx4+SEGhk= github.com/xtaci/smux v1.5.35/go.mod h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= @@ -242,6 +290,8 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACk golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= +golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o= +golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -262,6 +312,7 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/integration_test.go b/integration_test.go new file mode 100644 index 0000000..c532629 --- /dev/null +++ b/integration_test.go @@ -0,0 +1,24 @@ +package main_test + +import ( + "testing" + + "github.com/apppackio/apppack/cmd" + "github.com/rogpeppe/go-internal/testscript" +) + +func TestMain(m *testing.M) { + testscript.Main(m, map[string]func(){ + "apppack": cmd.Execute, + }) +} + +func TestCLI(t *testing.T) { + testscript.Run(t, testscript.Params{ + Dir: "testdata/script", + Setup: func(env *testscript.Env) error { + env.Setenv("NO_COLOR", "1") + return nil + }, + }) +} diff --git a/testdata/script/help.txtar b/testdata/script/help.txtar new file mode 100644 index 0000000..052f8d9 --- /dev/null +++ b/testdata/script/help.txtar @@ -0,0 +1,10 @@ +# Test help output lists key commands +exec apppack --help +stdout 'shell' +stdout 'scheduled-tasks' +stdout 'version' +! stderr . + +# Test unknown command +! exec apppack nonexistent-command +stderr 'unknown command' diff --git a/testdata/script/version.txtar b/testdata/script/version.txtar new file mode 100644 index 0000000..295e787 --- /dev/null +++ b/testdata/script/version.txtar @@ -0,0 +1,4 @@ +# Test version command outputs version info +exec apppack version +stdout 'development' +! stderr . diff --git a/ui/questions.go b/ui/questions.go index 88608aa..adc77f1 100644 --- a/ui/questions.go +++ b/ui/questions.go @@ -7,6 +7,7 @@ import ( "github.com/AlecAivazis/survey/v2" "github.com/AlecAivazis/survey/v2/core" + "github.com/charmbracelet/huh" "github.com/logrusorgru/aurora" ) @@ -127,3 +128,39 @@ func PauseUntilEnter(msg string) { fmt.Println(aurora.Bold(aurora.White(msg))) _, _ = fmt.Scanln() } + +// --- huh-based helpers (new, coexists with survey code above until migration is complete) --- + +// YesNoOptions returns huh options for a boolean yes/no select, with the +// given default pre-selected. +func YesNoOptions(defaultValue bool) []huh.Option[string] { + opts := []huh.Option[string]{ + huh.NewOption("yes", "yes"), + huh.NewOption("no", "no"), + } + if defaultValue { + opts[0] = opts[0].Selected(true) + } else { + opts[1] = opts[1].Selected(true) + } + + return opts +} + +// YesNoToBool converts a "yes"/"no" string to a boolean. +func YesNoToBool(val string) bool { + return val == "yes" +} + +// PrintQuestionHeader prints the verbose title and optional help text for a +// question, matching the existing AskQuestions visual style. +func PrintQuestionHeader(verbose, helpText string) { + fmt.Println() + fmt.Println(aurora.Bold(aurora.White(verbose))) + + if helpText != "" { + fmt.Println(helpText) + } + + fmt.Println() +} diff --git a/ui/questions_test.go b/ui/questions_test.go new file mode 100644 index 0000000..00d72f5 --- /dev/null +++ b/ui/questions_test.go @@ -0,0 +1,72 @@ +package ui + +import ( + "io" + "strings" + "testing" + + "github.com/charmbracelet/huh" +) + +func TestBooleanAsYesNo(t *testing.T) { + t.Parallel() + + if BooleanAsYesNo(true) != "yes" { + t.Error("expected yes for true") + } + + if BooleanAsYesNo(false) != "no" { + t.Error("expected no for false") + } +} + +func TestYesNoOptions(t *testing.T) { + t.Parallel() + + opts := YesNoOptions(true) + if len(opts) != 2 { + t.Fatalf("expected 2 options, got %d", len(opts)) + } + + opts = YesNoOptions(false) + if len(opts) != 2 { + t.Fatalf("expected 2 options, got %d", len(opts)) + } +} + +func TestYesNoToBool(t *testing.T) { + t.Parallel() + + if !YesNoToBool("yes") { + t.Error("expected true for yes") + } + + if YesNoToBool("no") { + t.Error("expected false for no") + } + + if YesNoToBool("anything") { + t.Error("expected false for non-yes value") + } +} + +func TestRunFormAccessible(t *testing.T) { + t.Parallel() + + var name string + form := huh.NewForm( + huh.NewGroup( + huh.NewInput().Title("Name").Value(&name), + ), + ).WithAccessible(true). + WithInput(strings.NewReader("Alice\n")). + WithOutput(io.Discard) + + if err := form.Run(); err != nil { + t.Fatal(err) + } + + if name != "Alice" { + t.Errorf("expected Alice, got %s", name) + } +} From 47f7a8270291e63bce0bd133df381e7d5f57d1ff Mon Sep 17 00:00:00 2001 From: Brendan Smith Date: Mon, 16 Mar 2026 11:16:23 -0400 Subject: [PATCH 2/4] feat: migrate scheduled-tasks delete prompt from survey to huh Replace survey.Select with huh.Select[int] for the task picker in scheduled-tasks delete. Uses typed options to store the index directly instead of survey's OptionAnswer pattern. --- cmd/scheduledTasks.go | 30 ++++++++++++--------------- testdata/script/scheduled_tasks.txtar | 12 +++++++++++ 2 files changed, 25 insertions(+), 17 deletions(-) create mode 100644 testdata/script/scheduled_tasks.txtar diff --git a/cmd/scheduledTasks.go b/cmd/scheduledTasks.go index 6d4cb62..6c1a0c8 100644 --- a/cmd/scheduledTasks.go +++ b/cmd/scheduledTasks.go @@ -21,9 +21,9 @@ import ( "strconv" "strings" - "github.com/AlecAivazis/survey/v2" "github.com/apppackio/apppack/app" "github.com/apppackio/apppack/ui" + "github.com/charmbracelet/huh" "github.com/logrusorgru/aurora" "github.com/spf13/cobra" ) @@ -124,24 +124,20 @@ If no index is provided, an interactive prompt will be provided to choose the ta return } - var taskList []string - for _, t := range tasks { - taskList = append(taskList, fmt.Sprintf("%s %s", t.Schedule, t.Command)) + options := make([]huh.Option[int], len(tasks)) + for i, t := range tasks { + options[i] = huh.NewOption(fmt.Sprintf("%s %s", t.Schedule, t.Command), i) } - questions := []*survey.Question{{ - Name: "task", - Prompt: &survey.Select{ - Message: "Scheduled task to delete:", - Options: taskList, - FilterMessage: "", - }, - }} - answers := make(map[string]int) ui.Spinner.Stop() - if err := survey.Ask(questions, &answers); err != nil { - checkErr(err) - } - idx = answers["task"] + form := huh.NewForm( + huh.NewGroup( + huh.NewSelect[int](). + Title("Scheduled task to delete:"). + Options(options...). + Value(&idx), + ), + ) + checkErr(form.Run()) } task, err = a.DeleteScheduledTask(idx) checkErr(err) diff --git a/testdata/script/scheduled_tasks.txtar b/testdata/script/scheduled_tasks.txtar new file mode 100644 index 0000000..4155198 --- /dev/null +++ b/testdata/script/scheduled_tasks.txtar @@ -0,0 +1,12 @@ +# Test scheduled-tasks help +exec apppack scheduled-tasks --help +stdout 'list scheduled tasks' +! stderr . + +# Test create subcommand help +exec apppack scheduled-tasks create --help +stdout 'Schedule a command to run' + +# Test delete subcommand help +exec apppack scheduled-tasks delete --help +stdout 'Delete the scheduled task' From 78fbe9e01e3db06024af09a634a96078abb82029 Mon Sep 17 00:00:00 2001 From: Brendan Smith Date: Mon, 16 Mar 2026 12:41:02 -0400 Subject: [PATCH 3/4] feat: add teatest-based interactive TUI testing for huh forms Add ui/uitest package with helpers for driving huh forms in tests via charmbracelet/x/exp/teatest: RunForm, SelectNth, SelectFirst, TypeAndSubmit, WaitDone. Extract ScheduledTaskDeleteForm from the Cobra handler so the form can be tested independently with simulated keypresses. Tests verify selecting first, second, and last options all bind the correct index. --- cmd/scheduledTasks.go | 27 ++++++++++++----- cmd/scheduledTasks_test.go | 59 ++++++++++++++++++++++++++++++++++++ go.mod | 9 ++++-- go.sum | 14 +++++---- ui/uitest/helpers.go | 53 +++++++++++++++++++++++++++++++++ ui/uitest/helpers_test.go | 61 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 206 insertions(+), 17 deletions(-) create mode 100644 cmd/scheduledTasks_test.go create mode 100644 ui/uitest/helpers.go create mode 100644 ui/uitest/helpers_test.go diff --git a/cmd/scheduledTasks.go b/cmd/scheduledTasks.go index 6c1a0c8..cf78be8 100644 --- a/cmd/scheduledTasks.go +++ b/cmd/scheduledTasks.go @@ -129,15 +129,9 @@ If no index is provided, an interactive prompt will be provided to choose the ta options[i] = huh.NewOption(fmt.Sprintf("%s %s", t.Schedule, t.Command), i) } ui.Spinner.Stop() - form := huh.NewForm( - huh.NewGroup( - huh.NewSelect[int](). - Title("Scheduled task to delete:"). - Options(options...). - Value(&idx), - ), - ) + form, idxPtr := ScheduledTaskDeleteForm(options) checkErr(form.Run()) + idx = *idxPtr } task, err = a.DeleteScheduledTask(idx) checkErr(err) @@ -146,6 +140,23 @@ If no index is provided, an interactive prompt will be provided to choose the ta }, } +// ScheduledTaskDeleteForm builds the interactive form for selecting a task to delete. +// Returns the form and a pointer to the selected index. +func ScheduledTaskDeleteForm(options []huh.Option[int]) (*huh.Form, *int) { + var idx int + + form := huh.NewForm( + huh.NewGroup( + huh.NewSelect[int](). + Title("Scheduled task to delete:"). + Options(options...). + Value(&idx), + ), + ) + + return form, &idx +} + func init() { rootCmd.AddCommand(scheduledTasksCmd) scheduledTasksCmd.PersistentFlags().StringVarP(&AppName, "app-name", "a", "", "app name (required)") diff --git a/cmd/scheduledTasks_test.go b/cmd/scheduledTasks_test.go new file mode 100644 index 0000000..b780793 --- /dev/null +++ b/cmd/scheduledTasks_test.go @@ -0,0 +1,59 @@ +package cmd + +import ( + "testing" + + "github.com/apppackio/apppack/ui/uitest" + "github.com/charmbracelet/huh" +) + +func TestScheduledTaskDeleteForm_SelectFirst(t *testing.T) { + options := []huh.Option[int]{ + huh.NewOption("0 0 * * ? * echo hello", 0), + huh.NewOption("0/10 * * * ? * echo world", 1), + huh.NewOption("0 12 * * ? * echo noon", 2), + } + + form, idxPtr := ScheduledTaskDeleteForm(options) + tm := uitest.RunForm(t, form) + uitest.SelectFirst(tm) + uitest.WaitDone(t, tm) + + if *idxPtr != 0 { + t.Errorf("expected index 0, got %d", *idxPtr) + } +} + +func TestScheduledTaskDeleteForm_SelectSecond(t *testing.T) { + options := []huh.Option[int]{ + huh.NewOption("0 0 * * ? * echo hello", 0), + huh.NewOption("0/10 * * * ? * echo world", 1), + huh.NewOption("0 12 * * ? * echo noon", 2), + } + + form, idxPtr := ScheduledTaskDeleteForm(options) + tm := uitest.RunForm(t, form) + uitest.SelectNth(tm, 1) + uitest.WaitDone(t, tm) + + if *idxPtr != 1 { + t.Errorf("expected index 1, got %d", *idxPtr) + } +} + +func TestScheduledTaskDeleteForm_SelectLast(t *testing.T) { + options := []huh.Option[int]{ + huh.NewOption("0 0 * * ? * echo hello", 0), + huh.NewOption("0/10 * * * ? * echo world", 1), + huh.NewOption("0 12 * * ? * echo noon", 2), + } + + form, idxPtr := ScheduledTaskDeleteForm(options) + tm := uitest.RunForm(t, form) + uitest.SelectNth(tm, 2) + uitest.WaitDone(t, tm) + + if *idxPtr != 2 { + t.Errorf("expected index 2, got %d", *idxPtr) + } +} diff --git a/go.mod b/go.mod index 27a4a31..2664c6b 100644 --- a/go.mod +++ b/go.mod @@ -44,7 +44,9 @@ require ( github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 github.com/aws/session-manager-plugin v0.0.0-20250205214155-b2b0bcd769d1 github.com/aws/smithy-go v1.23.2 + github.com/charmbracelet/bubbletea v1.3.5 github.com/charmbracelet/huh v0.7.0 + github.com/charmbracelet/x/exp/teatest v0.0.0-20260316093931-f2fb44ab3145 github.com/cli/cli/v2 v2.83.0 github.com/go-jose/go-jose/v4 v4.1.1 github.com/rogpeppe/go-internal v1.14.1 @@ -67,13 +69,14 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.30.1 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect + github.com/aymanbagabas/go-udiff v0.3.1 // indirect github.com/catppuccin/go v0.3.0 // indirect github.com/charmbracelet/bubbles v0.21.0 // indirect - github.com/charmbracelet/bubbletea v1.3.5 // indirect - github.com/charmbracelet/colorprofile v0.3.1 // indirect + github.com/charmbracelet/colorprofile v0.3.2 // indirect github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834 // indirect - github.com/charmbracelet/x/ansi v0.9.3 // indirect + github.com/charmbracelet/x/ansi v0.10.1 // indirect github.com/charmbracelet/x/cellbuf v0.0.13 // indirect + github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 // indirect github.com/charmbracelet/x/exp/strings v0.0.0-20250630141444-821143405392 // indirect github.com/charmbracelet/x/term v0.2.1 // indirect github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 // indirect diff --git a/go.sum b/go.sum index fe008cd..f23e2bd 100644 --- a/go.sum +++ b/go.sum @@ -88,8 +88,8 @@ github.com/aws/smithy-go v1.23.2 h1:Crv0eatJUQhaManss33hS5r40CG3ZFH+21XSkqMrIUM= github.com/aws/smithy-go v1.23.2/go.mod h1:LEj2LM3rBRQJxPZTB4KuzZkaZYnZPnvgIhb4pu07mx0= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= -github.com/aymanbagabas/go-udiff v0.2.0 h1:TK0fH4MteXUDspT88n8CKzvK0X9O2xu9yQjWpi6yML8= -github.com/aymanbagabas/go-udiff v0.2.0/go.mod h1:RE4Ex0qsGkTAJoQdQQCA0uG+nAzJO/pI/QwceO5fgrA= +github.com/aymanbagabas/go-udiff v0.3.1 h1:LV+qyBQ2pqe0u42ZsUEtPiCaUoqgA9gYRDs3vj1nolY= +github.com/aymanbagabas/go-udiff v0.3.1/go.mod h1:G0fsKmG+P6ylD0r6N/KgQD/nWzgfnl8ZBcNLgcbrw8E= github.com/briandowns/spinner v1.23.2 h1:Zc6ecUnI+YzLmJniCfDNaMbW0Wid1d5+qcTq4L2FW8w= github.com/briandowns/spinner v1.23.2/go.mod h1:LaZeM4wm2Ywy6vO571mvhQNRcWfRUnXOs0RcKV0wYKM= github.com/catppuccin/go v0.3.0 h1:d+0/YicIq+hSTo5oPuRi5kOpqkVA5tAsU6dNhvRu+aY= @@ -98,14 +98,14 @@ github.com/charmbracelet/bubbles v0.21.0 h1:9TdC97SdRVg/1aaXNVWfFH3nnLAwOXr8Fn6u github.com/charmbracelet/bubbles v0.21.0/go.mod h1:HF+v6QUR4HkEpz62dx7ym2xc71/KBHg+zKwJtMw+qtg= github.com/charmbracelet/bubbletea v1.3.5 h1:JAMNLTbqMOhSwoELIr0qyP4VidFq72/6E9j7HHmRKQc= github.com/charmbracelet/bubbletea v1.3.5/go.mod h1:TkCnmH+aBd4LrXhXcqrKiYwRs7qyQx5rBgH5fVY3v54= -github.com/charmbracelet/colorprofile v0.3.1 h1:k8dTHMd7fgw4bnFd7jXTLZrSU/CQrKnL3m+AxCzDz40= -github.com/charmbracelet/colorprofile v0.3.1/go.mod h1:/GkGusxNs8VB/RSOh3fu0TJmQ4ICMMPApIIVn0KszZ0= +github.com/charmbracelet/colorprofile v0.3.2 h1:9J27WdztfJQVAQKX2WOlSSRB+5gaKqqITmrvb1uTIiI= +github.com/charmbracelet/colorprofile v0.3.2/go.mod h1:mTD5XzNeWHj8oqHb+S1bssQb7vIHbepiebQ2kPKVKbI= github.com/charmbracelet/huh v0.7.0 h1:W8S1uyGETgj9Tuda3/JdVkc3x7DBLZYPZc4c+/rnRdc= github.com/charmbracelet/huh v0.7.0/go.mod h1:UGC3DZHlgOKHvHC07a5vHag41zzhpPFj34U92sOmyuk= github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834 h1:ZR7e0ro+SZZiIZD7msJyA+NjkCNNavuiPBLgerbOziE= github.com/charmbracelet/lipgloss v1.1.1-0.20250404203927-76690c660834/go.mod h1:aKC/t2arECF6rNOnaKaVU6y4t4ZeHQzqfxedE/VkVhA= -github.com/charmbracelet/x/ansi v0.9.3 h1:BXt5DHS/MKF+LjuK4huWrC6NCvHtexww7dMayh6GXd0= -github.com/charmbracelet/x/ansi v0.9.3/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= +github.com/charmbracelet/x/ansi v0.10.1 h1:rL3Koar5XvX0pHGfovN03f5cxLbCF2YvLeyz7D2jVDQ= +github.com/charmbracelet/x/ansi v0.10.1/go.mod h1:3RQDQ6lDnROptfpWuUVIUG64bD2g2BgntdxH0Ya5TeE= github.com/charmbracelet/x/cellbuf v0.0.13 h1:/KBBKHuVRbq1lYx5BzEHBAFBP8VcQzJejZ/IA3iR28k= github.com/charmbracelet/x/cellbuf v0.0.13/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= github.com/charmbracelet/x/conpty v0.1.0 h1:4zc8KaIcbiL4mghEON8D72agYtSeIgq8FSThSPQIb+U= @@ -116,6 +116,8 @@ github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payR github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U= github.com/charmbracelet/x/exp/strings v0.0.0-20250630141444-821143405392 h1:6ipGA1NEA0AZG2UEf81RQGJvEPvYLn/M18mZcdt4J8g= github.com/charmbracelet/x/exp/strings v0.0.0-20250630141444-821143405392/go.mod h1:Rgw3/F+xlcUc5XygUtimVSxAqCOsqyvJjqF5UHRvc5k= +github.com/charmbracelet/x/exp/teatest v0.0.0-20260316093931-f2fb44ab3145 h1:ztM3k0leceSs/tK6N3shexiN7XWUnpO885yqoDzP/Do= +github.com/charmbracelet/x/exp/teatest v0.0.0-20260316093931-f2fb44ab3145/go.mod h1:aPVjFrBwbJgj5Qz1F0IXsnbcOVJcMKgu1ySUfTAxh7k= github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= github.com/charmbracelet/x/termios v0.1.1 h1:o3Q2bT8eqzGnGPOYheoYS8eEleT5ZVNYNy8JawjaNZY= diff --git a/ui/uitest/helpers.go b/ui/uitest/helpers.go new file mode 100644 index 0000000..c19c52b --- /dev/null +++ b/ui/uitest/helpers.go @@ -0,0 +1,53 @@ +package uitest + +import ( + "testing" + "time" + + tea "github.com/charmbracelet/bubbletea" + "github.com/charmbracelet/huh" + "github.com/charmbracelet/x/exp/teatest" +) + +// RunForm creates a teatest model from a huh form with an 80x24 terminal +// and waits for the form to initialize. +func RunForm(t *testing.T, form *huh.Form) *teatest.TestModel { + t.Helper() + + tm := teatest.NewTestModel(t, form, teatest.WithInitialTermSize(80, 24)) + time.Sleep(300 * time.Millisecond) + + return tm +} + +// SelectNth sends n down-arrow keys then Enter to select the nth option (0-indexed). +func SelectNth(tm *teatest.TestModel, n int) { + for range n { + tm.Send(tea.KeyMsg{Type: tea.KeyDown}) + } + + tm.Send(tea.KeyMsg{Type: tea.KeyEnter}) +} + +// SelectFirst sends Enter to accept the default/first option. +func SelectFirst(tm *teatest.TestModel) { + tm.Send(tea.KeyMsg{Type: tea.KeyEnter}) +} + +// TypeAndSubmit types text into an input field and presses Enter. +func TypeAndSubmit(tm *teatest.TestModel, text string) { + tm.Type(text) + tm.Send(tea.KeyMsg{Type: tea.KeyEnter}) +} + +// WaitDone signals the form to quit and waits for the final model. +// huh forms don't automatically trigger tea.Quit when complete via teatest, +// so we send QuitMsg explicitly after a brief delay for the form to process. +func WaitDone(t *testing.T, tm *teatest.TestModel) tea.Model { + t.Helper() + + time.Sleep(100 * time.Millisecond) + tm.Send(tea.QuitMsg{}) + + return tm.FinalModel(t, teatest.WithFinalTimeout(3*time.Second)) +} diff --git a/ui/uitest/helpers_test.go b/ui/uitest/helpers_test.go new file mode 100644 index 0000000..ee76eac --- /dev/null +++ b/ui/uitest/helpers_test.go @@ -0,0 +1,61 @@ +package uitest + +import ( + "testing" + + "github.com/charmbracelet/huh" +) + +func newTestSelect(selected *int) *huh.Form { + return huh.NewForm( + huh.NewGroup( + huh.NewSelect[int](). + Title("Pick:"). + Options( + huh.NewOption("A", 0), + huh.NewOption("B", 1), + huh.NewOption("C", 2), + ). + Value(selected), + ), + ) +} + +func TestSelectFirst(t *testing.T) { + var selected int + tm := RunForm(t, newTestSelect(&selected)) + SelectFirst(tm) + WaitDone(t, tm) + + if selected != 0 { + t.Errorf("expected 0, got %d", selected) + } +} + +func TestSelectNth(t *testing.T) { + var selected int + tm := RunForm(t, newTestSelect(&selected)) + SelectNth(tm, 2) + WaitDone(t, tm) + + if selected != 2 { + t.Errorf("expected 2, got %d", selected) + } +} + +func TestTypeAndSubmit(t *testing.T) { + var name string + form := huh.NewForm( + huh.NewGroup( + huh.NewInput().Title("Name:").Value(&name), + ), + ) + + tm := RunForm(t, form) + TypeAndSubmit(tm, "Alice") + WaitDone(t, tm) + + if name != "Alice" { + t.Errorf("expected Alice, got %s", name) + } +} From c05bc35b578543af4b1a3814098a55baffd857fc Mon Sep 17 00:00:00 2001 From: Brendan Smith Date: Fri, 20 Mar 2026 11:11:17 -0400 Subject: [PATCH 4/4] docs: add VHS demo recording of huh scheduled-tasks delete Includes .tape script for reproducible recording with charmbracelet/vhs. --- demo-scheduled-tasks-delete.gif | Bin 0 -> 137507 bytes demo-scheduled-tasks-delete.tape | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 demo-scheduled-tasks-delete.gif create mode 100644 demo-scheduled-tasks-delete.tape diff --git a/demo-scheduled-tasks-delete.gif b/demo-scheduled-tasks-delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..12443ad44c85a0b4c4b7d467603417b0f262afd5 GIT binary patch literal 137507 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�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 Yr*>i1{%ncez$>STnlhc4|0-~?AN1hM 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 OmACXtF7>7+% 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 Mi|YT6^QXiA08dTF8vp