Skills

Memlab Memory Tests

Write automated memory leak tests with memlab.

Install

npx skills add meta/memlab --skill memlab-memory-tests -g -a claude-code -y
Repository
meta/memlab5.1k
Category
Testing
Updated
4d ago
License
MIT
Context cost
Lightabout 1,295 tokens
Runs scripts
No, instructions only

What it does

Write automated memory leak tests with memlab. Use it for Node.js unit tests that assert an object was garbage collected (takeNodeMinimalHeap, tagObject, hasObjectWithClassName), for browser leak tests in CI that run a memlab scenario through @memlab/api and fail when leaks are found, and for checking heap snapshots from Playwright, Cypress or Puppeteer tests. Use when the user wants a regression test for a memory leak, asks how to assert that memory is released, or wants memory leak checks in Jest, Mocha, node:test or a CI pipeline.

Memory leak tests with memlab

Pick the kind of test from what has to stay leak-free:

Code under testTest
A Node.js module, class or server codeHeap assertion in a unit test
A web UI interactionmemlab scenario run from the test job
An existing Playwright, Cypress or Puppeteer testSnapshots from the existing test

Node.js heap assertions

takeNodeMinimalHeap() from @memlab/core snapshots the current process and returns a queryable heap. Assert that the object you released is gone:

// widget.memory.test.js (Jest; node:test and Mocha work the same way)
const {config, takeNodeMinimalHeap, tagObject} = require('@memlab/core');
const {Widget} = require('./widget');

test('Widget is released after dispose()', async () => {
  config.muteConsole = true;

  let widget = new Widget();
  tagObject(widget, 'widget-under-test'); // marks it without changing it
  widget.dispose();
  widget = null;

  const heap = await takeNodeMinimalHeap();
  expect(heap.hasObjectWithTag('widget-under-test')).toBe(false);
}, 30000);
npm install --save-dev @memlab/core
Read the whole SKILL.md on GitHub

More in Testing