export function id(value) {
    return value;
};

export function iterateeDelay(resolver = id) {
    return (value, key, collection) => {
        return new Promise((resolve, reject) => {
            setTimeout(
                () => {
                    try {
                        resolve(resolver(value));
                    } catch (e) {
                        reject(e);
                    }
                },
                value * 25
            );
        });
    };
};

export function iterateeDelayWithOrder(order, resolver = id) {
    return (value, key, collection) => {
        return new Promise((resolve, reject) => {
            setTimeout(
                () => {
                    order.push(value);
                    try {
                        resolve(resolver(value));
                    } catch (e) {
                        reject(e);
                    }
                },
                value * 25
            );
        });
    };
};

export function iterateePromise(resolver = id) {
    return (value, key, collection) => {
        return new Promise((resolve, reject) => {
            try {
                resolve(resolver(value));
            } catch (e) {
                reject(e);
            }
        });
    };
};

export function iterateePromiseWithOrder(order, resolver = id) {
    return (value, key, collection) => {
        return new Promise(resolve => {
            order.push(value);
            try {
                resolve(resolver(value));
            } catch (e) {
                reject(e);
            }
        });
    };
};

export function iterateeNative(resolver = id) {
    return (value, key, collection) => {
        return resolver(value);
    };
};

export function iterateeNativeWithOrder(order, resolver = id) {
    return (value, key, collection) => {
        order.push(value);
        return resolver(value);
    };
};

@@ -293,36 +293,53 @@
 e(resolver(value
+, key, collection
 ));%0A
-
                 
@@ -802,32 +802,49 @@
 e(resolver(value
+, key, collection
 ));%0A            
@@ -1194,32 +1194,49 @@
 e(resolver(value
+, key, collection
 ));%0A            
@@ -1546,16 +1546,33 @@
 er(value
+, key, collection
 ));%0A    
@@ -1767,32 +1767,49 @@
 n resolver(value
+, key, collection
 );%0A    %7D;%0A%7D;%0A%0Aex
@@ -1930,32 +1930,32 @@
 er.push(value);%0A
-
         return r
@@ -1963,24 +1963,41 @@
 solver(value
+, key, collection
 );%0A    %7D;%0A%7D;

Update test helper to pass the value, index|key and collection to the resolver