mirror of
https://github.com/emn178/js-md5.git
synced 2026-08-13 04:51:44 +08:00
- Modern and lite builds generated from the same source. - support ESM. - Set up GitHub release action / provenance ### Fixed - Fix uploading coverage to coveralls - fix recognize environment is node when use browserfs
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
var expect = require('expect.js');
|
|
var fs = require('fs');
|
|
var vm = require('vm');
|
|
|
|
var EXPECTED_MD5 = '900150983cd24fb0d6963f7d28e17f72';
|
|
var EXPECTED_HMAC = 'd2fe98063f876b03193afb49b4979591';
|
|
|
|
var load = function (file) {
|
|
delete require.cache[require.resolve(file)];
|
|
return require(file);
|
|
};
|
|
|
|
var testCore = function (md5) {
|
|
expect(md5('abc')).to.be(EXPECTED_MD5);
|
|
expect(md5.create().update('a').update('bc').hex()).to.be(EXPECTED_MD5);
|
|
expect(md5.array('abc')).to.have.length(16);
|
|
expect(md5.digest('abc')).to.have.length(16);
|
|
expect(md5.arrayBuffer('abc').byteLength).to.be(16);
|
|
};
|
|
|
|
var loadBrowser = function (file) {
|
|
var context = {
|
|
window: {},
|
|
ArrayBuffer: ArrayBuffer,
|
|
Uint8Array: Uint8Array,
|
|
Uint32Array: Uint32Array
|
|
};
|
|
vm.runInNewContext(fs.readFileSync(file, 'utf8'), context);
|
|
return context.md5 || context.window.md5;
|
|
};
|
|
|
|
var legacy = load('../build/md5.min.js');
|
|
testCore(legacy);
|
|
expect(legacy.base64).to.be.a('function');
|
|
expect(legacy.buffer).to.be.a('function');
|
|
expect(legacy.hmac('key', 'abc')).to.be(EXPECTED_HMAC);
|
|
|
|
var modern = load('../build/md5.modern.min.js');
|
|
testCore(modern);
|
|
expect(modern.base64).to.be.a('function');
|
|
expect(modern.buffer).to.be.a('function');
|
|
expect(modern.hmac('key', 'abc')).to.be(EXPECTED_HMAC);
|
|
|
|
var lite = load('../build/md5-lite.min.js');
|
|
testCore(lite);
|
|
expect(lite.base64).to.be(undefined);
|
|
expect(lite.buffer).to.be(undefined);
|
|
expect(lite.hmac).to.be(undefined);
|
|
|
|
testCore(load('../build/md5.js'));
|
|
testCore(load('../build/md5.modern.js'));
|
|
testCore(load('../build/md5-lite.js'));
|
|
testCore(loadBrowser('build/md5.modern.min.js'));
|
|
var browserLite = loadBrowser('build/md5-lite.min.js');
|
|
testCore(browserLite);
|
|
expect(browserLite.base64).to.be(undefined);
|
|
expect(browserLite.buffer).to.be(undefined);
|
|
expect(browserLite.hmac).to.be(undefined);
|
|
|
|
console.log('Build variants: PASS');
|