| var fs = require('fs'); |
| var path =require('path'); |
| |
| var chai = require('chai'); |
| var sinon = require('sinon'); |
| var sinonChai = require('sinon-chai'); |
| var expect = chai.expect; |
| chai.use(sinonChai); |
| |
| require('./lib/jsfm'); |
| var createInstance = global.createInstance; |
| var getRoot = global.getRoot; |
| |
| describe('loader', () => { |
| |
| before(function() { |
| global.callNative = sinon.spy(); |
| }); |
| |
| after(function() { |
| global.callNative = undefined; |
| }); |
| |
| it('simple case', function() { |
| var name = 'a.js'; |
| |
| var actualCodePath = path.resolve(__dirname, 'actual', name); |
| var actualCodeContent = fs.readFileSync(actualCodePath); |
| |
| var expectCodePath = path.resolve(__dirname, 'expect', name); |
| var expectCodeContent = fs.readFileSync(expectCodePath); |
| |
| |
| var actualResult = createInstance('actual/' + name, actualCodeContent); |
| var actualJson = getRoot('actual/' + name); |
| |
| var expectResult = createInstance('expect/' + name, expectCodeContent); |
| var expectJson = getRoot('expect/' + name); |
| |
| expect(actualJson).eql(expectJson); |
| }); |
| |
| it('element tag, 3rd-party js, implicit component', function() { |
| var name = 'b.js'; |
| |
| var actualCodePath = path.resolve(__dirname, 'actual', name); |
| var actualCodeContent = fs.readFileSync(actualCodePath); |
| |
| var expectCodePath = path.resolve(__dirname, 'expect', name); |
| var expectCodeContent = fs.readFileSync(expectCodePath); |
| |
| |
| var actualResult = createInstance('actual/' + name, actualCodeContent); |
| var actualJson = getRoot('actual/' + name); |
| |
| var expectResult = createInstance('expect/' + name, expectCodeContent); |
| var expectJson = getRoot('expect/' + name); |
| |
| expect(actualJson).eql(expectJson); |
| }); |
| |
| it('with config & data case', function() { |
| var name = 'z.js'; |
| |
| var actualCodePath = path.resolve(__dirname, 'actual', name); |
| var actualCodeContent = fs.readFileSync(actualCodePath); |
| |
| var expectCodePath = path.resolve(__dirname, 'expect', name); |
| var expectCodeContent = fs.readFileSync(expectCodePath); |
| |
| |
| var actualResult = createInstance('actual/' + name, actualCodeContent); |
| var actualJson = getRoot('actual/' + name); |
| |
| var expectResult = createInstance('expect/' + name, expectCodeContent); |
| var expectJson = getRoot('expect/' + name); |
| |
| expect(actualJson).eql(expectJson); |
| }); |
| }) |