1/* 2* Copyright (c) 2022 Shenzhen Kaihong Digital Industry Development Co., Ltd. 3* Licensed under the Apache License, Version 2.0 (the "License"); 4* you may not use this file except in compliance with the License. 5* You may obtain a copy of the License at 6* 7* http://www.apache.org/licenses/LICENSE-2.0 8* 9* Unless required by applicable law or agreed to in writing, software 10* distributed under the License is distributed on an "AS IS" BASIS, 11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12* See the License for the specific language governing permissions and 13* limitations under the License. 14*/ 15const test = require("./out/build/Release/napitest") 16var assert = require("assert"); 17 18describe('number first cases', function () { 19 // 测试:function fun1(v: number): number; 20 it('test fun1', function () { 21 let ret = test.fun1(18); 22 assert.deepStrictEqual(ret, 0); 23 }); 24 25 // 测试:function fun2(v1: number, v2: number[]): number[]; 26 it('test fun2', function () { 27 let ret = test.fun2(18, [18, 20]); 28 assert.deepStrictEqual(ret, []); 29 }); 30 31 // 测试:function fun3(v1: Array<number>, v2: number): Array<number>; 32 it('test fun3', function () { 33 let ret = test.fun3([18, 20], 20); 34 assert.deepStrictEqual(ret, []); 35 }); 36 37 // 测试:function fun4(v: { [key: string]: number }): number; 38 it('test fun4', function () { 39 let ret = test.fun4({ 'isTrue': 18, 'isExit': 20 }); 40 assert.deepStrictEqual(ret, 0); 41 }); 42 43 // 测试:function fun5(v1: Map<string, number>, v2: number): number; 44 it('test fun5', function () { 45 let ret = test.fun5({ 'isTrue': 18, 'isExit': 20 }, 18); 46 assert.deepStrictEqual(ret, 0); 47 }); 48 49 function asynFun1(err, ret) { 50 assert.strictEqual(err.code, 0) 51 assert.deepStrictEqual(ret, 0) 52 } 53 54 function def1(ret) { 55 assert.deepStrictEqual(ret, 0); 56 } 57 58 // 测试:function fun6(v1: number, callback: AsyncCallback<number>): void; 59 it('test fun6_callback', function () { 60 test.fun6(15, asynFun1); 61 test.fun6(15).then(def1); 62 }); 63 64 // 测试:function fun6(v1: number): Promise<number>; 65 it('test fun6_promise', function () { 66 let promiseObj = test.fun6(15); 67 promiseObj.then(ret => { def1(ret) }); 68 }); 69}); 70 71describe('number second cases', function () { 72 function asynFun2(err, ret) { 73 assert.deepStrictEqual(err.code, 0) 74 assert.deepStrictEqual(ret, []) 75 } 76 77 function def2(ret) { 78 assert.deepStrictEqual(ret, []); 79 } 80 81 // 测试:function fun7(v: number, v1: AsyncCallback<Array<number>>): void; 82 it('test fun7_callback', function () { 83 test.fun7(15, asynFun2); 84 test.fun7(15).then(def2); 85 }); 86 87 // 测试:function fun7(v: number): Promise<Array<number>>; 88 it('test fun7_promise', function () { 89 let promiseObj = test.fun7(15); 90 promiseObj.then(ret => { def2(ret) }); 91 }); 92 93 function cb1(ret) { 94 assert.deepStrictEqual(ret, 0) 95 } 96 97 // 测试:function fun9(v1: number, callback: Callback<number>): void; 98 it('test fun9', function () { 99 test.fun9(15, cb1); 100 }); 101 102 // 测试:function fun10(v1: Test): Test; 103 it('test fun10', function () { 104 let ret = test.fun10({ age: 18, height: [20, 20], width: [18, 18] }); 105 assert.deepStrictEqual(typeof ret, 'object'); 106 assert.strictEqual(ret.age,0) 107 assert.deepStrictEqual(ret.height,[]) 108 assert.deepStrictEqual(ret.width,[]) 109 }); 110});