Я пытаюсь выполнить соглашение Diffie Hellman Key:
Test.test('testDh', (t) => {
const k1 = createSelfKey();
const k2 = createSelfKey(k1.dh.getPrime(), k1.dh.getGenerator());
const k1Secret = k1.dh.computeSecret(k2.keys);
const k2Secret = k2.dh.computeSecret(k1.keys);
t.equal(k1Secret.toString('hex'), k2Secret.toString('hex'));
t.end();
});
Используя следующую функцию:
const createSelfKey = (p, g) => {
let returnVal = null;
if (_.isNumber(p) && _.isNumber(g)) {
returnVal = { dh: crypto.createDiffieHellman(p, g) };
} else {
returnVal = { dh: crypto.createDiffieHellman(2048) };
}
returnVal.keys = returnVal.dh.generateKeys();
return returnVal;
};
Но почему-то время теста истекло. Вы знаете, как я могу поднять лимит тайм-аута?
test/keygenTests.js ................................... 1/2 31s
not ok timeout!
expired: test/keygenTests.js
test/participantTest.js ............................... 1/1
total ................................................. 2/3
2 passing (31s)
1 failing
npm ERR! Test failed. See above for more details.





Вы можете сделать тесты без тайм-аута, изменив свой package.json скрипт следующим образом:
"scripts": {
//Other scripts do there
"test": "tap --no-timeout test/*.js",
},
Как видите, вы можете передать параметр --no-timeout, чтобы ваш тест вообще не выходил из строя, что полезно при тестировании кода с тяжелыми вычислениями.