@@ -36,6 +36,124 @@ exports[`select (isCI = false) > can cancel 1`] = `
3636]
3737`;
3838
39+ exports[`select (isCI = false) > correctly limits options when message wraps to multiple lines 1`] = `
40+ [
41+ "<cursor.hide >",
42+ "[90m│[39m
43+ [36m◆[39m This is a very
44+ [36m│[39m long message that
45+ [36m│[39m will wrap to
46+ [36m│[39m multiple lines
47+ [36m│[39m [32m●[39m Option 0
48+ [36m│[39m [2m○[22m [2mOption 1[22m
49+ [36m│[39m [2m○[22m [2mOption 2[22m
50+ [36m│[39m [2m...[22m
51+ [36m└[39m
52+ ",
53+ "<cursor.backward count =999><cursor.up count =10>",
54+ " <cursor.down count=5>" ,
55+ " <erase.down>" ,
56+ " [36m│[39m [2m○[22m [2mOption 0[22m
57+ [36m│[39m [32m●[39m Option 1
58+ [36m│[39m [2m○[22m [2mOption 2[22m
59+ [36m│[39m [2m...[22m
60+ [36m└[39m
61+ " ,
62+ " <cursor.backward count=999><cursor.up count=10>" ,
63+ " <cursor.down count=6>" ,
64+ " <erase.down>" ,
65+ " [36m│[39m [2m○[22m [2mOption 1[22m
66+ [36m│[39m [32m●[39m Option 2
67+ [36m│[39m [2m...[22m
68+ [36m└[39m
69+ " ,
70+ " <cursor.backward count=999><cursor.up count=10>" ,
71+ " <cursor.down count=5>" ,
72+ " <erase.down>" ,
73+ " [36m│[39m [2m...[22m
74+ [36m│[39m [32m●[39m Option 3
75+ [36m│[39m [2m○[22m [2mOption 4[22m
76+ [36m│[39m [2m...[22m
77+ [36m└[39m
78+ " ,
79+ " <cursor.backward count=999><cursor.up count=10>" ,
80+ " <cursor.down count=6>" ,
81+ " <erase.down>" ,
82+ " [36m│[39m [32m●[39m Option 4
83+ [36m│[39m [2m○[22m [2mOption 5[22m
84+ [36m│[39m [2m...[22m
85+ [36m└[39m
86+ " ,
87+ " <cursor.backward count=999><cursor.up count=10>" ,
88+ " <cursor.down count=1>" ,
89+ " <erase.down>" ,
90+ " [32m◇[39m This is a very
91+ [32m│[39m long message that
92+ [32m│[39m will wrap to
93+ [32m│[39m multiple lines
94+ [90m│[39m [2mOption 4[22m" ,
95+ "
96+ " ,
97+ " <cursor.show>" ,
98+ ]
99+ `;
100+
101+ exports[`select (isCI = false) > correctly limits options with explicit multiline message 1`] = `
102+ [
103+ "<cursor.hide >",
104+ "[90m│[39m
105+ [36m◆[39m Choose an option:
106+ [36m│[39m Line 2 of the message
107+ [36m│[39m Line 3 of the message
108+ [36m│[39m [32m●[39m Option 0
109+ [36m│[39m [2m○[22m [2mOption 1[22m
110+ [36m│[39m [2m○[22m [2mOption 2[22m
111+ [36m│[39m [2m○[22m [2mOption 3[22m
112+ [36m│[39m [2m...[22m
113+ [36m└[39m
114+ ",
115+ "<cursor.backward count =999><cursor.up count =10>",
116+ " <cursor.down count=4>" ,
117+ " <erase.down>" ,
118+ " [36m│[39m [2m○[22m [2mOption 0[22m
119+ [36m│[39m [32m●[39m Option 1
120+ [36m│[39m [2m○[22m [2mOption 2[22m
121+ [36m│[39m [2m○[22m [2mOption 3[22m
122+ [36m│[39m [2m...[22m
123+ [36m└[39m
124+ " ,
125+ " <cursor.backward count=999><cursor.up count=10>" ,
126+ " <cursor.down count=5>" ,
127+ " <erase.down>" ,
128+ " [36m│[39m [2m○[22m [2mOption 1[22m
129+ [36m│[39m [32m●[39m Option 2
130+ [36m│[39m [2m○[22m [2mOption 3[22m
131+ [36m│[39m [2m...[22m
132+ [36m└[39m
133+ " ,
134+ " <cursor.backward count=999><cursor.up count=10>" ,
135+ " <cursor.down count=4>" ,
136+ " <erase.down>" ,
137+ " [36m│[39m [2m...[22m
138+ [36m│[39m [2m○[22m [2mOption 2[22m
139+ [36m│[39m [32m●[39m Option 3
140+ [36m│[39m [2m○[22m [2mOption 4[22m
141+ [36m│[39m [2m...[22m
142+ [36m└[39m
143+ " ,
144+ " <cursor.backward count=999><cursor.up count=10>" ,
145+ " <cursor.down count=1>" ,
146+ " <erase.down>" ,
147+ " [32m◇[39m Choose an option:
148+ [32m│[39m Line 2 of the message
149+ [32m│[39m Line 3 of the message
150+ [90m│[39m [2mOption 3[22m" ,
151+ "
152+ " ,
153+ " <cursor.show>" ,
154+ ]
155+ `;
156+
39157exports[`select (isCI = false) > down arrow selects next option 1`] = `
40158[
41159 "<cursor.hide >",
@@ -362,6 +480,124 @@ exports[`select (isCI = true) > can cancel 1`] = `
362480]
363481`;
364482
483+ exports[`select (isCI = true) > correctly limits options when message wraps to multiple lines 1`] = `
484+ [
485+ "<cursor.hide >",
486+ "[90m│[39m
487+ [36m◆[39m This is a very
488+ [36m│[39m long message that
489+ [36m│[39m will wrap to
490+ [36m│[39m multiple lines
491+ [36m│[39m [32m●[39m Option 0
492+ [36m│[39m [2m○[22m [2mOption 1[22m
493+ [36m│[39m [2m○[22m [2mOption 2[22m
494+ [36m│[39m [2m...[22m
495+ [36m└[39m
496+ ",
497+ "<cursor.backward count =999><cursor.up count =10>",
498+ " <cursor.down count=5>" ,
499+ " <erase.down>" ,
500+ " [36m│[39m [2m○[22m [2mOption 0[22m
501+ [36m│[39m [32m●[39m Option 1
502+ [36m│[39m [2m○[22m [2mOption 2[22m
503+ [36m│[39m [2m...[22m
504+ [36m└[39m
505+ " ,
506+ " <cursor.backward count=999><cursor.up count=10>" ,
507+ " <cursor.down count=6>" ,
508+ " <erase.down>" ,
509+ " [36m│[39m [2m○[22m [2mOption 1[22m
510+ [36m│[39m [32m●[39m Option 2
511+ [36m│[39m [2m...[22m
512+ [36m└[39m
513+ " ,
514+ " <cursor.backward count=999><cursor.up count=10>" ,
515+ " <cursor.down count=5>" ,
516+ " <erase.down>" ,
517+ " [36m│[39m [2m...[22m
518+ [36m│[39m [32m●[39m Option 3
519+ [36m│[39m [2m○[22m [2mOption 4[22m
520+ [36m│[39m [2m...[22m
521+ [36m└[39m
522+ " ,
523+ " <cursor.backward count=999><cursor.up count=10>" ,
524+ " <cursor.down count=6>" ,
525+ " <erase.down>" ,
526+ " [36m│[39m [32m●[39m Option 4
527+ [36m│[39m [2m○[22m [2mOption 5[22m
528+ [36m│[39m [2m...[22m
529+ [36m└[39m
530+ " ,
531+ " <cursor.backward count=999><cursor.up count=10>" ,
532+ " <cursor.down count=1>" ,
533+ " <erase.down>" ,
534+ " [32m◇[39m This is a very
535+ [32m│[39m long message that
536+ [32m│[39m will wrap to
537+ [32m│[39m multiple lines
538+ [90m│[39m [2mOption 4[22m" ,
539+ "
540+ " ,
541+ " <cursor.show>" ,
542+ ]
543+ `;
544+
545+ exports[`select (isCI = true) > correctly limits options with explicit multiline message 1`] = `
546+ [
547+ "<cursor.hide >",
548+ "[90m│[39m
549+ [36m◆[39m Choose an option:
550+ [36m│[39m Line 2 of the message
551+ [36m│[39m Line 3 of the message
552+ [36m│[39m [32m●[39m Option 0
553+ [36m│[39m [2m○[22m [2mOption 1[22m
554+ [36m│[39m [2m○[22m [2mOption 2[22m
555+ [36m│[39m [2m○[22m [2mOption 3[22m
556+ [36m│[39m [2m...[22m
557+ [36m└[39m
558+ ",
559+ "<cursor.backward count =999><cursor.up count =10>",
560+ " <cursor.down count=4>" ,
561+ " <erase.down>" ,
562+ " [36m│[39m [2m○[22m [2mOption 0[22m
563+ [36m│[39m [32m●[39m Option 1
564+ [36m│[39m [2m○[22m [2mOption 2[22m
565+ [36m│[39m [2m○[22m [2mOption 3[22m
566+ [36m│[39m [2m...[22m
567+ [36m└[39m
568+ " ,
569+ " <cursor.backward count=999><cursor.up count=10>" ,
570+ " <cursor.down count=5>" ,
571+ " <erase.down>" ,
572+ " [36m│[39m [2m○[22m [2mOption 1[22m
573+ [36m│[39m [32m●[39m Option 2
574+ [36m│[39m [2m○[22m [2mOption 3[22m
575+ [36m│[39m [2m...[22m
576+ [36m└[39m
577+ " ,
578+ " <cursor.backward count=999><cursor.up count=10>" ,
579+ " <cursor.down count=4>" ,
580+ " <erase.down>" ,
581+ " [36m│[39m [2m...[22m
582+ [36m│[39m [2m○[22m [2mOption 2[22m
583+ [36m│[39m [32m●[39m Option 3
584+ [36m│[39m [2m○[22m [2mOption 4[22m
585+ [36m│[39m [2m...[22m
586+ [36m└[39m
587+ " ,
588+ " <cursor.backward count=999><cursor.up count=10>" ,
589+ " <cursor.down count=1>" ,
590+ " <erase.down>" ,
591+ " [32m◇[39m Choose an option:
592+ [32m│[39m Line 2 of the message
593+ [32m│[39m Line 3 of the message
594+ [90m│[39m [2mOption 3[22m" ,
595+ "
596+ " ,
597+ " <cursor.show>" ,
598+ ]
599+ `;
600+
365601exports[`select (isCI = true) > down arrow selects next option 1`] = `
366602[
367603 "<cursor.hide >",
0 commit comments