Files
js-md5/tests/build-test.js
T
Yi-Cyuan Chen b02f0d93f3 ### Added
- 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
2026-07-20 10:19:42 +08:00

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');