diff --git a/tests/util/counter.lua b/tests/lua/util/counter.lua similarity index 100% rename from tests/util/counter.lua rename to tests/lua/util/counter.lua diff --git a/tests/util/map.lua b/tests/lua/util/map.lua similarity index 100% rename from tests/util/map.lua rename to tests/lua/util/map.lua diff --git a/tests/prepare-config.lua b/tests/prepare-config.lua index 8043a2f..12d1dd5 100644 --- a/tests/prepare-config.lua +++ b/tests/prepare-config.lua @@ -27,32 +27,12 @@ require('lazy').setup({ 'nvim-lua/plenary.nvim', lazy = false, }, - { - 'nvim-java/nvim-java-test', - ---@diagnostic disable-next-line: assign-type-mismatch - dir = local_plug('~/Workspace/nvim-java-test'), - lazy = false, - }, - { - 'nvim-java/nvim-java-core', - ---@diagnostic disable-next-line: assign-type-mismatch - dir = local_plug('~/Workspace/nvim-java-core'), - lazy = false, - }, - { - 'nvim-java/nvim-java-dap', - ---@diagnostic disable-next-line: assign-type-mismatch - dir = local_plug('~/Workspace/nvim-java-dap'), - lazy = false, - }, - { - 'neovim/nvim-lspconfig', - lazy = false, - }, - { - 'williamboman/mason.nvim', - lazy = false, - }, + -- { + -- 'nvim-java/nvim-java-test', + -- ---@diagnostic disable-next-line: assign-type-mismatch + -- dir = local_plug('~/Workspace/nvim-java-test'), + -- lazy = false, + -- }, }, { root = temp_path, lockfile = temp_path .. '/lazy-lock.json', diff --git a/tests/core/effect_spec.lua b/tests/react/core/effect_spec.lua similarity index 91% rename from tests/core/effect_spec.lua rename to tests/react/core/effect_spec.lua index 85d7b45..0421ebb 100644 --- a/tests/core/effect_spec.lua +++ b/tests/react/core/effect_spec.lua @@ -2,7 +2,7 @@ local Effect = require('react.core.effect') local Stack = require('react.util.stack') local core = require('react.core') -local counter = require('tests.util.counter') +local counter = require('util.counter') local errors = require('react.core.effect-error-messages') local create_signal = core.create_signal @@ -76,7 +76,6 @@ describe('effect::', function() assert.equal(expected_first_time, effect.first_render) end) - effect:dispatch() expected_first_time = false @@ -150,15 +149,18 @@ describe('effect::', function() assert.equal(0, effect.signals:length()) end) - it('effect is removed from the context if there is an error while running effect', function() - pcall(function() - assert.equal(true, Effect.context:is_empty()) + it( + 'effect is removed from the context if there is an error while running effect', + function() + pcall(function() + assert.equal(true, Effect.context:is_empty()) - Effect:new(function() - error('throwing an error') - end):dispatch() - end) + Effect:new(function() + error('throwing an error') + end):dispatch() + end) - assert.equal(true, Effect.context:is_empty()) - end) + assert.equal(true, Effect.context:is_empty()) + end + ) end) diff --git a/tests/core/init_spec.lua b/tests/react/core/init_spec.lua similarity index 96% rename from tests/core/init_spec.lua rename to tests/react/core/init_spec.lua index 8ee08e4..542b8d9 100644 --- a/tests/core/init_spec.lua +++ b/tests/react/core/init_spec.lua @@ -1,6 +1,6 @@ local Effect = require('react.core.effect') -local counter = require('tests.util.counter') +local counter = require('util.counter') local core = require('react.core') local create_signal = core.create_signal diff --git a/tests/core/signal_spec.lua b/tests/react/core/signal_spec.lua similarity index 81% rename from tests/core/signal_spec.lua rename to tests/react/core/signal_spec.lua index 46df3a8..f81bcf7 100644 --- a/tests/core/signal_spec.lua +++ b/tests/react/core/signal_spec.lua @@ -1,7 +1,7 @@ local Effect = require('react.core.effect') local Signal = require('react.core.signal') -local counter = require('tests.util.counter') +local counter = require('util.counter') describe('signal::', function() it('correctly sets initial value', function() @@ -79,25 +79,28 @@ describe('signal::', function() end):dispatch() end) - it('effect is registered only once when same signal is used multiple times', function() - Effect:new(function() - local signal = Signal:new(10) + it( + 'effect is registered only once when same signal is used multiple times', + function() + Effect:new(function() + local signal = Signal:new(10) - signal:read() - signal:read() - signal:read() + signal:read() + signal:read() + signal:read() - assert.equal(1, signal.publisher:length()) - end):dispatch() + assert.equal(1, signal.publisher:length()) + end):dispatch() - local signal = Signal:new(10) - Effect:new(function() - signal:read() - signal:read() - signal:read() - end):dispatch() - assert.equal(1, signal.publisher:length()) - end) + local signal = Signal:new(10) + Effect:new(function() + signal:read() + signal:read() + signal:read() + end):dispatch() + assert.equal(1, signal.publisher:length()) + end + ) it('re-render the effect on write', function() local count, get_count = counter() @@ -144,29 +147,27 @@ describe('signal::', function() assert.equal(0, signal.publisher:length()) end) - it('signal returns the initially created signal on re-render', - function() - local signal_1, signal_2, signal_3 + it('signal returns the initially created signal on re-render', function() + local signal_1, signal_2, signal_3 - Effect:new(function() - signal_1 = Signal:new(10) - signal_2 = Signal:new(20) - signal_3 = Signal:new(30) - end):dispatch() + Effect:new(function() + signal_1 = Signal:new(10) + signal_2 = Signal:new(20) + signal_3 = Signal:new(30) + end):dispatch() - assert.same(10, signal_1:get_value()) - assert.same(20, signal_2:get_value()) - assert.same(30, signal_3:get_value()) + assert.same(10, signal_1:get_value()) + assert.same(20, signal_2:get_value()) + assert.same(30, signal_3:get_value()) - signal_1:write(signal_1:get_value() + 1) - signal_2:write(signal_2:get_value() + 1) - signal_3:write(signal_3:get_value() + 1) + signal_1:write(signal_1:get_value() + 1) + signal_2:write(signal_2:get_value() + 1) + signal_3:write(signal_3:get_value() + 1) - assert.same(11, signal_1:get_value()) - assert.same(21, signal_2:get_value()) - assert.same(31, signal_3:get_value()) - end - ) + assert.same(11, signal_1:get_value()) + assert.same(21, signal_2:get_value()) + assert.same(31, signal_3:get_value()) + end) it('after unsubscribe, effect should be removed from signal', function() local signal_1 = Signal:new(10) diff --git a/tests/stores/dict/helper_spec.lua b/tests/react/stores/dict/helper_spec.lua similarity index 65% rename from tests/stores/dict/helper_spec.lua rename to tests/react/stores/dict/helper_spec.lua index 20c3c0b..84cecbb 100644 --- a/tests/stores/dict/helper_spec.lua +++ b/tests/react/stores/dict/helper_spec.lua @@ -4,16 +4,30 @@ local helper = require('react.stores.dict.helper') local List = require('react.util.list') local Set = require('react.util.set') local Effect = require('react.core.effect') -local utils = require('tests.util.map') - +local utils = require('util.map') describe('store::', function() describe('dict::', function() local get_init_pub_map = function() - return { key = 'root', effects = Set:new(), - children = { a = { key = 'a', effects = Set:new(), - children = { b = { key = 'b', effects = Set:new(), - children = { c = { key = 'c', effects = Set:new(), children = {} } } } } } } } + return { + key = 'root', + effects = Set:new(), + children = { + a = { + key = 'a', + effects = Set:new(), + children = { + b = { + key = 'b', + effects = Set:new(), + children = { + c = { key = 'c', effects = Set:new(), children = {} }, + }, + }, + }, + }, + }, + } end local pub_map = nil @@ -53,7 +67,10 @@ describe('store::', function() helper.publisher_path_traversal(pub_map, List:new({ 'a', 'b', 'c' })) for _, key in ipairs({ 'a', 'b', 'c' }) do - assert.same({ 'children', 'effects', 'key' }, utils.get_keys(curr_pub_node)) + assert.same( + { 'children', 'effects', 'key' }, + utils.get_keys(curr_pub_node) + ) assert.same({ key }, utils.get_keys(curr_pub_node.children)) assert.equal(curr_pub_node.effects:length(), 0) @@ -64,8 +81,14 @@ describe('store::', function() it('current path appends key to parent path', function() local parent_path = List:new({ 'a', 'b', 'c' }) - assert.same(List:new({ 'a', 'b', 'c', 'd' }), helper.get_curr_path_by_key(parent_path, 'd')) - assert.not_equal(List:new({ 'a', 'b', 'c', 'd' }), helper.get_curr_path_by_key(parent_path, 'd')) + assert.same( + List:new({ 'a', 'b', 'c', 'd' }), + helper.get_curr_path_by_key(parent_path, 'd') + ) + assert.not_equal( + List:new({ 'a', 'b', 'c', 'd' }), + helper.get_curr_path_by_key(parent_path, 'd') + ) end) it('on store change, removes relevant children nodes', function() @@ -84,7 +107,10 @@ describe('store::', function() -- 3rd level pub_map = get_init_pub_map() - assert.same({ 'c' }, utils.get_keys(pub_map.children.a.children.b.children)) + assert.same( + { 'c' }, + utils.get_keys(pub_map.children.a.children.b.children) + ) helper.dispatch_and_remove_children(pub_map.children.a.children.b) assert.same({}, utils.get_keys(pub_map.children.a.children.b.children)) end) @@ -113,7 +139,9 @@ describe('store::', function() assert.same({ 0, 0, 0 }, effect_values) effect_values = init_data_set() - helper.dispatch_and_remove_children(pub_map.children.a.children.b.children.c) + helper.dispatch_and_remove_children( + pub_map.children.a.children.b.children.c + ) assert.same({ 0, 0, 1 }, effect_values) effect_values = init_data_set() @@ -125,34 +153,39 @@ describe('store::', function() assert.same({ 1, 1, 1 }, effect_values) end) - it('on store change, store does not dispatch previously removed effects', function() - local init_data_set = function() - pub_map = get_init_pub_map() + it( + 'on store change, store does not dispatch previously removed effects', + function() + local init_data_set = function() + pub_map = get_init_pub_map() - local effects = {} - local effect_values = { 0, 0, 0 } + local effects = {} + local effect_values = { 0, 0, 0 } - for i = 1, 3 do - effects[i] = Effect:new(function() - effect_values[i] = effect_values[i] + 1 - end) - end + for i = 1, 3 do + effects[i] = Effect:new(function() + effect_values[i] = effect_values[i] + 1 + end) + end - pub_map.children.a.effects:add(effects[1]) - pub_map.children.a.children.b.effects:add(effects[2]) - pub_map.children.a.children.b.children.c.effects:add(effects[3]) + pub_map.children.a.effects:add(effects[1]) + pub_map.children.a.children.b.effects:add(effects[2]) + pub_map.children.a.children.b.children.c.effects:add(effects[3]) - return effect_values - end + return effect_values + end - local effect_values = init_data_set() + local effect_values = init_data_set() - helper.dispatch_and_remove_children(pub_map.children.a.children.b.children.c) - helper.dispatch_and_remove_children(pub_map.children.a.children.b) - helper.dispatch_and_remove_children(pub_map.children.a) + helper.dispatch_and_remove_children( + pub_map.children.a.children.b.children.c + ) + helper.dispatch_and_remove_children(pub_map.children.a.children.b) + helper.dispatch_and_remove_children(pub_map.children.a) - assert.same({ 1, 2, 2 }, effect_values) - end) + assert.same({ 1, 2, 2 }, effect_values) + end + ) end) end) end) diff --git a/tests/stores/dict/init_spec.lua b/tests/react/stores/dict/init_spec.lua similarity index 87% rename from tests/stores/dict/init_spec.lua rename to tests/react/stores/dict/init_spec.lua index 1c20226..f08d6b8 100644 --- a/tests/stores/dict/init_spec.lua +++ b/tests/react/stores/dict/init_spec.lua @@ -1,6 +1,6 @@ local core = require('react.core') local create_dict = require('react.stores.dict') -local counter = require('tests.util.counter') +local counter = require('util.counter') local create_effect = core.create_effect @@ -14,13 +14,13 @@ describe('stores::', function() basic_info = { name = 's1n7ax', age = 30, - address = 'Colombo, Sri Lanka' + address = 'Colombo, Sri Lanka', }, employee_info = { id = '0000000001', - designation = 'Full Stack Developer' - } - } + designation = 'Full Stack Developer', + }, + }, } end) @@ -45,10 +45,7 @@ describe('stores::', function() it('path traversal should return the correct value', function() local store = create_dict(init_value) - assert.equal( - init_value.user_info, - getmetatable(store.user_info).value - ) + assert.equal(init_value.user_info, getmetatable(store.user_info).value) assert.equal( init_value.user_info.basic_info, getmetatable(store.user_info.basic_info).value @@ -89,7 +86,10 @@ describe('stores::', function() end) assert.equal(1, get_count()) - assert.equal(init_value.user_info.basic_info, getmetatable(curr_basic_info).value) + assert.equal( + init_value.user_info.basic_info, + getmetatable(curr_basic_info).value + ) store.user_info.basic_info = 'changed' assert.equal(2, get_count()) diff --git a/tests/stores/dict/dict_spec.lua b/tests/stores/dict/dict_spec.lua deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test-config.lua b/tests/test-config.lua index cd0f025..5c713e0 100644 --- a/tests/test-config.lua +++ b/tests/test-config.lua @@ -1,25 +1,4 @@ ----@diagnostic disable: assign-type-mismatch ----@param dev_path string ----@param plug_path string ----@return string|nil -local function local_plug(dev_path, plug_path) - return (vim.fn.isdirectory(dev_path) == 1) and dev_path or plug_path -end - local plug_path = './.test_plugins' +vim.opt.rtp:append('./ttt') vim.opt.rtp:append(plug_path .. '/plenary.nvim') -vim.opt.rtp:append(plug_path .. '/nvim-lspconfig') -vim.opt.rtp:append(plug_path .. '/mason.nvim') - -vim.opt.rtp:append( - local_plug('~/Workspace/nvim-java-core', plug_path .. '/nvim-java-core') -) - -vim.opt.rtp:append( - local_plug('~/Workspace/nvim-java-test', plug_path .. '/nvim-java-test') -) - -vim.opt.rtp:append( - local_plug('~/Workspace/nvim-java-dap', plug_path .. '/nvim-java-dap') -)