|
import { describe, it, expect } from "vitest"; |
|
import { sha256 } from "./sha256"; |
|
|
|
const smallContent = "hello world"; |
|
const smallContentSHA256 = "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9"; |
|
const bigContent = "O123456789".repeat(100_000); |
|
const bigContentSHA256 = "a3bbce7ee1df7233d85b5f4d60faa3755f93f537804f8b540c72b0739239ddf8"; |
|
const biggerContent = "0123456789".repeat(1_000_000); |
|
const biggerContentSHA256 = "d52fcc26b48dbd4d79b125eb0a29b803ade07613c67ac7c6f2751aefef008486"; |
|
|
|
describe("sha256", () => { |
|
async function calcSHA256(content: string, useWebWorker: boolean) { |
|
const iterator = sha256(new Blob([content]), { useWebWorker }); |
|
let res: IteratorResult<number, string>; |
|
do { |
|
res = await iterator.next(); |
|
} while (!res.done); |
|
return res.value; |
|
} |
|
|
|
it("Calculate hash of a small file", async () => { |
|
const sha = await calcSHA256(smallContent, false); |
|
expect(sha).toBe(smallContentSHA256); |
|
}); |
|
|
|
it("Calculate hash of a big file", async () => { |
|
const sha = await calcSHA256(bigContent, false); |
|
expect(sha).toBe(bigContentSHA256); |
|
}); |
|
|
|
it("Calculate hash of a bigger file", async () => { |
|
const sha = await calcSHA256(biggerContent, false); |
|
expect(sha).toBe(biggerContentSHA256); |
|
}); |
|
|
|
it("Calculate hash of a small file (+ web worker)", async () => { |
|
const sha = await calcSHA256(smallContent, true); |
|
expect(sha).toBe(smallContentSHA256); |
|
}); |
|
|
|
it("Calculate hash of a big file (+ web worker)", async () => { |
|
const sha = await calcSHA256(bigContent, true); |
|
expect(sha).toBe(bigContentSHA256); |
|
}); |
|
|
|
it("Calculate hash of a bigger file (+ web worker)", async () => { |
|
const sha = await calcSHA256(biggerContent, true); |
|
expect(sha).toBe(biggerContentSHA256); |
|
}); |
|
}); |
|
|