testcom

1.0.1 • Public • Published

Testcom Build Status codecov Join the chat at https://gitter.im/testla-talks/Lobby

Write tests in JS comments! (inspired by JSDoc)

Description

Testcom - simple testing framework for Node.js platfrom (later maybe for client). It allows to write tests to functions in comments to this function (yea, like in JSDoc) in simple format. This library first done for small scripts, you no need more files to test your app and you can take tests and docs in one moment.

Usage

  1. Install Testcom:
npm install testcom --save-dev
  1. Write Testcom-tests in block comment before function that you want to test:
// example.js

/*T
  (2, 2) => 4
  (4, 3) => 7
*/
function summ(a, b) {
    return a + b;
}

/*T
  (2, 2) => 4
  (4, 3) => 12
*/
function mull(a, b) {
    return a * b;
}

/*T
  ({a: 1, b: 1}) => { a: 1, b: 1 }
*/
function objective(obj) {
  return obj;
}

/*T
  ([1, 2, 3]) => [3, 2, 1]
*/
function reverseArray(arr) {
  return arr.reverse();
}

module.exports.summ = summ;
module.exports.mull = mull;
module.exports.objective = objective;
module.exports.reverseArray = reverseArray;
  1. Create simple config:
// config.testcom.js

{
  'test': [
    '.examples/example.js'
  ]
}
  1. Run tests:
testcom config.testcom.js

Result

More examples here

Features

  1. Change export naming
  /*T
    ExportAs: fakeSumm
    (2, 2) => 4
    (-1, 1) => 0
  */
  function summ(a, b) {
    return a + b;
  }

  ...

  module.exports.fakeSumm = summ;
  1. Test async functions
  /*T
    (2000, cb) => cb(null, { result: true })
  */
  function asyncFunc(fuckingParam, callback) {
    // ... async magic ...
    callback(null, { result: true });
  }
  1. Test async/await functions:
  /*T
    () => 'text'
  */
  async function asyncAwait() {
    await Promise.fromNode(cb => setTimeout(cb, 0));
    return 'text';
  }
  1. Test errors:
  /*T
    () => Error
  */
  function returnError() {
    throw new Error();
  }

Readme

Keywords

none

Package Sidebar

Install

npm i testcom

Weekly Downloads

3

Version

1.0.1

License

none

Last publish

Collaborators

  • hallelujah