UNPKG

lamed_learn

Version:
132 lines (110 loc) 4.26 kB
console.log('Starting lLearn.test...') // unfilter_test.jsst.js // Purpose: This module... // Created by: cobolivier // Created on: 2019/01/18 // ------------------------------------------------------ /* jshint esversion: 6 */ const _test = require('lamed_test') const { Ok, notOk, notOk_Then, Equal, notEqual, con, testAND } = _test // eslint-disable-line // con.traceSet(0) const _lio = require('lamed_io') const _helper = require('../src/helper') const _parm = require('../src/helper_parameter') const _filter = require('lodash.filter') /** * From keys, spilt into filter and unfilter keys * @param keys : Array - The Array to filter * @returns {{filter: Array, unfilter : Array}} */ function keys2Filter (keys) { /* Filter for parameters that does not include '/' */ const filter = _filter(keys, (item) => { if (item.includes('/') === false) return item }) /* Filter for '/*' parameters */ const unfilter = _filter(keys, (item) => { if (item.includes('/') === true) return item }).replaceAll('/', '') return { filter, unfilter } } // -------------------------------------------------------- function CommentTest (done) { con.traceLine() con.trace(module.filename) con.traceBold(`--------------------------> ${arguments.callee.name}()`) // eslint-disable-line let error = `In ${module.filename} --> ${arguments.callee.name}()` // eslint-disable-line // test 1 let command1 = '/? Use admin rights; Set node global folder before install. \n npm i -g' let comment = _helper.Comment(command1) const result = ' Use admin rights; Set node global folder before install. ' if (notEqual(result, comment)) return done(new Error(error)) // test2 command1 = 'npm i -g' comment = _helper.Comment(command1) if (comment !== undefined) return done(new Error(error)) return true // success } function parametersParseTest (done) { con.traceLine() con.trace(module.filename) con.traceBold(`--------------------------> ${arguments.callee.name}()`) // eslint-disable-line let error = `In ${module.filename} --> ${arguments.callee.name}()` // eslint-disable-line /* test case for template parameters */ const code = 'it(\'$Function_input$\', (done) => {\n' + ' $Testcase$\n' + ' done();\n' + '});' var parms = _parm.parametersParse(code) if (parms.length > 2) { throw new Error(`Too many parameters in '${code}'\n -> [${parms}]`) } // if (parms.length !== 2) return done(new Error(error)) // if (notEqual(parms[0], 'Function_input')) return done(new Error(error)) // if (notEqual(parms[1], 'Testcase')) return done(new Error(error)) return true // success } function keys2FilterTest (done) { con.traceLine() con.trace(module.filename) con.traceBold(`--------------------------> ${arguments.callee.name}()`) // eslint-disable-line let error = `In ${module.filename} --> ${arguments.callee.name}()` // eslint-disable-line const keys = ['cobus', 'sign', '/old', '/oli'] con.trace({ keys }) const result = keys2Filter(keys) con.trace({ result }) if (notEqual(result.filter, ['cobus', 'sign'])) return done(new Error(error)) if (notEqual(result.unfilter, ['old', 'oli'])) return done(new Error(error)) return true // success } /** * Test all functions * @param done - callback function to indicate failure or completion * @constructor */ function TestAll (done) { con.traceLine() con.trace(module.filename) con.traceBold(`--------------------------> ${arguments.callee.name}()`) // eslint-disable-line keys2FilterTest(done) CommentTest(done) parametersParseTest(done) return true // success } /** * Execute the tests manually */ function testRunner () { const isRoot = _lio.isRootFolder() // const _lio = require('lamed_io') con.trace({ isRoot }) if (isRoot) return con.traceSet(0) const done2 = (err) => { if (err !== undefined) { throw err } } TestAll(done2) // Only run if not executed from the root folder con.logGreen('Success!!!') } testRunner() // Exports -------------------------- module.exports = { TestAll, keys2FilterTest, CommentTest, parametersParseTest }