fix(core): improve error msg for invalid KeyValueDiffer.diff arg (#15489)

Closes #15402
This commit is contained in:
Dzmitry Shylovich 2017-03-28 19:37:40 +03:00 committed by Victor Berchet
parent a5c972aa8b
commit b7fa5dec21
4 changed files with 6 additions and 6 deletions

View File

@ -157,7 +157,8 @@ export class DefaultIterableDiffer<V> implements IterableDiffer<V>, IterableChan
diff(collection: NgIterable<V>): DefaultIterableDiffer<V> { diff(collection: NgIterable<V>): DefaultIterableDiffer<V> {
if (collection == null) collection = []; if (collection == null) collection = [];
if (!isListLikeIterable(collection)) { if (!isListLikeIterable(collection)) {
throw new Error(`Error trying to diff '${collection}'`); throw new Error(
`Error trying to diff '${stringify(collection)}'. Only arrays and iterables are allowed`);
} }
if (this.check(collection)) { if (this.check(collection)) {

View File

@ -9,7 +9,6 @@
import {looseIdentical, stringify} from '../../util'; import {looseIdentical, stringify} from '../../util';
import {isJsObject} from '../change_detection_util'; import {isJsObject} from '../change_detection_util';
import {ChangeDetectorRef} from '../change_detector_ref'; import {ChangeDetectorRef} from '../change_detector_ref';
import {KeyValueChangeRecord, KeyValueChanges, KeyValueDiffer, KeyValueDifferFactory} from './keyvalue_differs'; import {KeyValueChangeRecord, KeyValueChanges, KeyValueDiffer, KeyValueDifferFactory} from './keyvalue_differs';
@ -82,7 +81,8 @@ export class DefaultKeyValueDiffer<K, V> implements KeyValueDiffer<K, V>, KeyVal
if (!map) { if (!map) {
map = new Map(); map = new Map();
} else if (!(map instanceof Map || isJsObject(map))) { } else if (!(map instanceof Map || isJsObject(map))) {
throw new Error(`Error trying to diff '${map}'`); throw new Error(
`Error trying to diff '${stringify(map)}'. Only maps and objects are allowed`);
} }
return this.check(map) ? this : null; return this.check(map) ? this : null;

View File

@ -472,7 +472,7 @@ export function main() {
}); });
it('should throw when given an invalid collection', () => { it('should throw when given an invalid collection', () => {
expect(() => differ.diff('invalid')).toThrowError('Error trying to diff \'invalid\''); expect(() => differ.diff('invalid')).toThrowError(/Error trying to diff 'invalid'/);
}); });
}); });
}); });

View File

@ -220,8 +220,7 @@ export function main() {
}); });
it('should throw when given an invalid collection', () => { it('should throw when given an invalid collection', () => {
expect(() => differ.diff(<any>'invalid')) expect(() => differ.diff(<any>'invalid')).toThrowError(/Error trying to diff 'invalid'/);
.toThrowError('Error trying to diff \'invalid\'');
}); });
}); });
}); });