{"id":18680,"library":"power-assert","title":"power-assert","description":"Power Assert in JavaScript v1.6.1 (stable, released 2017). Provides descriptive assertion messages via the standard Node.js assert interface. No API is the best API – you only need assert(any_expression). Requires code transformation (via Babel, browserify, webpack, etc.) to generate detailed failure messages. Differentiated from chai/should by reusing the native assert module; you can swap require('power-assert') for require('assert') with zero API change. Works server-side and browser-side. Maintained by the original author but has been stable with infrequent releases.","status":"active","version":"1.6.1","language":"javascript","source_language":"en","source_url":"https://github.com/power-assert-js/power-assert","tags":["javascript","power-assert","assert","assertion","test","testing","ecmascript","ast"],"install":[{"cmd":"npm install power-assert","lang":"bash","label":"npm"},{"cmd":"yarn add power-assert","lang":"bash","label":"yarn"},{"cmd":"pnpm add power-assert","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"redefines assert methods for power-assert output","package":"empower","optional":false},{"reason":"formats assertion error messages","package":"power-assert-formatter","optional":false},{"reason":"transform library to instrument test code","package":"espower","optional":false}],"imports":[{"note":"Import side-effects to augment assert module; then use native assert. This is the recommended pattern.","wrong":"const assert = require('power-assert');","symbol":"default","correct":"import 'power-assert'; const assert = require('assert');"},{"note":"This works but less transparent; side-effect import is preferred.","wrong":"const assert = require('assert');","symbol":"default","correct":"const assert = require('power-assert');"},{"note":"Named export is not available; use default import.","wrong":"import { assert } from 'power-assert';","symbol":"assert","correct":"import assert from 'power-assert';"}],"quickstart":{"code":"// Install: npm install --save-dev power-assert babel-plugin-espower\n// .babelrc: { \"plugins\": [\"babel-plugin-espower\"] }\n// test.js\nimport 'power-assert';\nconst assert = require('assert');\n\nconst a = [1, 2, 3];\nconst b = [1, 2, 3, 4];\nassert.deepStrictEqual(a, b);\n\n// Without transformation: AssertionError [ERR_ASSERTION]: [1,2,3] deepStrictEqual [1,2,3,4]\n// With power-assert transformation:\n//   assert.deepStrictEqual(a, b)\n//                         |  |\n//                         |  [1,2,3,4]\n//                         [1,2,3]","lang":"javascript","description":"Usage with Babel: augment assert, then use native assert methods; power-assert provides detailed diffs."},"warnings":[{"fix":"Add a code transformation step (Babel plugin, browserify transform, webpack loader, etc.) to your build process.","message":"Without code transformation, power-assert falls back to normal assert output.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use import 'power-assert' at module top; still call require('assert') for assertions.","message":"In v1.0.0, the API changed to require side-effect import (import 'power-assert') instead of requiring the module directly.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Use npm to install power-assert.","message":"Bower package is maintained but no longer updated; Bower itself is deprecated.","severity":"deprecated","affected_versions":"all"},{"fix":"Ensure test files are transformed via Babel, browserify, or other tools. Use babel-plugin-espower or eslint-plugin-espower as part of the build.","message":"power-assert relies on AST transformation; test files must be transpiled before execution.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Run mocha with --require babel-register and Babel config with babel-plugin-espower.","message":"When using mocha with power-assert, you must configure the test runner to perform transformation (e.g., require babel-register).","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use `import 'power-assert'` as a side-effect import, not expecting named exports.","cause":"Importing power-assert incorrectly (e.g., using named import).","error":"TypeError: assert(expression) is not a function"},{"fix":"Add babel-plugin-espower to Babel config and run test with Babel.","cause":"power-assert transformation did not run; test code not transpiled.","error":"AssertionError [ERR_ASSERTION]: Expression is not truthy"},{"fix":"Run `npm install --save-dev power-assert`.","cause":"power-assert not installed in node_modules.","error":"Cannot find module 'power-assert'"},{"fix":"Switch to ES module import: `import assert from 'assert'` after `import 'power-assert'`.","cause":"Using `require('assert')` in ES module (type: module) environment.","error":"ReferenceError: require is not defined"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}