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