Recentemente, tenho escrito vários testes jest para bibliotecas que usam o window.crypto como o getRandomValues() e window.crypto.subtle métodos de gerenciamento de chaves. Um problema com o qual me deparo é que o window.crypto não está disponível e, portanto, preciso usar o shim.

Para usar o window.crypto o senhor precisará do Node 15+. O senhor pode definir o window.crypto importando o crypto e definindo-o no global:

const crypto = require('crypto').webcrypto;

// Shims the crypto property onto global
global.crypto = crypto;

Eu realmente detesto criar funções de simulação para bibliotecas ausentes no Node, pois elas podem levar a positivos falhos nos testes. webcrypto estar disponível!

  • Expressões regulares para o restante de nós

    Mais cedo ou mais tarde, o senhor se deparará com uma expressão regular. Com sua sintaxe enigmática, documentação confusa e enorme curva de aprendizado, a maioria dos desenvolvedores se contenta em copiá-las e colá-las do StackOverflow e torcer para que funcionem. Mas e se o senhor pudesse decodificar as expressões regulares e aproveitar seu poder? Em…

  • Escreva um JavaScript melhor com promessas

    O senhor provavelmente já ouviu a conversa no bebedouro sobre como as promessas são o futuro. Todos os jovens descolados estão usando-as, mas o senhor não entende o que as torna tão especiais. O senhor não pode simplesmente usar um callback? Qual é o problema? Neste artigo, vamos…

  • Redimensionar uma imagem usando o Canvas, arrastar e soltar e a API de arquivos

    Recentemente, pediram-me para criar uma interface de usuário que permitisse a alguém fazer upload de uma imagem para um servidor (entre outras coisas) para que ela pudesse ser usada nos vários sites que minha empresa fornece a seus clientes. Normalmente, essa seria uma tarefa fácil: criar uma…

  • Criar um índice dinâmico usando o MooTools 1.2

    O senhor provavelmente já percebeu que evito escrever artigos muito longos. Aqui estão algumas razões para isso: A maioria dos visitantes do site vem do Google e quer apenas uma resposta direta e rápida para uma pergunta. Percebi que tenho dificuldade em…