shell.js (1166B)
1 // GENERATED, DO NOT EDIT 2 // file: compareIterator.js 3 // Copyright (C) 2018 Peter Wong. All rights reserved. 4 // This code is governed by the BSD license found in the LICENSE file. 5 /*--- 6 description: Compare the values of an iterator with an array of expected values 7 defines: [assert.compareIterator] 8 ---*/ 9 10 // Example: 11 // 12 // function* numbers() { 13 // yield 1; 14 // yield 2; 15 // yield 3; 16 // } 17 // 18 // assert.compareIterator(numbers(), [ 19 // v => assert.sameValue(v, 1), 20 // v => assert.sameValue(v, 2), 21 // v => assert.sameValue(v, 3), 22 // ]); 23 // 24 assert.compareIterator = function(iter, validators, message) { 25 message = message || ''; 26 27 var i, result; 28 for (i = 0; i < validators.length; i++) { 29 result = iter.next(); 30 assert(!result.done, 'Expected ' + i + ' values(s). Instead iterator only produced ' + (i - 1) + ' value(s). ' + message); 31 validators[i](result.value); 32 } 33 34 result = iter.next(); 35 assert(result.done, 'Expected only ' + i + ' values(s). Instead iterator produced more. ' + message); 36 assert.sameValue(result.value, undefined, 'Expected value of `undefined` when iterator completes. ' + message); 37 }