aboutsummaryrefslogtreecommitdiffhomepage
path: root/.config/nvim/lua/tests/init.lua
blob: 210ca0d23e4639e6a4ef99587b513fb44f773d4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
-- lua require('tests').test(TEST_SUITE_NAME)

local M = {}


local T = {}

function T.new(suite_name)
   local instance = {}
   instance.suite_name = suite_name
   instance._index = 1
   setmetatable(instance, {__index = T})
   return instance
end

function T:assert(expr, message)
   assert(expr, ('[tests.%s:%d] %s'):format(self.suite_name, self._index, message))
   self._index = self._index + 1
end

function T:assert_eq(expected, actual, message)
   message = message or (tostring(expected) .. ' != ' .. tostring(actual))
   assert(expected == actual, ('[tests.%s:%d] %s'):format(self.suite_name, self._index, message))
   self._index = self._index + 1
end


function M.test(suite_name)
   assert(suite_name, '[tests.test] suite_name is required.')

   local suite = require('tests.' .. suite_name)
   suite.test(T.new(suite_name))
end


return M