@@ -138,4 +138,57 @@ test.describe('Test Query Settings', async () => {
138138
139139 await expect ( queryEditor . isBannerHidden ( ) ) . resolves . toBe ( true ) ;
140140 } ) ;
141+
142+ test ( 'Shows error for limit rows > 100000' , async ( { page} ) => {
143+ const queryEditor = new QueryEditor ( page ) ;
144+ await queryEditor . clickGearButton ( ) ;
145+
146+ await queryEditor . settingsDialog . changeLimitRows ( 100001 ) ;
147+ await queryEditor . settingsDialog . clickButton ( ButtonNames . Save ) ;
148+
149+ await expect ( queryEditor . settingsDialog . isLimitRowsError ( ) ) . resolves . toBe ( true ) ;
150+ await expect ( queryEditor . settingsDialog . getLimitRowsErrorMessage ( ) ) . resolves . toBe (
151+ 'Number must be less than or equal to 100000' ,
152+ ) ;
153+ } ) ;
154+
155+ test ( 'Shows error for negative limit rows' , async ( { page} ) => {
156+ const queryEditor = new QueryEditor ( page ) ;
157+ await queryEditor . clickGearButton ( ) ;
158+
159+ await queryEditor . settingsDialog . changeLimitRows ( - 1 ) ;
160+ await queryEditor . settingsDialog . clickButton ( ButtonNames . Save ) ;
161+
162+ await expect ( queryEditor . settingsDialog . isLimitRowsError ( ) ) . resolves . toBe ( true ) ;
163+ await expect ( queryEditor . settingsDialog . getLimitRowsErrorMessage ( ) ) . resolves . toBe (
164+ 'Number must be greater than 0' ,
165+ ) ;
166+ } ) ;
167+
168+ test ( 'Persists valid limit rows value' , async ( { page} ) => {
169+ const queryEditor = new QueryEditor ( page ) ;
170+ const validValue = 50000 ;
171+
172+ // Set value and save
173+ await queryEditor . clickGearButton ( ) ;
174+ await queryEditor . settingsDialog . changeLimitRows ( validValue ) ;
175+ await queryEditor . settingsDialog . clickButton ( ButtonNames . Save ) ;
176+ await expect ( queryEditor . settingsDialog . isHidden ( ) ) . resolves . toBe ( true ) ;
177+
178+ // Reopen and check value
179+ await queryEditor . clickGearButton ( ) ;
180+ await expect ( queryEditor . settingsDialog . getLimitRowsValue ( ) ) . resolves . toBe (
181+ validValue . toString ( ) ,
182+ ) ;
183+ } ) ;
184+
185+ test ( 'Allows empty limit rows value' , async ( { page} ) => {
186+ const queryEditor = new QueryEditor ( page ) ;
187+
188+ await queryEditor . clickGearButton ( ) ;
189+ await queryEditor . settingsDialog . clearLimitRows ( ) ;
190+ await queryEditor . settingsDialog . clickButton ( ButtonNames . Save ) ;
191+
192+ await expect ( queryEditor . settingsDialog . isHidden ( ) ) . resolves . toBe ( true ) ;
193+ } ) ;
141194} ) ;
0 commit comments