UNPKG

specgen

Version:

Angular - Jasmine Unit Test Spec file Generator

51 lines (46 loc) 1.47 kB
const {getImportLib, reIndent} = require('./lib/util.js'); const path = require('path'); module.exports = function getServiceData(tsParsed, filePath) { let result = { className: tsParsed.name, classParams: [], imports: { [`./${path.basename(filePath)}`.replace(/.ts$/,'')]: [tsParsed.name], // the directive itself }, mocks: {}, functionTests: {} }; // // Iterate constructor parameters // . create mocks and constructor parameters // (tsParsed.constructor.parameters || []).forEach(param => { // name, type, body //param.type, param.name, param.body result.mocks[param.type] = reIndent(` const ${param.name}: any = { // mock properties here } `, ' '); result.classParams.push(param.name); }); // // Iterate methods // . Javascript to call the function with parameter; // for (var key in tsParsed.methods) { let method = tsParsed.methods[key]; let parameters = (method.parameters || []).map(el => el.name).join(', '); let m = `${key}`; let js = `${key}(${parameters})`; (method.type !== 'void') && (js = `const result = ${js}`); const testName = `should run #${key}()`; result.functionTests[testName] = reIndent(` it('${testName}', async () => { // const spy = spyOn(service, '${m}'); // service.${m}(${parameters}); // expect(service.${m}).toHaveBeenCalled(); }); `, ' '); } return result; }