{
  "classes": [
    {
      "constants": [],
      "types": [
        {
          "lua_type": "type RunOptions = {\n    exitOnFail: boolean?,\n    filter: string?,\n}",
          "name": "RunOptions",
          "tags": [],
          "source": {
            "path": "",
            "line": 517
          },
          "fields": [
            {
              "lua_type": "exitOnFail: boolean?",
              "name": "exitOnFail",
              "desc": "Exit the process with code 1 when any test fails. Defaults to true."
            },
            {
              "lua_type": "filter: string?",
              "name": "filter",
              "desc": "Lua pattern matched against test names. Only matching tests run;\nthe rest are skipped. Equivalent to Jest's `-t` / `--testNamePattern`."
            }
          ],
          "desc": "Options for [[runOne]] and [[runAll]].\n"
        }
      ],
      "name": "@eryx/test",
      "tags": [],
      "functions": [
        {
          "source": {
            "path": "",
            "line": 458
          },
          "is_method": false,
          "signature": "test.expect(...: any) → Expecter",
          "owner": "test",
          "desc": "",
          "tags": [],
          "name": "expect",
          "return_str": "Expecter",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "Expecter",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "any",
              "name": "...",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 474
          },
          "is_method": false,
          "signature": "test.skip(\n    reason: string?  -- Optional human-readable reason shown in the test output. \n) → ()",
          "owner": "test",
          "desc": "Unconditionally skips the current test. Call at the top of a test body\nto mark it as not-yet-implemented or temporarily disabled.\n\n```luau\nsuite:test(\"future feature\", function()\n    test.skip(\"not implemented yet\")\nend)\n```\n",
          "tags": [],
          "name": "skip",
          "return_str": "",
          "function_type": "Function",
          "returns": [],
          "params": [
            {
              "lua_type": "string?",
              "name": "reason",
              "desc": "Optional human-readable reason shown in the test output. "
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 493
          },
          "is_method": false,
          "signature": "test.skipIf(\n    condition: any,  -- When truthy, the test is skipped.\n    reason: string?  -- Optional reason shown in the test output. \n) → ()",
          "owner": "test",
          "desc": "Conditionally skips the current test when `condition` is truthy.\nUse this for platform-specific tests, tests that require external\nservices, or environment-dependent checks.\n\n```luau\nsuite:test(\"unix permissions\", function()\n    test.skipIf(os.platform() == \"windows\", \"unix-only test\")\n    -- ... test code ...\nend)\n```\n",
          "tags": [],
          "name": "skipIf",
          "return_str": "",
          "function_type": "Function",
          "returns": [],
          "params": [
            {
              "lua_type": "any",
              "name": "condition",
              "desc": "When truthy, the test is skipped."
            },
            {
              "lua_type": "string?",
              "name": "reason",
              "desc": "Optional reason shown in the test output. "
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 531
          },
          "is_method": false,
          "signature": "test.runOne(\n    path: string,  -- The path to the test file.\n    options: RunOptions?  -- Run options (exitOnFail, filter). \n) → ()",
          "owner": "test",
          "desc": "Load and run a single `.test.luau` file.\n",
          "tags": [],
          "name": "runOne",
          "return_str": "",
          "function_type": "Function",
          "returns": [],
          "params": [
            {
              "lua_type": "string",
              "name": "path",
              "desc": "The path to the test file."
            },
            {
              "lua_type": "RunOptions?",
              "name": "options",
              "desc": "Run options (exitOnFail, filter). "
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 584
          },
          "is_method": false,
          "signature": "test.runAll(\n    path: string,  -- The directory to search for test files.\n    options: RunOptions?  -- Run options (exitOnFail, filter). \n) → ()",
          "owner": "test",
          "desc": "Walk `path` recursively for files matching `*.test.luau`.\nEach such file must `return` a `Suite`.\n\n```luau\n-- Run all tests:\ntest.runAll(\"tests/\")\n\n-- Run only tests with \"crypto\" in the name:\ntest.runAll(\"tests/\", { filter = \"crypto\" })\n```\n",
          "tags": [],
          "name": "runAll",
          "return_str": "",
          "function_type": "Function",
          "returns": [],
          "params": [
            {
              "lua_type": "string",
              "name": "path",
              "desc": "The directory to search for test files."
            },
            {
              "lua_type": "RunOptions?",
              "name": "options",
              "desc": "Run options (exitOnFail, filter). "
            }
          ]
        }
      ],
      "properties": [],
      "source": {
        "path": "",
        "line": 0
      },
      "desc": ""
    },
    {
      "is_primary_export": false,
      "source": {
        "path": "",
        "line": 77
      },
      "tags": [],
      "properties": [
        {
          "tags": [],
          "lua_type": "name: string",
          "name": "name",
          "desc": ""
        },
        {
          "tags": [],
          "lua_type": "tests: { Test }",
          "name": "tests",
          "desc": ""
        },
        {
          "tags": [],
          "lua_type": "results: { TestResult }",
          "name": "results",
          "desc": ""
        },
        {
          "tags": [],
          "lua_type": "beforeAll: ((() → ()))?",
          "name": "beforeAll",
          "desc": ""
        },
        {
          "tags": [],
          "lua_type": "afterAll: ((() → ()))?",
          "name": "afterAll",
          "desc": ""
        },
        {
          "tags": [],
          "lua_type": "beforeEach: ((() → ()))?",
          "name": "beforeEach",
          "desc": ""
        },
        {
          "tags": [],
          "lua_type": "afterEach: ((() → ()))?",
          "name": "afterEach",
          "desc": ""
        }
      ],
      "desc": "",
      "name": "Suite",
      "functions": [
        {
          "source": {
            "path": "",
            "line": 87
          },
          "is_method": false,
          "signature": "Suite.new(name: string) → Suite",
          "owner": "Suite",
          "desc": "",
          "tags": [],
          "name": "new",
          "return_str": "Suite",
          "function_type": "Function",
          "returns": [
            {
              "lua_type": "Suite",
              "desc": ""
            }
          ],
          "params": [
            {
              "lua_type": "string",
              "name": "name",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 100
          },
          "is_method": true,
          "signature": "Suite:test(name: string, runner: (() → ())) → ()",
          "owner": "Suite",
          "desc": "Register a test case.",
          "tags": [],
          "name": "test",
          "return_str": "",
          "function_type": "Method",
          "returns": [],
          "params": [
            {
              "lua_type": "string",
              "name": "name",
              "desc": ""
            },
            {
              "lua_type": "(() → ())",
              "name": "runner",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 105
          },
          "is_method": true,
          "signature": "Suite:beforeAll(fn: (() → ())) → ()",
          "owner": "Suite",
          "desc": "Run once before all tests in this suite.",
          "tags": [],
          "name": "beforeAll",
          "return_str": "",
          "function_type": "Method",
          "returns": [],
          "params": [
            {
              "lua_type": "(() → ())",
              "name": "fn",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 110
          },
          "is_method": true,
          "signature": "Suite:afterAll(fn: (() → ())) → ()",
          "owner": "Suite",
          "desc": "Run once after all tests in this suite.",
          "tags": [],
          "name": "afterAll",
          "return_str": "",
          "function_type": "Method",
          "returns": [],
          "params": [
            {
              "lua_type": "(() → ())",
              "name": "fn",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 115
          },
          "is_method": true,
          "signature": "Suite:beforeEach(fn: (() → ())) → ()",
          "owner": "Suite",
          "desc": "Run before each individual test.",
          "tags": [],
          "name": "beforeEach",
          "return_str": "",
          "function_type": "Method",
          "returns": [],
          "params": [
            {
              "lua_type": "(() → ())",
              "name": "fn",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 120
          },
          "is_method": true,
          "signature": "Suite:afterEach(fn: (() → ())) → ()",
          "owner": "Suite",
          "desc": "Run after each individual test.",
          "tags": [],
          "name": "afterEach",
          "return_str": "",
          "function_type": "Method",
          "returns": [],
          "params": [
            {
              "lua_type": "(() → ())",
              "name": "fn",
              "desc": ""
            }
          ]
        },
        {
          "source": {
            "path": "",
            "line": 131
          },
          "is_method": true,
          "signature": "Suite:run(\n    filter: string?  -- Optional Lua pattern. When provided, only tests whose name matches the pattern are executed; the rest are skipped.\n) → (\n    RunTotals  -- pass/fail/skip counts. \n)",
          "owner": "Suite",
          "desc": "Execute all tests in the suite and print results.\n",
          "tags": [],
          "name": "run",
          "return_str": "RunTotals",
          "function_type": "Method",
          "returns": [
            {
              "lua_type": "RunTotals",
              "desc": "pass/fail/skip counts. "
            }
          ],
          "params": [
            {
              "lua_type": "string?",
              "name": "filter",
              "desc": "Optional Lua pattern. When provided, only tests whose name matches the pattern are executed; the rest are skipped."
            }
          ]
        }
      ],
      "metamethods": [],
      "types": []
    }
  ]
}