299 lines
6.5 KiB
Lua
299 lines
6.5 KiB
Lua
|
---@meta
|
||
|
|
||
|
assert = require("luassert")
|
||
|
spy = require("luassert.spy")
|
||
|
stub = require("luassert.stub")
|
||
|
mock = require("luassert.mock")
|
||
|
|
||
|
---Undocumented feature with unknown purpose.
|
||
|
---@param filename string
|
||
|
function file(filename) end
|
||
|
|
||
|
---Mark a test as placeholder.
|
||
|
---
|
||
|
---This will not fail or pass, it will simply be marked as "pending".
|
||
|
---@param name string
|
||
|
---@param block fun()
|
||
|
function pending(name, block) end
|
||
|
|
||
|
---Define the start of an asynchronous test.
|
||
|
---
|
||
|
---Call `done()` at the end of your test to complete it.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---it("Makes an http request", function()
|
||
|
--- async()
|
||
|
--- http.get("https://github.com", function()
|
||
|
--- print("Got Website!")
|
||
|
--- done()
|
||
|
--- end)
|
||
|
---end)
|
||
|
---```
|
||
|
function async() end
|
||
|
|
||
|
---Mark the end of an asynchronous test.
|
||
|
---
|
||
|
---Should be paired with a call to `async()`.
|
||
|
function done() end
|
||
|
|
||
|
---Used to define a set of tests. Can be nested to define sub-tests.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Test Item Class", function()
|
||
|
--- it("Creates an item", function()
|
||
|
--- --...
|
||
|
--- end)
|
||
|
--- describe("Test Tags", function()
|
||
|
--- it("Creates a tag", function()
|
||
|
--- --...
|
||
|
--- end)
|
||
|
--- end)
|
||
|
---end)
|
||
|
---```
|
||
|
---@param name string
|
||
|
---@param block fun()
|
||
|
function describe(name, block) end
|
||
|
|
||
|
context = describe
|
||
|
|
||
|
---Functions like `describe()` except it exposes the test's environment to
|
||
|
---outer contexts
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Test exposing", function()
|
||
|
--- expose("Exposes a value", function()
|
||
|
--- _G.myValue = 10
|
||
|
--- end)
|
||
|
---
|
||
|
---end)
|
||
|
---
|
||
|
---describe("Another test in the same file", function()
|
||
|
--- assert.are.equal(10, myValue)
|
||
|
---end)
|
||
|
---```
|
||
|
---@param name string
|
||
|
---@param block fun()
|
||
|
function expose(name, block) end
|
||
|
|
||
|
---Functions like `describe()` except it insulates the test's environment to
|
||
|
---only this context.
|
||
|
---
|
||
|
---This is the default behaviour of `describe()`.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Test exposing", function()
|
||
|
--- insulate("Insulates a value", function()
|
||
|
--- _G.myValue = 10
|
||
|
--- end)
|
||
|
---
|
||
|
---end)
|
||
|
---
|
||
|
---describe("Another test in the same file", function()
|
||
|
--- assert.is.Nil(myValue)
|
||
|
---end)
|
||
|
---```
|
||
|
---@param name string
|
||
|
---@param block fun()
|
||
|
function insulate(name, block) end
|
||
|
|
||
|
---Randomize tests nested in this block.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("A randomized test", function()
|
||
|
--- randomize()
|
||
|
--- it("My order is random", function() end)
|
||
|
--- it("My order is also random", function() end)
|
||
|
---end)
|
||
|
---```
|
||
|
function randomize() end
|
||
|
|
||
|
---Define a test that will pass, fail, or error.
|
||
|
---
|
||
|
---You can also use `spec()` and `test()` as aliases.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Test something", function()
|
||
|
--- it("Runs a test", function()
|
||
|
--- assert.is.True(10 == 10)
|
||
|
--- end)
|
||
|
---end)
|
||
|
---```
|
||
|
---@param name string
|
||
|
---@param block fun()
|
||
|
function it(name, block) end
|
||
|
|
||
|
spec = it
|
||
|
test = it
|
||
|
|
||
|
---Define a function to run before each child test, this includes tests nested
|
||
|
---in a child describe block.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Test Array Class", function()
|
||
|
--- local a
|
||
|
--- local b
|
||
|
---
|
||
|
--- before_each(function()
|
||
|
--- a = Array.new(1, 2, 3, 4)
|
||
|
--- b = Array.new(11, 12, 13, 14)
|
||
|
--- end)
|
||
|
---
|
||
|
--- it("Assures instance is an Array", function()
|
||
|
--- assert.True(Array.isArray(a))
|
||
|
--- assert.True(Array.isArray(b))
|
||
|
--- end)
|
||
|
---
|
||
|
--- describe("Nested tests", function()
|
||
|
--- it("Also runs before_each", function()
|
||
|
--- assert.are.same(
|
||
|
--- { 1, 2, 3, 4, 11, 12, 13, 14 },
|
||
|
--- a:concat(b))
|
||
|
--- end)
|
||
|
--- end)
|
||
|
---end)
|
||
|
---```
|
||
|
---@param block fun()
|
||
|
function before_each(block) end
|
||
|
|
||
|
---Define a function to run after each child test, this includes tests nested
|
||
|
---in a child describe block.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Test saving", function()
|
||
|
--- local game
|
||
|
---
|
||
|
--- after_each(function()
|
||
|
--- game.save.reset()
|
||
|
--- end)
|
||
|
---
|
||
|
--- it("Creates game", function()
|
||
|
--- game = game.new()
|
||
|
--- game.save.save()
|
||
|
--- end)
|
||
|
---
|
||
|
--- describe("Saves metadata", function()
|
||
|
--- it("Saves objects", function()
|
||
|
--- game = game.new()
|
||
|
--- game.save.save()
|
||
|
--- assert.is_not.Nil(game.save.objects)
|
||
|
--- end)
|
||
|
--- end)
|
||
|
---end)
|
||
|
---```
|
||
|
---@param block fun()
|
||
|
function after_each(block) end
|
||
|
|
||
|
---Runs first in a context block before any tests.
|
||
|
---
|
||
|
---Will always run even if there are no child tests to run. If you don't want
|
||
|
---them to run regardless, you can use `lazy_setup()` or use the `--lazy` flag
|
||
|
---when running.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Test something", function()
|
||
|
--- local helper
|
||
|
---
|
||
|
--- setup(function()
|
||
|
--- helper = require("helper")
|
||
|
--- end)
|
||
|
---
|
||
|
--- it("Can use helper", function()
|
||
|
--- assert.is_not.Nil(helper)
|
||
|
--- end)
|
||
|
---end)
|
||
|
---```
|
||
|
---@param block fun()
|
||
|
function setup(block) end
|
||
|
|
||
|
strict_setup = setup
|
||
|
|
||
|
---Runs first in a context block before any tests. Only runs if there are child
|
||
|
---tests to run.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Test something", function()
|
||
|
--- local helper
|
||
|
---
|
||
|
--- -- Will not run because there are no tests
|
||
|
--- lazy_setup(function()
|
||
|
--- helper = require("helper")
|
||
|
--- end)
|
||
|
---
|
||
|
---end)
|
||
|
---```
|
||
|
---@param block fun()
|
||
|
function lazy_setup(block) end
|
||
|
|
||
|
---Runs last in a context block after all tests.
|
||
|
---
|
||
|
---Will run ever if no tests were run in this context. If you don't want this
|
||
|
---to run regardless, you can use `lazy_teardown()` or use the `--lazy` flag
|
||
|
---when running.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Remove persistent value", function()
|
||
|
--- local persist
|
||
|
---
|
||
|
--- it("Sets a persistent value", function()
|
||
|
--- persist = "hello"
|
||
|
--- end)
|
||
|
---
|
||
|
--- teardown(function()
|
||
|
--- persist = nil
|
||
|
--- end)
|
||
|
---
|
||
|
---end)
|
||
|
---```
|
||
|
---@param block fun()
|
||
|
function teardown(block) end
|
||
|
|
||
|
strict_teardown = teardown
|
||
|
|
||
|
---Runs last in a context block after all tests.
|
||
|
---
|
||
|
---Will only run if tests were run in this context.
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---describe("Remove persistent value", function()
|
||
|
--- local persist
|
||
|
---
|
||
|
--- -- Will not run because no tests were run
|
||
|
--- lazy_teardown(function()
|
||
|
--- persist = nil
|
||
|
--- end)
|
||
|
---
|
||
|
---end)
|
||
|
---```
|
||
|
---@param block fun()
|
||
|
function lazy_teardown(block) end
|
||
|
|
||
|
---Runs last in a context block regardless of test outcome
|
||
|
---
|
||
|
---## Example
|
||
|
---```
|
||
|
---it("Read File Contents",function()
|
||
|
--- local f = io.open("file", "r")
|
||
|
---
|
||
|
--- -- always close file after test
|
||
|
--- finally(function()
|
||
|
--- f:close()
|
||
|
--- end)
|
||
|
---
|
||
|
--- -- do stuff with f
|
||
|
---end)
|
||
|
---```
|
||
|
---@param block fun()
|
||
|
function finally(block) end
|