@@ -142,6 +142,60 @@ it('calls flag-detail-changed inspector for individial flag changes on patch', a
142142 } ) ;
143143} ) ;
144144
145+ it ( 'calls flag-detail-changed inspector when a flag is deleted' , async ( ) => {
146+ const eventQueue = new AsyncQueue ( ) ;
147+ const flagDetailChangedInspector : LDInspection = {
148+ type : 'flag-detail-changed' ,
149+ name : 'test flag detail changed inspector' ,
150+ method : jest . fn ( ( ) => eventQueue . add ( { } ) ) ,
151+ } ;
152+ const platform = createBasicPlatform ( ) ;
153+ const factory = makeTestDataManagerFactory ( 'sdk-key' , platform ) ;
154+ const client = new LDClientImpl (
155+ 'sdk-key' ,
156+ AutoEnvAttributes . Disabled ,
157+ platform ,
158+ {
159+ sendEvents : false ,
160+ inspectors : [ flagDetailChangedInspector ] ,
161+ logger : {
162+ debug : jest . fn ( ) ,
163+ info : jest . fn ( ) ,
164+ warn : jest . fn ( ) ,
165+ error : jest . fn ( ) ,
166+ } ,
167+ } ,
168+ factory ,
169+ ) ;
170+ let mockEventSource : MockEventSource ;
171+
172+ const putResponse = clone < Flags > ( mockResponseJson ) ;
173+ const putEvents = [ { data : JSON . stringify ( putResponse ) } ] ;
174+ const deleteResponse = {
175+ key : 'dev-test-flag' ,
176+ version : putResponse [ 'dev-test-flag' ] . version + 1 ,
177+ } ;
178+ const deleteEvents = [ { data : JSON . stringify ( deleteResponse ) } ] ;
179+
180+ platform . requests . createEventSource . mockImplementation (
181+ ( streamUri : string = '' , options : any = { } ) => {
182+ mockEventSource = new MockEventSource ( streamUri , options ) ;
183+ mockEventSource . simulateEvents ( 'put' , putEvents ) ;
184+ mockEventSource . simulateEvents ( 'delete' , deleteEvents ) ;
185+ return mockEventSource ;
186+ } ,
187+ ) ;
188+
189+ await client . identify ( { key : 'user-key' } , { waitForNetworkResults : true } ) ;
190+
191+ await eventQueue . take ( ) ;
192+ expect ( flagDetailChangedInspector . method ) . toHaveBeenCalledWith ( 'dev-test-flag' , {
193+ reason : null ,
194+ value : undefined ,
195+ variationIndex : null ,
196+ } ) ;
197+ } ) ;
198+
145199it ( 'calls flag-details-changed inspectors when all flag values change' , async ( ) => {
146200 const flagDetailsChangedInspector : LDInspection = {
147201 type : 'flag-details-changed' ,
0 commit comments