@@ -151,4 +151,47 @@ describe("LazyTest", function () {
151151 assert . strictEqual ( user . lastName , "Oren" ) ;
152152 }
153153 } ) ;
154+
155+ it ( "doesn't lazy load already loaded values" , async ( ) => {
156+ {
157+ const session = store . openSession ( ) ;
158+
159+ const user = new User ( ) ;
160+ user . lastName = "Oren" ;
161+ await session . store ( user , "users/1" ) ;
162+
163+ const user2 = new User ( ) ;
164+ user2 . lastName = "Marcin" ;
165+ await session . store ( user2 , "users/2" ) ;
166+
167+ const user3 = new User ( ) ;
168+ user3 . lastName = "John" ;
169+ await session . store ( user3 , "users/3" ) ;
170+
171+ await session . saveChanges ( ) ;
172+ }
173+
174+ {
175+ const session = store . openSession ( ) ;
176+
177+ let lazyLoad = session . advanced . lazily . load ( [ "users/2" , "users/3" ] , User ) ;
178+ session . advanced . lazily . load ( [ "users/1" , "users/3" ] , User ) ;
179+
180+ await session . load ( "users/2" , User ) ;
181+ await session . load ( "users/3" , User ) ;
182+
183+ await session . advanced . eagerly . executeAllPendingLazyOperations ( ) ;
184+
185+ assert . ok ( session . advanced . isLoaded ( "users/1" ) ) ;
186+
187+ const users = await lazyLoad . getValue ( ) ;
188+ assert . strictEqual ( Object . keys ( users ) . length , 2 ) ;
189+
190+ const oldRequestCount = session . advanced . numberOfRequests ;
191+ lazyLoad = session . advanced . lazily . load ( [ "users/3" ] , User ) ;
192+ await session . advanced . eagerly . executeAllPendingLazyOperations ( ) ;
193+
194+ assert . strictEqual ( session . advanced . numberOfRequests , oldRequestCount ) ;
195+ }
196+ } ) ;
154197} ) ;
0 commit comments