@@ -30,7 +30,12 @@ describe('remote-input', function() {
30
30
const input = document . querySelector ( 'input' )
31
31
const results = document . querySelector ( '#results' )
32
32
assert . equal ( results . innerHTML , '' )
33
+ let successEvent = false
34
+ remoteInput . addEventListener ( 'remote-input-success' , function ( ) {
35
+ successEvent = true
36
+ } )
33
37
remoteInput . addEventListener ( 'loadend' , function ( ) {
38
+ assert . ok ( successEvent , 'success event happened' )
34
39
assert . equal ( results . querySelector ( 'ol' ) . getAttribute ( 'data-src' ) , '/results?q=test' )
35
40
done ( )
36
41
} )
@@ -44,17 +49,34 @@ describe('remote-input', function() {
44
49
const results = document . querySelector ( '#results' )
45
50
remoteInput . src = '/500'
46
51
assert . equal ( results . innerHTML , '' )
47
- let errorHappened = false
48
- remoteInput . addEventListener ( 'error' , function ( ) {
49
- errorHappened = true
52
+ let errorEvent = false
53
+ remoteInput . addEventListener ( 'remote-input- error' , function ( ) {
54
+ errorEvent = true
50
55
} )
51
56
remoteInput . addEventListener ( 'loadend' , function ( ) {
52
- assert . ok ( errorHappened , 'error event happened' )
57
+ assert . ok ( errorEvent , 'error event happened' )
58
+ assert . equal ( results . innerHTML , '' , 'nothing was appended' )
59
+ done ( )
60
+ } )
61
+ input . value = 'test'
62
+ input . focus ( )
63
+ } )
64
+
65
+ it ( 'handles network error' , function ( done ) {
66
+ const remoteInput = document . querySelector ( 'remote-input' )
67
+ const input = document . querySelector ( 'input' )
68
+ const results = document . querySelector ( '#results' )
69
+ remoteInput . src = '/network-error'
70
+ assert . equal ( results . innerHTML , '' )
71
+ remoteInput . addEventListener ( 'error' , async function ( ) {
72
+ await Promise . resolve ( )
53
73
assert . equal ( results . innerHTML , '' , 'nothing was appended' )
74
+ assert . notOk ( remoteInput . hasAttribute ( 'loading' ) , 'loading attribute was removed' )
54
75
done ( )
55
76
} )
56
77
input . value = 'test'
57
78
input . focus ( )
79
+ assert . ok ( remoteInput . hasAttribute ( 'loading' ) , 'loading attribute was added' )
58
80
} )
59
81
60
82
it ( 'repects param attribute' , function ( done ) {
0 commit comments