I’ve been writing a bunch of jest tests recently for libraries that use the underlying
window.crypto methods like
window.crypto.subtle key management methods. One problem I run into is that the
window.crypto object isn’t available, so I need to shim it.
To use the
window.crypto methods, you will need Node 15+. You can set the
window.crypto by importing the
crypto package and setting it on the global:
const crypto = require('crypto').webcrypto; // Shims the crypto property onto global global.crypto = crypto;
I really loathe creating mock functions for missing libraries in Node because they can lead to faulty positives on tests; I really appreciate
webcrypto being available!