@@ -2,7 +2,7 @@ import React from 'react';
22import { render , act } from '@testing-library/react' ;
33
44/** Mocks and test utils */
5- import { mockSdk , Event , assertNoListeners , clientListenerCount } from './testUtils/mockSplitSdk' ;
5+ import { mockSdk , Event } from './testUtils/mockSplitSdk' ;
66jest . mock ( '@splitsoftware/splitio/client' , ( ) => {
77 return { SplitFactory : mockSdk ( ) } ;
88} ) ;
@@ -20,30 +20,22 @@ import { testAttributesBinding, TestComponentProps } from './testUtils/utils';
2020describe ( 'SplitClient' , ( ) => {
2121
2222 test ( 'passes no-ready props to the child if client is not ready.' , ( ) => {
23- let clientToCheck ;
24-
2523 render (
2624 < SplitFactory config = { sdkBrowser } >
2725 < SplitClient splitKey = 'user1' >
28- { ( { client , isReady, isReadyFromCache, hasTimedout, isTimedout, isDestroyed, lastUpdate } : ISplitClientChildProps ) => {
26+ { ( { isReady, isReadyFromCache, hasTimedout, isTimedout, isDestroyed, lastUpdate } : ISplitClientChildProps ) => {
2927 expect ( isReady ) . toBe ( false ) ;
3028 expect ( isReadyFromCache ) . toBe ( false ) ;
3129 expect ( hasTimedout ) . toBe ( false ) ;
3230 expect ( isTimedout ) . toBe ( false ) ;
3331 expect ( isDestroyed ) . toBe ( false ) ;
3432 expect ( lastUpdate ) . toBe ( 0 ) ;
3533
36- clientToCheck = client ;
3734 return null ;
3835 } }
3936 </ SplitClient >
4037 </ SplitFactory >
4138 ) ;
42-
43- // After component mount, listeners should be attached for all ONCE events when none of them has been emitted yet
44- expect ( clientListenerCount ( clientToCheck , Event . SDK_READY ) ) . toBe ( 1 ) ;
45- expect ( clientListenerCount ( clientToCheck , Event . SDK_READY_FROM_CACHE ) ) . toBe ( 1 ) ;
46- expect ( clientListenerCount ( clientToCheck , Event . SDK_READY_TIMED_OUT ) ) . toBe ( 1 ) ;
4739 } ) ;
4840
4941 test ( 'passes ready props to the child if client is ready.' , async ( ) => {
@@ -52,7 +44,6 @@ describe('SplitClient', () => {
5244 ( outerFactory as any ) . client ( ) . __emitter__ . emit ( Event . SDK_READY ) ;
5345 ( outerFactory . manager ( ) . names as jest . Mock ) . mockReturnValue ( [ 'split1' ] ) ;
5446 await outerFactory . client ( ) . ready ( ) ;
55- let clientToCheck ;
5647
5748 render (
5849 < SplitFactory factory = { outerFactory } >
@@ -66,17 +57,11 @@ describe('SplitClient', () => {
6657 expect ( isDestroyed ) . toBe ( false ) ;
6758 expect ( lastUpdate ) . toBe ( 0 ) ;
6859
69- clientToCheck = client ;
7060 return null ;
7161 } }
7262 </ SplitClient >
7363 </ SplitFactory >
7464 ) ;
75-
76- // After component mount, listeners should not be attached for those ONCE events that has been already emitted
77- expect ( clientListenerCount ( clientToCheck , Event . SDK_READY ) ) . toBe ( 0 ) ;
78- expect ( clientListenerCount ( clientToCheck , Event . SDK_READY_FROM_CACHE ) ) . toBe ( 0 ) ;
79- expect ( clientListenerCount ( clientToCheck , Event . SDK_READY_TIMED_OUT ) ) . toBe ( 0 ) ; // this event was not emitted, but will not anyway, since SDK_READY has.
8065 } ) ;
8166
8267 test ( 'rerender child on SDK_READY_TIMEDOUT, SDK_READY_FROM_CACHE, SDK_READY and SDK_UPDATE events.' , async ( ) => {
@@ -89,7 +74,7 @@ describe('SplitClient', () => {
8974 let renderTimes = 0 ;
9075 let previousLastUpdate = - 1 ;
9176
92- const wrapper = render (
77+ render (
9378 < SplitFactory factory = { outerFactory } >
9479 < SplitClient splitKey = 'user2' updateOnSdkTimedout = { true } updateOnSdkUpdate = { true } >
9580 { ( { client, isReady, isReadyFromCache, hasTimedout, isTimedout, lastUpdate } : ISplitClientChildProps ) => {
@@ -114,8 +99,7 @@ describe('SplitClient', () => {
11499 fail ( 'Child must not be rerendered' ) ;
115100 }
116101 expect ( client ) . toBe ( outerFactory . client ( 'user2' ) ) ;
117- expect ( lastUpdate ) . toBeGreaterThanOrEqual ( previousLastUpdate ) ;
118- expect ( lastUpdate ) . toBeLessThanOrEqual ( Date . now ( ) ) ;
102+ expect ( lastUpdate ) . toBeGreaterThan ( previousLastUpdate ) ;
119103 renderTimes ++ ;
120104 previousLastUpdate = lastUpdate ;
121105 return null ;
@@ -130,10 +114,6 @@ describe('SplitClient', () => {
130114 act ( ( ) => ( outerFactory as any ) . client ( 'user2' ) . __emitter__ . emit ( Event . SDK_UPDATE ) ) ;
131115
132116 expect ( renderTimes ) . toBe ( 5 ) ;
133-
134- // check that outerFactory's clients have no event listeners
135- wrapper . unmount ( ) ;
136- assertNoListeners ( outerFactory ) ;
137117 } ) ;
138118
139119 test ( 'rerender child on SDK_READY_TIMED_OUT and SDK_UPDATE events, but not on SDK_READY.' , async ( ) => {
@@ -146,7 +126,7 @@ describe('SplitClient', () => {
146126 let renderTimes = 0 ;
147127 let previousLastUpdate = - 1 ;
148128
149- const wrapper = render (
129+ render (
150130 < SplitFactory factory = { outerFactory } >
151131 < SplitClient splitKey = 'user2' updateOnSdkReady = { false } updateOnSdkTimedout = { true } updateOnSdkUpdate = { true } >
152132 { ( { client, isReady, isReadyFromCache, hasTimedout, isTimedout, lastUpdate } : ISplitClientChildProps ) => {
@@ -165,8 +145,7 @@ describe('SplitClient', () => {
165145 fail ( 'Child must not be rerendered' ) ;
166146 }
167147 expect ( client ) . toBe ( outerFactory . client ( 'user2' ) ) ;
168- expect ( lastUpdate ) . toBeGreaterThanOrEqual ( previousLastUpdate ) ;
169- expect ( lastUpdate ) . toBeLessThanOrEqual ( Date . now ( ) ) ;
148+ expect ( lastUpdate ) . toBeGreaterThan ( previousLastUpdate ) ;
170149 renderTimes ++ ;
171150 previousLastUpdate = lastUpdate ;
172151 return null ;
@@ -179,10 +158,6 @@ describe('SplitClient', () => {
179158 act ( ( ) => ( outerFactory as any ) . client ( 'user2' ) . __emitter__ . emit ( Event . SDK_READY ) ) ;
180159 act ( ( ) => ( outerFactory as any ) . client ( 'user2' ) . __emitter__ . emit ( Event . SDK_UPDATE ) ) ;
181160 expect ( renderTimes ) . toBe ( 3 ) ;
182-
183- // check that outerFactory's clients have no event listeners
184- wrapper . unmount ( ) ;
185- assertNoListeners ( outerFactory ) ;
186161 } ) ;
187162
188163 test ( 'rerender child only on SDK_READY event, as default behaviour.' , async ( ) => {
@@ -212,7 +187,6 @@ describe('SplitClient', () => {
212187 }
213188 expect ( client ) . toBe ( outerFactory . client ( 'user2' ) ) ;
214189 expect ( lastUpdate ) . toBeGreaterThan ( previousLastUpdate ) ;
215- expect ( lastUpdate ) . toBeLessThanOrEqual ( Date . now ( ) ) ;
216190 renderTimes ++ ;
217191 previousLastUpdate = lastUpdate ;
218192 return null ;
@@ -299,10 +273,6 @@ describe('SplitClient', () => {
299273 setTimeout ( ( ) => {
300274 expect ( renderTimes ) . toBe ( 6 ) ;
301275
302- // check that outerFactory's clients have no event listeners
303- // eslint-disable-next-line no-use-before-define
304- wrapper . unmount ( ) ;
305- assertNoListeners ( outerFactory ) ;
306276 done ( ) ;
307277 } ) ;
308278 } ) ;
@@ -359,7 +329,7 @@ describe('SplitClient', () => {
359329 }
360330 }
361331
362- const wrapper = render (
332+ render (
363333 < SplitFactory factory = { outerFactory } >
364334 < InnerComponent />
365335 </ SplitFactory >
0 commit comments