Registry / testing / maests

maests

JSON →
library2.8.6jsnpmunverified

Maests (v2.8.6) is a TypeScript executable compiler that transforms TypeScript flows into Maestro-compatible YAML for mobile end-to-end testing. It supports modular flow composition, automatic .env loading, type-safe runScript, and direct YAML output. Active development with frequent releases (weekly/monthly). Differentiator: TypeScript-first, composable modules, and runScript type safety versus plain YAML or maestro-ts.

npm install maests
INSTALL
IMPORT
SIG · MAESTS
M
maests
testingjavascriptv2.8.6
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

M
import { M } from 'maests'
import M from 'maests' || const M = require('maests')
Named export only; M is not a default export. ESM/CJS compatible.
getOutput
import { getOutput } from 'maests'
import { getOutput } from 'maests/commands' || require('maests').getOutput
Named export from top-level package.
M.initFlow
M.initFlow({ appId: 'com.example.app' })
initFlow({ appId: '...' })
Must call as method on M object, not standalone.

Basic usage: initialize a flow with appId, tap an element, and assert visibility.

// First, install: pnpm add -D maests // Create my-test.ts: import { M, getOutput } from 'maests'; M.initFlow({ appId: 'com.example.app' }); M.tapOn('welcome_button'); M.assertVisible({ id: 'welcome_label' }); // Run: npx maests my-test.ts
maests --version
Debug
Known issues
breakingVersion 2.0 dropped support for older Maestro versions (<1.20)
fix
Update Maestro to >=1.20
affects: >=2.0 <2.0
gotcharunScript callbacks must be functions, not arrow functions if using 'this'
fix
Use regular function expressions for callbacks that reference 'this'
affects: >=2.8.0
gotchaEnvironment variables from .env are loaded only once at start; changing .env during test won't be reflected
fix
Restart maests after modifying .env
affects: >=2.0
deprecatedOlder M.xxx syncing methods like M.tapOnText will be removed in v3
fix
Use M.tapOn({ text: '...' }) instead
affects: >=2.8.0
Errors
Common errors & fixes
Error: Cannot find module 'maests'
maests is installed as a dev dependency but not in node_modules
fix
Run pnpm install or npm install, ensure maests is in package.json devDependencies
TypeError: M.initFlow is not a function
Importing M incorrectly (default import instead of named import)
fix
Use import { M } from 'maests'
Error: Maestro not found. Please install Maestro CLI
Maestro CLI not installed or not on PATH
fix
Install Maestro CLI from https://maestro.mobile.dev/getting-started/installing-maestro
Upgrade
Version history
2.8.6latest on npm
Audit
Dependencies
consolaoptionalUsed for logging output
Agent activity
2 hits · last 30 days
node
2
Resources
maests — npm install maests · libregistry