@@ -18,19 +18,8 @@ describe('auto-complete element', function () {
1818 } )
1919 } )
2020
21- describe ( 'requesting server results' , function ( ) {
22- beforeEach ( function ( ) {
23- document . body . innerHTML = `
24- <div id="mocha-fixture">
25- <auto-complete src="/search" for="popup">
26- <input type="text">
27- <ul id="popup"></ul>
28- <div id="popup-feedback"></div>
29- </auto-complete>
30- </div>
31- `
32- } )
33-
21+ // eslint-disable-next-line func-style
22+ const serverResponseExamples = function ( ) {
3423 it ( 'requests html fragment' , async function ( ) {
3524 const container = document . querySelector ( 'auto-complete' )
3625 const input = container . querySelector ( 'input' )
@@ -147,25 +136,6 @@ describe('auto-complete element', function () {
147136 assert . isFalse ( container . open )
148137 } )
149138
150- it ( 'does not close on blur after mousedown' , async function ( ) {
151- const container = document . querySelector ( 'auto-complete' )
152- const input = container . querySelector ( 'input' )
153-
154- triggerInput ( input , 'hub' )
155- await once ( container , 'loadend' )
156-
157- const link = container . querySelector ( 'a[role=option]' )
158-
159- assert . equal ( '' , container . value )
160- link . dispatchEvent ( new MouseEvent ( 'mousedown' , { bubbles : true } ) )
161- input . dispatchEvent ( new Event ( 'blur' ) )
162- assert ( container . open )
163-
164- await sleep ( 100 )
165- input . dispatchEvent ( new Event ( 'blur' ) )
166- assert . isFalse ( container . open )
167- } )
168-
169139 it ( 'closes on Escape' , async function ( ) {
170140 const container = document . querySelector ( 'auto-complete' )
171141 const input = container . querySelector ( 'input' )
@@ -175,10 +145,10 @@ describe('auto-complete element', function () {
175145 await once ( container , 'loadend' )
176146
177147 assert . isTrue ( container . open )
178- assert . isFalse ( popup . hidden )
148+ if ( ! popup . popover ) assert . isFalse ( popup . hidden )
179149 assert . isFalse ( keydown ( input , 'Escape' ) )
180150 assert . isFalse ( container . open )
181- assert . isTrue ( popup . hidden )
151+ if ( ! popup . popover ) assert . isTrue ( popup . hidden )
182152 } )
183153
184154 it ( 'opens and closes on alt + ArrowDown and alt + ArrowUp' , async function ( ) {
@@ -190,15 +160,15 @@ describe('auto-complete element', function () {
190160 await once ( container , 'loadend' )
191161
192162 assert . isTrue ( container . open )
193- assert . isFalse ( popup . hidden )
163+ if ( ! popup . popover ) assert . isFalse ( popup . hidden )
194164
195165 assert . isFalse ( keydown ( input , 'ArrowUp' , true ) )
196166 assert . isFalse ( container . open )
197- assert . isTrue ( popup . hidden )
167+ if ( ! popup . popover ) assert . isTrue ( popup . hidden )
198168
199169 assert . isFalse ( keydown ( input , 'ArrowDown' , true ) )
200170 assert . isTrue ( container . open )
201- assert . isFalse ( popup . hidden )
171+ if ( ! popup . popover ) assert . isFalse ( popup . hidden )
202172 } )
203173
204174 it ( 'allows providing a custom fetch method' , async ( ) => {
@@ -216,6 +186,38 @@ describe('auto-complete element', function () {
216186 assert . equal ( 2 , popup . children . length )
217187 assert . equal ( popup . querySelector ( 'li' ) . textContent , 'Mock Custom Fetch Result 1' )
218188 } )
189+ }
190+
191+ describe ( 'requesting server results (non-popover)' , function ( ) {
192+ beforeEach ( function ( ) {
193+ document . body . innerHTML = `
194+ <div id="mocha-fixture">
195+ <auto-complete src="/search" for="popup">
196+ <input type="text">
197+ <ul id="popup"></ul>
198+ <div id="popup-feedback"></div>
199+ </auto-complete>
200+ </div>
201+ `
202+ } )
203+
204+ serverResponseExamples ( )
205+ } )
206+
207+ describe ( 'requesting server results (popover)' , function ( ) {
208+ beforeEach ( function ( ) {
209+ document . body . innerHTML = `
210+ <div id="mocha-fixture">
211+ <auto-complete src="/search" for="popup">
212+ <input type="text">
213+ <ul popover id="popup"></ul>
214+ <div id="popup-feedback"></div>
215+ </auto-complete>
216+ </div>
217+ `
218+ } )
219+
220+ serverResponseExamples ( )
219221 } )
220222
221223 describe ( 'clear button provided' , ( ) => {
0 commit comments