const $ = require('../index'); const fs = require('fs'); const config = require('./config'); const CODE = ` function test(){ let a = 1; let b = 2; } test(); ` const HTML_CODE = `
test
` const ERROR_CODE = `function(){ console.log('error')`; const PATH = './test.js'; const HTML_PATH = './test.html'; const ERROR_CODE_PATH = './error.js'; beforeEach(() => { fs.writeFileSync(PATH, CODE); fs.writeFileSync(HTML_PATH, HTML_CODE); fs.writeFileSync(ERROR_CODE_PATH, ERROR_CODE); }); afterEach(() => { fs.unlinkSync(PATH); fs.unlinkSync(HTML_PATH); fs.unlinkSync(ERROR_CODE_PATH); }); test('$.loadFile: js code should not throw error', () => { expect(() => { $.loadFile(PATH); }).not.toThrow(); }) test('$.loadFile: js code should be same', () => { const G = $.loadFile(PATH); const newG = $(CODE); expect(G.generate()).toEqual(newG.generate()); }) test('$.loadFile: non-existent file should throw error', () => { expect(() => { const G = $.loadFile('./non-existent.js'); }).toThrow(); }) test('$.loadFile: error code file should throw error', () => { const G = $.loadFile(ERROR_CODE_PATH); expect(G.error).toEqual('Only correct js / html / vue could be parse successfully, please check the code or parseOptions!'); }) test('$.loadFile: html code should not throw error', () => { expect(() => { $.loadFile(HTML_PATH, config.html); }).not.toThrow(); }) test('$.loadFile: html code should be same', () => { const G = $.loadFile(HTML_PATH, config.html); const newG = $(HTML_CODE, config.html); expect(G.node).toEqual(newG.node); })