Skip to content

Instantly share code, notes, and snippets.

@highgrove
highgrove / xstate-test-utils.ts
Created May 28, 2021 06:22
Simple xstate test from machine definition
import {createMachine, EventObject, StateNodeConfig, StateSchema} from "xstate";
import {createModel as xCreateModel} from "@xstate/test";
export type TestDefinition<TTestContext, TContext, TSchema extends StateSchema<TContext>> = {
test?: (context: TTestContext) => Promise<any> | void;
} & (TSchema['states'] extends Record<string, StateSchema<TContext>> ? {
states?: {
[key in keyof TSchema['states']]?: TestDefinition<TTestContext, TContext, TSchema['states'][key]>
}
} : Record<string, never>);