@@ -181,6 +181,48 @@ describe('Primary API', () => {
181181 expect ( loadCalls ) . to . deep . equal ( [ [ 'B' ] ] ) ;
182182 } ) ;
183183
184+ it ( 'does not prime keys that already exist' , async ( ) => {
185+ var [ identityLoader , loadCalls ] = idLoader ( ) ;
186+
187+ identityLoader . prime ( 'A' , 'X' ) ;
188+
189+ var a1 = await identityLoader . load ( 'A' ) ;
190+ var b1 = await identityLoader . load ( 'B' ) ;
191+ expect ( a1 ) . to . equal ( 'X' ) ;
192+ expect ( b1 ) . to . equal ( 'B' ) ;
193+
194+ identityLoader . prime ( 'A' , 'Y' ) ;
195+ identityLoader . prime ( 'B' , 'Y' ) ;
196+
197+ var a2 = await identityLoader . load ( 'A' ) ;
198+ var b2 = await identityLoader . load ( 'B' ) ;
199+ expect ( a2 ) . to . equal ( 'X' ) ;
200+ expect ( b2 ) . to . equal ( 'B' ) ;
201+
202+ expect ( loadCalls ) . to . deep . equal ( [ [ 'B' ] ] ) ;
203+ } ) ;
204+
205+ it ( 'allows forcefully priming the cache' , async ( ) => {
206+ var [ identityLoader , loadCalls ] = idLoader ( ) ;
207+
208+ identityLoader . prime ( 'A' , 'X' ) ;
209+
210+ var a1 = await identityLoader . load ( 'A' ) ;
211+ var b1 = await identityLoader . load ( 'B' ) ;
212+ expect ( a1 ) . to . equal ( 'X' ) ;
213+ expect ( b1 ) . to . equal ( 'B' ) ;
214+
215+ identityLoader . clear ( 'A' ) . prime ( 'A' , 'Y' ) ;
216+ identityLoader . clear ( 'B' ) . prime ( 'B' , 'Y' ) ;
217+
218+ var a2 = await identityLoader . load ( 'A' ) ;
219+ var b2 = await identityLoader . load ( 'B' ) ;
220+ expect ( a2 ) . to . equal ( 'Y' ) ;
221+ expect ( b2 ) . to . equal ( 'Y' ) ;
222+
223+ expect ( loadCalls ) . to . deep . equal ( [ [ 'B' ] ] ) ;
224+ } ) ;
225+
184226} ) ;
185227
186228describe ( 'Represents Errors' , ( ) => {
0 commit comments