@@ -55,6 +55,22 @@ suite("CachedAsyncIterable", function() {
5555 } ) ;
5656 } ) ;
5757
58+ suite ( "from()" , function ( ) {
59+ test ( "pass any iterable" , async function ( ) {
60+ const iterable = CachedAsyncIterable . from ( [ 1 , 2 ] ) ;
61+ // No cached elements yet.
62+ assert . deepEqual ( [ ...iterable ] , [ ] ) ;
63+ // Deplete the original iterable.
64+ assert . deepEqual ( await toArray ( iterable ) , [ 1 , 2 ] ) ;
65+ } ) ;
66+
67+ test ( "pass another CachedAsyncIterable" , function ( ) {
68+ const iterable1 = new CachedAsyncIterable ( [ 1 , 2 ] ) ;
69+ const iterable2 = CachedAsyncIterable . from ( iterable1 ) ;
70+ assert . equal ( iterable1 , iterable2 ) ;
71+ } ) ;
72+ } ) ;
73+
5874 suite ( "sync iteration over cached elements" , function ( ) {
5975 let o1 , o2 ;
6076
@@ -170,33 +186,33 @@ suite("CachedAsyncIterable", function() {
170186
171187 test ( "consumes an element into the cache" , async function ( ) {
172188 const iterable = new CachedAsyncIterable ( generateMessages ( ) ) ;
173- assert . equal ( iterable . seen . length , 0 ) ;
189+ assert . equal ( iterable . length , 0 ) ;
174190 await iterable . touchNext ( ) ;
175- assert . equal ( iterable . seen . length , 1 ) ;
191+ assert . equal ( iterable . length , 1 ) ;
176192 } ) ;
177193
178194 test ( "allows to consume multiple elements into the cache" , async function ( ) {
179195 const iterable = new CachedAsyncIterable ( generateMessages ( ) ) ;
180196 await iterable . touchNext ( ) ;
181197 await iterable . touchNext ( ) ;
182- assert . equal ( iterable . seen . length , 2 ) ;
198+ assert . equal ( iterable . length , 2 ) ;
183199 } ) ;
184200
185201 test ( "allows to consume multiple elements at once" , async function ( ) {
186202 const iterable = new CachedAsyncIterable ( generateMessages ( ) ) ;
187203 await iterable . touchNext ( 2 ) ;
188- assert . equal ( iterable . seen . length , 2 ) ;
204+ assert . equal ( iterable . length , 2 ) ;
189205 } ) ;
190206
191207 test ( "stops at the last element" , async function ( ) {
192208 const iterable = new CachedAsyncIterable ( generateMessages ( ) ) ;
193209 await iterable . touchNext ( ) ;
194210 await iterable . touchNext ( ) ;
195211 await iterable . touchNext ( ) ;
196- assert . equal ( iterable . seen . length , 3 ) ;
212+ assert . equal ( iterable . length , 3 ) ;
197213
198214 await iterable . touchNext ( ) ;
199- assert . equal ( iterable . seen . length , 3 ) ;
215+ assert . equal ( iterable . length , 3 ) ;
200216 } ) ;
201217
202218 test ( "works on an empty iterable" , async function ( ) {
@@ -207,7 +223,7 @@ suite("CachedAsyncIterable", function() {
207223 await iterable . touchNext ( ) ;
208224 await iterable . touchNext ( ) ;
209225 await iterable . touchNext ( ) ;
210- assert . equal ( iterable . seen . length , 1 ) ;
226+ assert . equal ( iterable . length , 1 ) ;
211227 } ) ;
212228
213229 test ( "iteration for such cache works" , async function ( ) {
0 commit comments