{"id":18437231,"url":"https://github.com/power-assert-js/espower-coffee","last_synced_at":"2025-04-07T20:34:06.329Z","repository":{"id":17793919,"uuid":"20673147","full_name":"power-assert-js/espower-coffee","owner":"power-assert-js","description":"power-assert instrumentor for CoffeeScript","archived":false,"fork":false,"pushed_at":"2016-11-24T07:45:48.000Z","size":43,"stargazers_count":34,"open_issues_count":0,"forks_count":2,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-03-23T00:24:21.396Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/power-assert-js.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-06-10T05:09:10.000Z","updated_at":"2019-04-08T16:45:24.000Z","dependencies_parsed_at":"2022-09-10T14:22:44.798Z","dependency_job_id":null,"html_url":"https://github.com/power-assert-js/espower-coffee","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fespower-coffee","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fespower-coffee/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fespower-coffee/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/power-assert-js%2Fespower-coffee/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/power-assert-js","download_url":"https://codeload.github.com/power-assert-js/espower-coffee/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247725960,"owners_count":20985801,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T06:14:11.144Z","updated_at":"2025-04-07T20:34:01.312Z","avatar_url":"https://github.com/power-assert-js.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"espower-coffee\n================================\n\npower-assert instrumentor for CoffeeScript\n\n[![Build Status][travis-image]][travis-url]\n[![NPM version][npm-image]][npm-url]\n[![Dependency Status][depstat-image]][depstat-url]\n[![License][license-image]][license-url]\n\n\nDESCRIPTION\n---------------------------------------\n`espower-coffee` is a Node.js module loader that instruments [power-assert](https://github.com/power-assert-js/power-assert) feature into target CoffeeScript sources on the fly.\n\nPull-requests, issue reports and patches are always welcomed. See [power-assert](http://github.com/power-assert-js/power-assert) project for more documentation.\n\n\nEXAMPLE\n---------------------------------------\n\nGiven `test/demo_test.coffee`\n\n```coffeescript\nassert = require 'assert'\n\nclass Person\n  constructor: (name, age) -\u003e\n    @name = name\n    @age = age\n\ndescribe \"various types\", -\u003e\n  beforeEach -\u003e\n    @types = [\n      \"string\"\n      98.6\n      true\n      false\n      null\n      `undefined`\n      [\n        \"nested\"\n        \"array\"\n      ]\n      {\n        object: true\n      }\n      NaN\n      Infinity\n      /^not/\n      new Person(\"alice\", 3)\n    ]\n\n  it \"demo\", -\u003e\n    index = @types.length - 1\n    bob = new Person(\"bob\", 5)\n    assert @types[index].name is bob.name\n```\n\nRun mocha with `--require 'espower-coffee/guess'`\n\n```\n$ mocha --require 'espower-coffee/guess' test/demo_test.coffee\n\n  ․\n\n  0 passing (15ms)\n  1 failing\n\n  1) various types demo:\n     AssertionError: # /path/to/test/demo_test.coffee:33\n\nassert(this.types[index].name === bob.name)\n            |    ||      |    |   |   |\n            |    ||      |    |   |   \"bob\"\n            |    ||      |    |   Person{name:\"bob\",age:5}\n            |    ||      |    false\n            |    |11     \"alice\"\n            |    Person{name:\"alice\",age:3}\n            [\"string\",98.6,true,false,null,undefined,#Array#,#Object#,NaN,Infinity,/^not/,#Person#]\n\n--- [string] bob.name\n+++ [string] this.types[index].name\n@@ -1,3 +1,5 @@\n-bob\n+alice\n\n    at Decorator.concreteAssert (/path/to/node_modules/power-assert/node_modules/empower/lib/decorator.js:63:21)\n    at /path/to/node_modules/power-assert/node_modules/empower/lib/decorate.js:44:26\n    at powerAssert (/path/to/node_modules/power-assert/node_modules/empower/index.js:57:32)\n    at Context.\u003canonymous\u003e (/path/to/test/demo_test.coffee:1:1)\n\n$ \n```\n\nSee the power-assert output appears!\n\n\nINSTALL\n---------------------------------------\n\n    $ npm install --save-dev espower-coffee power-assert\n\n\nHOW TO USE\n---------------------------------------\n\n\n### Zero-config mode\n\nIf your tests are located on `'test/**/*.coffee'`, just run mocha with `--require 'espower-coffee/guess'`\n\n    $ mocha --require 'espower-coffee/guess' test/**/*.coffee\n\n\n### If your tests are not in test dir\n\nYou can set test directory in your `package.json`\n\n```json\n{\n    \"name\": \"your-module\",\n    \"description\": \"Your module\",\n    \"version\": \"0.0.1\",\n    \"directories\": {\n        \"test\": \"spec/\"\n    },\n...\n}\n```\n\nThen, run mocha with `--require 'espower-coffee/guess'`\n\n    $ mocha --require 'espower-coffee/guess' spec/**/*.coffee\n\nNote: `'espower-coffee/guess'` is inspired by [intelli-espower-loader](https://github.com/power-assert-js/intelli-espower-loader)\n\n\n### More customization\n\nIf you want to configure more explicitly, put `espower-coffee-loader.js` somewhere in your project.\n\n```javascript\nrequire('espower-coffee')({\n    // directory where match starts with\n    cwd: process.cwd(),\n\n    // glob pattern using minimatch module\n    pattern: '{src,test}/**/*.coffee',\n\n    // options for espower module\n    espowerOptions: {\n        patterns: [\n            'assert(value, [message])',\n            'assert.ok(value, [message])',\n            'assert.equal(actual, expected, [message])',\n            'assert.notEqual(actual, expected, [message])',\n            'assert.strictEqual(actual, expected, [message])',\n            'assert.notStrictEqual(actual, expected, [message])',\n            'assert.deepEqual(actual, expected, [message])',\n            'assert.notDeepEqual(actual, expected, [message])',\n            'assert.deepStrictEqual(actual, expected, [message])',\n            'assert.notDeepStrictEqual(actual, expected, [message])'\n        ]\n    }\n});\n```\n\nThen, run mocha with `--require` option\n\n    $ mocha --require ./path/to/espower-coffee-loader spec/unit/some_test.coffee\n\n\nOUR SUPPORT POLICY\n---------------------------------------\n\nWe support Node under maintenance. In other words, we stop supporting old Node version when [their maintenance ends](https://github.com/nodejs/LTS).\n\nThis means that any other environment is not supported.\n\nNOTE: If espower-coffee works in any of the unsupported environments, it is purely coincidental and has no bearing on future compatibility. Use at your own risk.\n\n\nCHANGELOG\n---------------------------------------\nSee [CHANGELOG](https://github.com/power-assert-js/espower-coffee/blob/master/CHANGELOG.md)\n\n\nAUTHOR\n---------------------------------------\n* [Takuto Wada](https://github.com/twada)\n\n\nLICENSE\n---------------------------------------\nLicensed under the [MIT](http://twada.mit-license.org/2014-2016) license.\n\n\n[npm-url]: https://npmjs.org/package/espower-coffee\n[npm-image]: https://badge.fury.io/js/espower-coffee.svg\n\n[travis-url]: https://travis-ci.org/power-assert-js/espower-coffee\n[travis-image]: https://secure.travis-ci.org/power-assert-js/espower-coffee.svg?branch=master\n\n[depstat-url]: https://gemnasium.com/power-assert-js/espower-coffee\n[depstat-image]: https://gemnasium.com/power-assert-js/espower-coffee.svg\n\n[license-url]: http://twada.mit-license.org/2014-2016\n[license-image]: https://img.shields.io/badge/license-MIT-brightgreen.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpower-assert-js%2Fespower-coffee","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpower-assert-js%2Fespower-coffee","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpower-assert-js%2Fespower-coffee/lists"}