[crypto] fix tests

parent 56b10f97
//import crypto from 'crypto';
import { subtle } from '../../src/external-deps/crypto.js';
async function getSHA256Hash(input) {
const textAsBuffer = new TextEncoder().encode(input);
const hashBuffer = await globalThis.crypto.subtle.digest("SHA-256", textAsBuffer);
const hashBuffer = await subtle.digest("SHA-256", textAsBuffer);
const hashArray = Array.from(new Uint8Array(hashBuffer));
const hash = hashArray
.map((item) => item.toString(16).padStart(2, "0"))
......
module Gargantext.Utils.Crypto where
import Control.Promise (Promise, toAffE)
import Data.Array as Array
import Data.Set (Set)
import Data.Set as Set
import Data.Array as Array
import Data.String (joinWith)
import Effect (Effect)
import Effect.Aff (Aff)
......@@ -39,7 +40,7 @@ instance IsHashable (Array String) where
hash = hash <<< concat
where
concat :: Array Hash -> String
concat = Array.foldl (<>) ""
concat = joinWith "" <<< Array.sort
instance IsHashable (Set String) where
......
// https://siteultra.com/blog/using-subtle-in-a-javascript-module-from-both-the-browser-and-nodejs
let subtle = undefined;
if (typeof window !== 'undefined' && window.crypto && window.crypto.subtle) {
subtle = window.crypto.subtle;
} else {
// Import 'crypto' module in Node.js environment
subtle = require('crypto').subtle;
}
exports.subtle = subtle;
......@@ -124,7 +124,7 @@ spec =
it "Hash List with backend works" do
let list = ["a","b"]
let hashed = "ab19ec537f09499b26f0f62eed7aefad46ab9f498e06a7328ce8e8ef90da6d86"
let hashed = "fb8e20fc2e4c3f248c60c39bd652f3c1347298bb977b8b4d5903b85055620603"
-- ^ hash from backend with text above
h <- Crypto.hash list
h`shouldEqual` hashed
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment