allow tests

This commit is contained in:
fyears 2021-11-05 01:21:58 +08:00
parent 358311e8ac
commit 7c4a981434
4 changed files with 36 additions and 2 deletions

View File

@ -6,18 +6,24 @@
"dev": "webpack --mode development --watch",
"build": "webpack --mode production",
"format": "npx prettier --write .",
"clean": "npx rimraf main.js"
"clean": "npx rimraf main.js",
"test": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha -r ts-node/register -r jsdom-global/register 'tests/**/*.ts'"
},
"source": "main.ts",
"keywords": [],
"author": "",
"license": "Apache-2.0",
"devDependencies": {
"@types/node": "^14.14.37",
"@types/chai": "^4.2.22",
"@types/mime-types": "^2.1.1",
"@types/mocha": "^9.0.0",
"@types/node": "^14.14.37",
"chai": "^4.3.4",
"mocha": "^9.1.3",
"prettier": "^2.4.1",
"terser-webpack-plugin": "^5.2.4",
"ts-loader": "^9.2.6",
"ts-node": "^10.4.0",
"tslib": "^2.2.0",
"typescript": "^4.4.4",
"webdav-server": "^2.6.2",

View File

@ -1,6 +1,12 @@
import * as base32 from "hi-base32";
import { bufferToArrayBuffer, arrayBufferToBuffer } from "./misc";
if (window === undefined) {
global.window = {
crypto: require("crypto").webcrypto,
} as any;
}
const DEFAULT_ITER = 10000;
const getKeyIVFromPassword = async (

21
tests/test-encrypt.ts Normal file
View File

@ -0,0 +1,21 @@
const webcrypto = require("crypto").webcrypto;
import { expect } from "chai";
import { encryptStringToBase32 } from "../src/encrypt";
describe("Encryption tests", () => {
beforeEach(function () {
const window = {
crypto: webcrypto,
};
global.window = window as any;
});
it("should encrypt string", async () => {
const k = "dkjdhkfhdkjgsdklxxd";
const password = "hey";
//console.log(window.crypto.getRandomValues)
expect(await encryptStringToBase32(k, password)).to.not.equal(k);
});
});

View File

@ -38,6 +38,7 @@ module.exports = {
// console: require.resolve("console-browserify"),
// constants: require.resolve("constants-browserify"),
// crypto: require.resolve("crypto-browserify"),
crypto: false, // deliberately set to false, since we use webcrypto here
// domain: require.resolve("domain-browser"),
// events: require.resolve("events"),
// http: require.resolve("stream-http"),