fei.wang
10 天以前 ae7b22322555448d95fd56f505bafa325c167a26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
'use strict';
 
var test = require('tape');
var getProto = require('get-proto');
var semver = require('semver');
 
var getAsyncFunction = require('../');
 
test('getAsyncFunction', function (t) {
    var result = getAsyncFunction();
 
    /* eslint-env browser */
    if (typeof window === 'undefined' && typeof process !== 'undefined') {
        t.equal(
            !!result,
            semver.satisfies(process.version, '>= 7.6'),
            'result is present or absent as expected for node ' + process.version
        );
    }
 
    t.test('exists', { skip: !result }, function (st) {
        if (result && getProto) { // TS can't infer `skip`, or that getProto definitely exists if AsyncFunction exists
            st.equal(typeof result, 'function', 'is a function');
            st.equal(getProto(result), Function, 'extends Function');
 
            return result('a', 'return a')(42).then(function (a) {
                st.equal(a, 42, 'returns an async function');
            });
        }
        return st.fail('should never get here');
    });
 
    t.test('does not exist', { skip: !!result }, function (st) {
        st.equal(result, false, 'is false');
 
        st.end();
    });
 
    t.end();
});