12345678910111213141516171819202122232425262728293031323334 |
- // Copyright (C) 2018 Peter Wong. All rights reserved.
- // This code is governed by the BSD license found in the LICENSE file.
- /*---
- description: Compare the values of an iterator with an array of expected values
- ---*/
- // Example:
- //
- // function* numbers() {
- // yield 1;
- // yield 2;
- // yield 3;
- // }
- //
- // compareIterator(numbers(), [
- // v => assert.sameValue(v, 1),
- // v => assert.sameValue(v, 2),
- // v => assert.sameValue(v, 3),
- // ]);
- //
- assert.compareIterator = function(iter, validators, message) {
- message = message || '';
- var i, result;
- for (i = 0; i < validators.length; i++) {
- result = iter.next();
- assert(!result.done, 'Expected ' + i + ' values(s). Instead iterator only produced ' + (i - 1) + ' value(s). ' + message);
- validators[i](result.value);
- }
- result = iter.next();
- assert(result.done, 'Expected only ' + i + ' values(s). Instead iterator produced more. ' + message);
- assert.sameValue(result.value, undefined, 'Expected value of `undefined` when iterator completes. ' + message);
- }
|