188c88e8eSopenharmony_civar fs = require('fs') 288c88e8eSopenharmony_civar path = require('path') 388c88e8eSopenharmony_civar chai = require('chai') 488c88e8eSopenharmony_civar sinon = require('sinon') 588c88e8eSopenharmony_civar sinonChai = require('sinon-chai') 688c88e8eSopenharmony_civar expect = chai.expect 788c88e8eSopenharmony_cichai.use(sinonChai) 888c88e8eSopenharmony_ci 988c88e8eSopenharmony_civar md5 = require('md5') 1088c88e8eSopenharmony_civar getBundle = require('../lib/require-bundle').getBundle 1188c88e8eSopenharmony_ci 1288c88e8eSopenharmony_ci 1388c88e8eSopenharmony_cidescribe('bundle of 3rd party js', function () { 1488c88e8eSopenharmony_ci it('one entry file', function () { 1588c88e8eSopenharmony_ci var requiresObj = {} 1688c88e8eSopenharmony_ci var absolutePath = path.join(__dirname, 'bundle/a.js') 1788c88e8eSopenharmony_ci var md5Path = md5(absolutePath) 1888c88e8eSopenharmony_ci requiresObj[md5Path] = absolutePath 1988c88e8eSopenharmony_ci 2088c88e8eSopenharmony_ci var outputBundleCode = getBundle(requiresObj) 2188c88e8eSopenharmony_ci var evalCode = outputBundleCode + '; var aModule = browserifyRequire("' + md5Path + '"); aModule.getA();' 2288c88e8eSopenharmony_ci expect(eval(evalCode)).eql('ab') 2388c88e8eSopenharmony_ci }) 2488c88e8eSopenharmony_ci 2588c88e8eSopenharmony_ci it('multiple entry file', function () { 2688c88e8eSopenharmony_ci var requiresObj = {} 2788c88e8eSopenharmony_ci var absolutePathA = path.join(__dirname, 'bundle/a.js') 2888c88e8eSopenharmony_ci var md5PathA = md5(absolutePathA) 2988c88e8eSopenharmony_ci requiresObj[md5PathA] = absolutePathA 3088c88e8eSopenharmony_ci var absolutePathC = path.join(__dirname, 'bundle/c.js') 3188c88e8eSopenharmony_ci var md5PathC = md5(absolutePathC) 3288c88e8eSopenharmony_ci requiresObj[md5PathC] = absolutePathC 3388c88e8eSopenharmony_ci 3488c88e8eSopenharmony_ci var outputBundleCode = getBundle(requiresObj) 3588c88e8eSopenharmony_ci var evalCodeA = outputBundleCode + '; var aModule = browserifyRequire("' + md5PathA + '"); aModule.getA();' 3688c88e8eSopenharmony_ci var evalCodeC = outputBundleCode + '; var cModule = browserifyRequire("' + md5PathC + '"); cModule.getC();' 3788c88e8eSopenharmony_ci expect(eval(evalCodeA)).eql('ab') 3888c88e8eSopenharmony_ci expect(eval(evalCodeC)).eql('c require') 3988c88e8eSopenharmony_ci }) 4088c88e8eSopenharmony_ci}) 41