jest

SKILL.md

Based on Jest Roblox v3.x, generated 2026-02-07.

Jest Roblox is a Luau port of Jest for the Roblox platform. It closely follows the upstream Jest API but has critical deviations due to Luau language constraints.

Critical deviations from JS Jest:

  • .never instead of .not (reserved keyword)
  • jest.fn() returns two values: mock object + forwarding function
  • 0, "", {} are truthy in Luau (only false and nil are falsy)
  • All globals (describe, expect, jest, etc.) must be explicitly imported
  • .each uses table syntax, not tagged template literals
  • Custom matchers take self as first parameter

Read core-deviations first when working with this codebase.

Core References

Topic Description Reference
Deviations All Luau/Roblox differences from JS Jest core-deviations
Test Structure describe, test/it, hooks, .each, .only/.skip core-test-structure
Matchers toBe, toEqual, toContain, toThrow, mock matchers core-matchers
Asymmetric Matchers expect.anything/any/nothing/callable, .resolves/.rejects core-asymmetric-matchers
Mocking jest.fn(), spyOn, mock.calls, return values core-mocking
Configuration jest.config.lua, runCLI, reporters, options core-configuration

Features

Testing Patterns

Topic Description Reference
Async Testing Promises, done callbacks, .resolves/.rejects feature-async-testing
Custom Matchers expect.extend(), self parameter, isNever feature-custom-matchers
Snapshot Testing toMatchSnapshot, property matchers, serializers feature-snapshot-testing
Test Filtering testMatch, testPathPattern, testNamePattern feature-test-filtering

Mocking

Topic Description Reference
Timer Mocks useFakeTimers, Roblox timers, engineFrameTime feature-timer-mocks
Global Mocks jest.globalEnv, spyOn globals, library mocks feature-global-mocks
Module Mocking jest.mock(), isolateModules, resetModules feature-module-mocking

Advanced

Topic Description Reference
Benchmarking benchmark(), Reporter, Profiler, CustomReporters advanced-benchmarking
Weekly Installs
21
First Seen
Feb 11, 2026
Installed on
opencode20
gemini-cli20
claude-code20
github-copilot20
codex20
kimi-cli20